在 OpenGL 中反转深度测试?
Inverting depth testing in OpenGL?
如果希望正常渲染,渲染离相机最近的对象,您可以按如下方式设置 OpenGL 标志:
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
所以我假设这样做:
glDepthFunc(GL_GREATER);
glEnable(GL_DEPTH_TEST);
还允许我渲染离相机最远的片段。但是,在设置这样的标志时,我看不到任何输出。 (没有对我的应用程序进行其他修改)
如何渲染离相机最远的片段?
深度范围是从 0 到 1。
当您清除深度时,整个数组默认填充为 1。
您可以使用 glClearDepth(0)
更改它
您可以使用 glDepthRange(near, far)
更改范围
GL_LESS
(默认)表示:
“如果传入的深度值小于存储的深度值,则通过。”
GL_GREATER
状态:
“如果传入的深度值大于存储的深度值,则通过。”
所以你需要一些清理深度(0's)来堆积更大的深度。 (仅查看最远的片段)
如果希望正常渲染,渲染离相机最近的对象,您可以按如下方式设置 OpenGL 标志:
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
所以我假设这样做:
glDepthFunc(GL_GREATER);
glEnable(GL_DEPTH_TEST);
还允许我渲染离相机最远的片段。但是,在设置这样的标志时,我看不到任何输出。 (没有对我的应用程序进行其他修改)
如何渲染离相机最远的片段?
深度范围是从 0 到 1。
当您清除深度时,整个数组默认填充为 1。
您可以使用 glClearDepth(0)
更改它
您可以使用 glDepthRange(near, far)
GL_LESS
(默认)表示:
“如果传入的深度值小于存储的深度值,则通过。”
GL_GREATER
状态:
“如果传入的深度值大于存储的深度值,则通过。”
所以你需要一些清理深度(0's)来堆积更大的深度。 (仅查看最远的片段)