【问题标题】:OpenGL Stencil Buffer, how well supported are they?OpenGL Stencil Buffer,它们的支持程度如何?
【发布时间】:2014-01-12 09:54:22
【问题描述】:
  • 现在 OpenGL 中的硬件对模板缓冲区的支持程度如何?

  • 它的支持是否比着色器更好/更差?

  • 如果硬件不支持,会用软件模拟吗?

不幸的是,我无法找到有关该主题的任何可靠数据...我想假设由于模板是一项古老的技术,因此它会得到无处不在的支持。然而,作为一项古老的技术,它很容易被新的 GPU 硬件淘汰,转而支持片段着色器。

在我的场景中,我将结合使用 8 位模板缓冲区和 24 位深度缓冲区,与 VBO 一起使用(如果这会影响任何东西)。如果我使用模板缓冲区,那些没有模板支持的人将无法玩我正在制作的游戏,因此担心。如果他们至少可以模拟软件中的模板效果,虽然它并不理想,但足以让我消除恐惧。

【问题讨论】:

  • IIRC 模板格式仍然存在于 4.4 中。你检查过规格吗?
  • @Bartek - 我做到了,但很难从中了解支持在野外的样子。从我也读到的内容来看,一些 GPU 的部分实现很糟糕,如果他们这样做的话。
  • 如果它在规范中,每个带有“支持 OpenGL”徽章的 GPU 都必然支持它。考虑到他们有多年的时间......

标签: c++ opengl vbo stencil-buffer


【解决方案1】:

模板缓冲区仍在 OpenGL 4.4 规范中。它们在第 9.1 节中描述,模板测试在第 17.3.5 节中。

保证您有模板缓冲区。无论它们是在 GPU 上还是在软件中完成,都是一个实现细节。任何可以运行您所针对的 OpenGL 版本的机器都应该能够毫不费力地在 CPU 上处理模板测试。

【讨论】:

    【解决方案2】:

    OpenGL 中的硬件目前对模板缓冲区的支持程度如何?

    自古以来,GPU 就普遍支持模板缓冲区。

    它比着色器支持更好/更差吗?

    “晚上比外面还冷吗?”是的,这个问题很有意义。模板缓冲区的用途与着色器完全不同。

    如果硬件不支持,会用软件模拟吗?

    是的,但不是以一种理想的方式:整个渲染管道将退回到纯软件渲染。模板测试是通过硬连线功能实现的,不能由仅实现模板测试而其余部分以不同方式实现的“插入式”软件模拟。那样根本行不通。

    幸运的是,您在野外遇到的每个 GPU 都支持模板测试。因此,这无关紧要。

    【讨论】:

      猜你喜欢
      • 2014-04-22
      • 1970-01-01
      • 2019-10-31
      • 2022-01-25
      • 2023-03-31
      • 1970-01-01
      • 2010-09-29
      • 2010-09-12
      • 2013-09-20
      相关资源
      最近更新 更多