是这样的,我打算学PBR中的IBL章节,即基于图像的渲染,它的观点是创建一个大的外景图片,可以根据图像中的信息来将环境中的漫反射光和镜面反射光打在物体上。
但是我在我的程序中创建了一个立方体作为天空盒,我是有两套glsl文件的,一套是普通的pbr,就是自己创建灯光的,另一个是正在搞的HDR图像作为天空盒进行环境映射的。
但是创建了物体就是看不见,搞不懂,在程序中使用了glUseProgram来切换着色器,感觉逻辑是正确的,也在很多地方进行了glGetError函数进行捕获渲染问题,还是不行。
最后仔细检查代码,发现是上传视图矩阵和投射矩阵时参数使用了原来的着色器程序,导致了图像显示不出。
在这个问题中犯了一下错误:
1.浮躁,晚上编程急于求成,没有仔细核对代码就复制原来的代码,没有完全更改。
2.设置的glError函数调用不够多,恰巧就是主渲染逻辑后面结束时没有加这个函数,本来上传失败时可以捕获的(我的两个着色器变量名不一样)。