当阴影相机移动时,Opengl es 2.0阴影会闪烁

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当阴影相机移动时,Opengl es 2.0阴影会闪烁相关的知识,希望对你有一定的参考价值。

我知道这是一个众所周知的问题,但我找不到适合我的解决方案。我的应用程序中有很好的阴影。我正在使用正射投影矩阵来渲染阴影贴图。为了保持阴影细节的高度,当玩家在游戏中移动时,我正在移动阴影相机。阴影闪烁。我想我需要将阴影相机锁定到最近的纹理像素,但我不知道如何(我知道我需要调整阴影矩阵但不知道如何)。我能找到的所有例子都是针对directX的,我无法将其转换为opengl es 2.0。任何线索的人?谢谢你的时间。

答案

假设你的闪烁是沿着阴影的边缘,那么这是由于浮点精度,所以你需要添加一个小的偏差来强制决定超出误差范围。

启用GL_POLYGON_OFFSET_FILL并使用glPolygonOffset设置偏差。

以上是关于当阴影相机移动时,Opengl es 2.0阴影会闪烁的主要内容,如果未能解决你的问题,请参考以下文章

在将截锥体从相机空间转换为光空间以进行阴影映射时遇到重大问题

Android NDK SDL2 OpenGL ES 2 阴影映射(定向)- 可能吗?

IOS OpenGL ES GPUImage 图像阴影和深度效果 GPUImageMultiplyBlendFilter

OpenGL 阴影贴图移动版不起作用

带有立方体贴图的 OpenGL 点光阴影映射

学习OpenGL ES之ShadowMap(二)