在我的应用程序中,我在平面上渲染平面.下平面具有Z = 0,第二平面具有Z = 0.5.如果我渲染它们(低于第一个),我会丢失部分渲染,如图所示

在iPhone 4和桌面(使用ES模拟器),一切都正确,没有问题.什么可能导致这个问题?
对于场景的其他部分也会出现同样的问题,例如轨道,管道(此图片上的绿色和蓝色).当我移动相机时出现问题
好的......我已经解决了这个问题.我的着色器中存在导致深度缓冲区被填充的问题.我用过
precision mediump float;
Run Code Online (Sandbox Code Playgroud)
这导致几何不精确,Z = 0与Z = 0.5混合在一起.
改变精度来highp解决问题.
底线.这种"优化"是一个巨大的错误,并且从不在顶点着色器中使用mediump(除非你面临一些性能影响甚至它不值得.渲染的差异并不明显)
| 归档时间: |
|
| 查看次数: |
709 次 |
| 最近记录: |