我们正在使用 OpenTK、C# 和 Visual Studio 2010。我们需要询问图形设备是否支持 texture2DArray,以及它可能支持哪些抗锯齿模式。任何帮助将不胜感激。
问问题
1494 次
1 回答
3
对纹理数组的原始支持是GL_EXT_texture_array的一部分。这已作为 3.0 版的一部分引入 OpenGL 核心。
因此,您可以检查您的 OpenGL 版本是否大于或等于 3.0,或者扩展字符串是否包含GL_EXT_TEXTURE_ARRAY
. 要完整,您需要进行 2 次测试,因为可以通过任何一种方式公开支持(或者您可以决定仅在支持 OpenGL 3.0 的设备上运行)。
对于多采样问题,它相当棘手。多重采样历来是在平台级别完成的,因为它与帧缓冲区属性相关联。我假设您在 Windows 上定位 GL,但我不知道这在 c# 中是如何完成的。
查看http://www.opengl.org/wiki/Multisampling以了解在 C 中为初始帧缓冲区执行此操作的相当复杂的方法。
现在... 由于引入了帧缓冲区对象,核心 GL 还具有分配帧缓冲区的能力,包括多采样表面(核心 3.0 中的第 4.4 节)。如果您使用此功能,则使用 完成分配glRenderbufferStorageMultisample
,并通过返回支持的最大样本数glGetIntegerv(GL_MAX_SAMPLES)
于 2010-10-12T07:29:54.393 回答