【问题标题】:Inverting depth testing in OpenGL?在OpenGL中反转深度测试?
【发布时间】:2018-07-21 12:02:46
【问题描述】:

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

glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);

所以我会假设这样做:

glDepthFunc(GL_GREATER);
glEnable(GL_DEPTH_TEST);

还可以让我渲染离相机最远的片段。但是,在设置这样的标志时,我看不到任何输出。 (没有对我的应用程序进行其他修改)

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

【问题讨论】:

    标签: opengl fragment-shader depth-testing


    【解决方案1】:

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


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

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

    所以你需要一些清除深度(0's)以获得更大的深度堆积。 (仅查看​​最远的片段)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 2012-02-21
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多