【发布时间】:2020-11-21 08:01:18
【问题描述】:
我正在尝试在 OpenGL 中实现级联阴影贴图,但无法生成视图和投影矩阵。这是我的代码:
glm::mat4 lightViewMatrix = glm::lookAt(glm::vec3(0.0), glm::normalize(direction), glm::vec3(0.0f, 1.0f, 0.0f));
glm::vec4 min(INFINITY);
glm::vec4 max(-INFINITY);
for (int i = 0; i < 8; i++) {
glm::vec4 lightSpaceCorner = lightViewMatrix * frustumCornersWorldSpace[i];
min = glm::min(min, lightSpaceCorner);
max = glm::max(max, lightSpaceCorner);
}
glm::mat4 ortho = glm::ortho(min.x, max.x, min.y, max.y, min.z, max.z);
mMatrices[cascade] = ortho * lightViewMatrix ;
生成的阴影贴图在某些角度被截断,这让我相信视图矩阵或投影矩阵配置不正确。
如果有人知道答案,那将是一个巨大的帮助。
谢谢。
【问题讨论】:
标签: c++ opengl graphics 3d shadow