【发布时间】:2020-07-13 10:16:01
【问题描述】:
使用 2D 纹理创建阴影贴图,立方体贴图包含辐射。当我从每个获取值并渲染时,它们会正确显示。但是,当我计算这两个值时,只显示 glClearColor() 颜色并且对象消失了。
layout(location = 0) out vec4 color;
in vec2 ShadowTexCoord;
uniform sampler2D ShadowMap;
uniform samplerCube CubeMap;
void main() {
color = texture2D(ShadowMap, ShadowTexCoord);
}
此结果显示被直射光照亮的区域。
layout(location = 0) out vec4 color;
in vec2 ShadowTexCoord;
uniform sampler2D ShadowMap;
uniform samplerCube CubeMap;
void main() {
color = texture(CubeMap, WorldPosition - CubePos);
}
此结果显示在预计算中获得的辐射值。
layout(location = 0) out vec4 color;
in vec2 ShadowTexCoord;
uniform sampler2D ShadowMap;
uniform samplerCube CubeMap;
void main() {
color = texture2D(ShadowMap, ShadowTexCoord) * texture(CubeMap, WorldPosition - CubePos);
}
此结果应仅针对直射光照射范围内的辐射值显示。 它们都给出了正确的结果,但是当我计算它们的每个值时,唯一的结果是 glClearColor()。
可能的因素有哪些?
【问题讨论】: