0

我正在尝试使用立方体贴图在 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 或任何其他分辨率时,这就是一个问题。

也许虽然我误解了为函数调用提供什么 - 不是窗口宽度/高度吗?参数应该是什么?

4

1 回答 1

1

也许虽然我误解了为函数调用提供什么 - 不是窗口宽度/高度吗?

你认为窗口分辨率如何影响纹理大小是我无法理解的。您通常使用帧缓冲区对象渲染阴影映射深度图,因此窗口尺寸无关紧要。

参数应该是什么?

对于立方体贴图:立方体贴图纹理的边长。

于 2013-11-09T20:32:35.163 回答