1. 程式人生 > >openGL中vao/vbo的debug經歷

openGL中vao/vbo的debug經歷

效果 不清楚 資源 每次 body 最可 不同 數據類型 麻煩

在學習計算機圖形學的時候,涉及到了很多固定管線之外的新的技術,比如說VAO和VBO,這些內容因為剛出現的緣故,網上很少能找到類似的資源,一開始學的時候也只是大致學了一下理論部分,但是真正編程的時候,一個簡單的示例代碼的結構都分不清,更別說看懂了,通過照貓畫虎寫出來的代碼自然也就很難debug了.程序中使用到的很多openGL的庫函數,學習的時候也僅僅知道作用,具體的用法也不太清楚,比如說display()和init()部分的區別,同樣的內容寫到兩個函數中會有不同的效果,一種是每次數據隨程序運行而更新,另一種是只有在第一次上傳GPU時才有效之後不執行,因為不清楚這些東西,一開始想畫出來的動態效果怎麽都是靜止的,為此糾結了許多地方,比如說刷新colorbuffer之類的函數應該放在哪啊,是放在display()開頭還是結尾啊,越試越麻煩,到最後還是放棄,而且裏面有很多都是封裝好的函數,不懂怎麽用就絕對沒法用,因為和那些越界啊數據類型根本不沾邊,所以也沒法用debug程序單步執行,到最後不得不去找大佬解釋,差不多是又從頭學了一遍編程部分才明白一些.最可氣的是著色器程序部分,因為著色器部分是上傳到GPU的和主程序不一樣,在寫著色器程序的時候基本就是拿記事本來編程,沒有任何的提示,在寫程序的時候真的是小心又小心,因為一旦這裏出問題,連報錯都沒有,去網上找有沒有好的debug方法只能看到"著色器的調試暫時沒有好的方案"之類的回答,所以學習計算機圖形的時候只能一行一行的檢查了.

openGL中vao/vbo的debug經歷