opengl - OpenGL 中的反演深度测试?

标签 opengl fragment-shader depth-testing

如果希望正常渲染,即渲染距离相机最近的对象,请按如下方式设置 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)以获得更大的深度。 (仅查看​​最远的片段)

关于opengl - OpenGL 中的反演深度测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48727482/

相关文章:

C++ OpenGL, GLFW 绘制一个简单的立方体

three.js - glClipPlane - webGL 中有等效的吗?

c++ - OpenGL深度测试在某些计算机上不起作用

windows-runtime - 通过深度测试绘制地形?

c++ - GLSL - 尝试添加多盏灯?

multithreading - 多个OpenGL上下文,多个窗口,多线程和垂直同步

LibGDX - 使用着色器将纹理覆盖在另一个纹理之上

ios - GLKit 中的深度测试

c++ - 退出控制台后析构函数未运行

ios - GL_HALF_FLOAT_OES 和 glReadPixels