![]() |
1
2
假设您正在cubemap中存储深度值;
AFAIK cubemap是世界空间中的一个AABB
您需要在世界空间中进行计算
. 在你的情况下
在传递到之前,还需要将lightToFrag转换为深度值
这里是我的实现(我删除了#ifdef SHAD\u CUBE,因为其他人使用相同的名称):
如果只有ModelViewProjection(MVP),则可能需要统一的模型矩阵 下面是如何计算客户端的uNearFar:
这只是优化,但你不必使用它,并遵循我之前提到的链接。 您可能需要偏差值,相关答案使用偏差,但我不确定如何将其正确应用于立方体贴图。我不确定d-+0.0001是否正确。 如果您想在cubemap中存储世界距离,那么本教程似乎是老一套: https://learnopengl.com/Advanced-Lighting/Shadows/Point-Shadows |
![]() |
user3178756 · GLSL纹理布局 7 年前 |
![]() |
Matt Kae · OpenGL/GLSL 4.1中的全向照明 7 年前 |
![]() |
user3162781 · 着色器两个输出反馈 7 年前 |
|
AGogel · 三个多贴图通道模型和纹理。js公司 7 年前 |
![]() |
Elias · 在着色器中旋转2d图像矩阵上的Z轴 7 年前 |
![]() |
A. Person · 尝试为opengl创建像素化着色器失败 7 年前 |
![]() |
Riilu · GLSL删除已用变量 7 年前 |