我正在尝试使用立方体贴图在OpenGL中设置阴影贴图,这样我就可以为点光源做阴影了。
以下内容向我发出GL_INVALID_ENUM
:
for (uint32_t i = 0; i < 6; i++)
GLCALL(glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_DEPTH_COMPONENT32, windowWidth, windowHeight, 0, GL_DEPTH_COMPONENT32, GL_FLOAT, 0));
根据文档,可能是因为:
GL_INVALID_ENUM is generated if target is one of the six cube map 2D image targets and the width and height parameters are not equal.
如果宽度/高度不同,我得到它们不是真正的立方体,但当我有像1920x1080或任何其他分辨率的屏幕分辨率时,这是一个问题。
也许虽然我错过了为函数调用提供的内容 - 是不是它的窗口宽度/高度?应该是什么参数?
答案 0 :(得分:1)
也许虽然我错过了为函数调用提供的内容 - 是不是它的窗口宽度/高度?
世界上你认为窗户分辨率如何影响纹理尺寸的方法超出了我的范围。您通常使用帧缓冲对象渲染阴影贴图深度贴图,因此窗口尺寸无关紧要。
应该是什么参数?
对于立方体贴图:立方体贴图纹理的边长。