是這樣的,我打算學PBR中的IBL章節,即基于圖像的渲染,它的觀點是創建一個大的外景圖片,可以根據圖像中的信息來將環境中的漫反射光和鏡面反射光打在物體上。
但是我在我的程序中創建了一個立方體作為天空盒,我是有兩套glsl文件的,一套是普通的pbr,就是自己創建燈光的,另一個是正在搞的HDR圖像作為天空盒進行環境映射的。
但是創建了物體就是看不見,搞不懂,在程序中使用了glUseProgram來切換著色器,感覺邏輯是正確的,也在很多地方進行了glGetError函數進行捕獲渲染問題,還是不行。
最后仔細檢查代碼,發現是上傳視圖矩陣和投射矩陣時參數使用了原來的著色器程序,導致了圖像顯示不出。
在這個問題中犯了一下錯誤:
1.浮躁,晚上編程急于求成,沒有仔細核對代碼就復制原來的代碼,沒有完全更改。
2.設置的glError函數調用不夠多,恰巧就是主渲染邏輯后面結束時沒有加這個函數,本來上傳失敗時可以捕獲的(我的兩個著色器變量名不一樣)。