opengl - 如何获取GPU多重采样模式描述?

标签 opengl antialiasing

我正在 OpenGL 游戏中实现 AA,并使用 wglChoosePixelFormatARB 来选择合适的渲染上下文。不过,选择正确的模式存在问题。

正如您所知,GPU 可以以各种组合使用各种 AA 策略(MSAA、SSAA、CSAA 等)。例如。如果我请求 WGL_SAMPLES_ARB = 8 我会得到非常好的抗锯齿效果,但当我调用 glDisable(GL_MULTISAMPLE) 时,它只会部分禁用,而当我请求 WGL_SAMPLES_ARB 时,它只会部分禁用= 7,可以很好的禁用。

这是我找到的引用:

Originally there was only multisample antialiasing (MSAA). SAMPLES was designated for the number of MSAA samples per pixel to allocate for that system framebuffer. Clean, simple.

Then the GPU vendors added support for supersample antialiasing (SSAA), coverage sample antialiasing (CSAA), and combinations of the three. For instance, here are the modes available on an NVidia GTX285 on the latest OpenGL 3.3 drivers:


AA Mode / Description

  • 0 - Off
  • 1 - 2x (2xMS)
  • 5 - 4x (4xMS)
  • 7 - 8x (4xMS, 4xCS)
  • 8 - 16x (4xMS, 12xCS)
  • 9 - 8x (4xSS, 2xMS)
  • 10 - 8x (8xMS)
  • 12 - 16x (8xMS, 8xCS)

所以,我正在寻找一种方法来获取 AA 模式描述,以及它结合了哪些类型的 AA。我该怎么做?

最佳答案

据我所知,通过交叉检查相关供应商的相关文档,除了您所写的内容之外,没有任何描述。

不幸的是,OpenGL 或 Direct3D 都没有提供任何类型的文档来说明 AA 模式的实际含义。

关于opengl - 如何获取GPU多重采样模式描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6129797/

相关文章:

opengl - 未声明的标识符texture2DLodOffset的调用无效

c++ - 如何解决Blinn/Loop分辨率独立曲线渲染中的渲染伪影?

使用 glOrtho 进行 OpenGL 光照

c++ - OpenGL 深度无法按预期工作

java - 如何在任意 Java 应用程序中启用抗锯齿功能?

iphone - 调整 UIWebView 大小时抗锯齿不起作用

ios - 在 iPad/iOS 上启用 4x MSAA 抗锯齿时出现伪影

c++ - glReadPixels 始终在 glClearColor 中返回相同的值

c++ - 像素在自行初始化时移动,但不在循环中移动?

.net - 是否有将图像重新抗锯齿为不同背景颜色的技术?