OpenGL Stencil:GL_REPLACE_VALUE_AMD 的可用性

Posted

技术标签:

【中文标题】OpenGL Stencil:GL_REPLACE_VALUE_AMD 的可用性【英文标题】:OpenGL Stencil: Availability of GL_REPLACE_VALUE_AMD 【发布时间】:2016-01-19 12:01:04 【问题描述】:

OpenGL Stenciling, seperating ref from value written?

在这个问题的答案中,供应商特定的扩展 GL_REPLACE_VALUE_AMD 能够完全完成我在 OpenGL 中努力做的事情,但我担心它会限制我希望我的程序运行的计算机和平台上,我没有运气研究它在哪里不可用。

我的目标是让程序在任何支持 OpenGL 2.0 的计算机上运行,​​并且它们之间没有任何功能差异。我是否应该编译一个使用这个扩展的程序,这个集合中的哪些计算机/平台将不再能够毫无问题地运行该程序(如果有的话)?

【问题讨论】:

【参考方案1】:

它是供应商扩展这一事实应该是一个直接的线索,表明您很有可能将自己限制在该供应商的硬件上。这不是 100% 的保证; NV_texture_barrier 已在几乎任何可以运行 GL 3.3 或更高版本的设备上实施多年。

进一步的研究表明,that extension 的发布日期是 2012 年。这表明该扩展可能会由更新的支持 GL 4.x 的硬件实现。

如果您想要更准确的信息,有databases of extension usage 可以提供更清晰的图片。由此,我们看到the extension is only implemented on AMD hardware。虽然它在 AMD 的 GL 3.x 级硬件上可用,但在 AMD 的任何 2.x 级硬件上都不可用。

因此,如果您的目标是最大程度地支持 GL 2.0(为什么不支持 2.1?),那么您就不能使用该扩展。

【讨论】:

以上是关于OpenGL Stencil:GL_REPLACE_VALUE_AMD 的可用性的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL Stencil Buffer,它们的支持程度如何?

OpenGL Stencil:GL_REPLACE_VALUE_AMD 的可用性

OpenGL ES 学习教程(十三) Stencil_TEST(模板缓冲测试)

OpenGL ES 学习教程(十三) Stencil_TEST(模板缓冲测试)

无法让 Stencil Buffer 在 iOS 4+ 中工作(5.0 工作正常)。 [OpenGL ES 2.0]

OSX OpenGL 深度模板组合