2

如果希望正常渲染,即渲染离相机最近的对象,您可以按如下方式设置 OpenGL 标志:

glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);

所以我会假设这样做:

glDepthFunc(GL_GREATER);
glEnable(GL_DEPTH_TEST);

也可以让我渲染离相机最远的片段。但是,在设置这样的标志时,我看不到任何输出。(我的申请没有做其他修改)

如何渲染离相机最远的片段?

4

1 回答 1

5

深度范围是从 0 到 1。
当您清除深度时,整个数组默认填充为 1。
你可以改变它glClearDepth(0)
你可以改变范围glDepthRange(near, far)


GL_LESS(默认)声明:
“如果传入的深度值小于存储的深度值,则通过。”

GL_GREATER状态:
“如果传入的深度值大于存储的深度值,则通过。”

因此,您需要一些清除深度(0)以获得更大的深度。(仅查看​​最远的片段)

于 2018-02-11T01:57:08.480 回答