OpenGL模板缓冲区,它们的支持程度如何?

时间:2014-01-12 09:54:23

标签: c++ opengl vbo stencil-buffer

  • OpenGL中硬件现在支持的Stencil Buffer有多普遍?

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

  • 如果硬件不支持,是否会在软件中模拟?

遗憾的是,我无法找到关于这个主题的任何硬数据...我想假设由于模板是一项古老的技术,它无处不在。然而,作为一项旧技术,它可以很容易地逐步淘汰新的GPU硬件,转而使用片段着色器。

在我的场景中,我将使用8位模板缓冲区与24位深度缓冲区结合使用,与VBO一起使用(如果这会影响任何内容)。如果我使用模板缓冲区,没有模板支持的人就不可能玩我正在制作的游戏,因此担心。如果他们至少可以模仿软件中的模板效果,虽然它不是理想的,但这足以让我的恐惧得到休息。

2 个答案:

答案 0 :(得分:2)

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

您可以保证模板缓冲区。无论是在GPU上还是在软件上完成,都是一个实现细节。任何能够运行你所定位的OpenGL版本的机器都应该能够在CPU上处理模板测试而不会出汗。

答案 1 :(得分:1)

  

OpenGL中硬件现在支持的模板缓冲区有多普遍?

自古以来,GPU一直支持模板缓冲区。

  

是否比着色器更好/更差?

“晚上外面比外面更冷吗?”是的,这个问题具有同样的意义。模板缓冲服务器的目的与着色器完全不同。

  

如果硬件不支持,是否会在软件中模拟?

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

幸运的是,你在野外遇到的每一个GPU都支持模板测试。所以这无关紧要。

相关问题