【发布时间】:2018-09-22 00:41:39
【问题描述】:
我正在制作一个显示地形和一些应插入地形的自定义坑的应用程序。要将坑插入地形,我使用模板测试。它几乎可以正常工作,但存在一些奇怪的错误。
代码:
glEnable(GL_STENCIL_TEST);
glStencilFuncSeparate(GL_FRONT, GL_ALWAYS, 1, 255);
glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_REPLACE);
glStencilFuncSeparate(GL_BACK, GL_ALWAYS, 1, 255);
glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_KEEP);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glDepthMask(GL_TRUE);
for (Pit3D* pit in pitList) {
[pit render];
}
glStencilFuncSeparate(GL_FRONT, GL_EQUAL, 0, 255);
glStencilOpSeparate(GL_FRONT, GL_REPLACE, GL_KEEP, GL_KEEP);
glStencilFuncSeparate(GL_BACK, GL_EQUAL, 0, 255);
glStencilOpSeparate(GL_BACK, GL_REPLACE, GL_KEEP, GL_KEEP);
[terrain render];
错误 #1:
当我穿过一座小山看坑时,我看到一些奇怪的阴影或黑点。 虽然我穿过另一座小山看坑,但我看不到那些阴影或斑点。
错误 #2:
当凹坑靠近相机时,会出现一些奇怪的像素。 它们肯定属于坑,但它们不应该是可见的。
很遗憾,我目前没有截图。它将在今天晚些时候添加。
错误 #3
取决于范围和视角,有时坑会被地形覆盖。但是当坑靠近相机时,地形覆盖从坑中消失。
我不知道如何修复这些错误。请帮我。所有答案都将被投票。
更新:
我最近发现坑被地形背面覆盖。
【问题讨论】:
-
要知道自己在做什么几乎是不可能的。请阅读stackoverflow.com/help/mcve 并发布一个重现问题的完整示例。
-
@solidpixel,请告诉我你需要知道什么才能更好地理解这个问题?你需要[地形渲染]和[坑渲染]的代码吗?或者我应该在这个问题中添加什么?
-
@solidpixel,我更新了代码并添加了我调用 glEnable(GL_STENCIL_TEST) 的地方。另外我发现坑被地形背面覆盖,请查看更新。
标签: opengl-es rendering opengl-es-2.0 stencil-buffer