6

我一直在尝试让 SDL FSAA 与 Multisampling 一起工作,但它不想这样做。

我从一些简单的事情开始:

SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 2);

但我做了相关的获取,它为缓冲区返回 0,为样本返回 1。(SetVideo 之前和之后)。

我在我的 GeForce 280M 上都试过了,怀疑是移动问题,在我的 580 上试过,也没有运气。

我正在运行带有最新驱动程序的 Windows 7。

如果我在 NVidia 控制面板中强制启用 FSAA,效果会很好,但我似乎无法让应用程序启用它。

有任何想法吗?

4

1 回答 1

1

这些函数应该返回 0 或 -1。他们永远不应该返回 1 。. . 所以我不知道那里发生了什么。这些返回值是其他功能的吗?

无论如何,重要的是要注意这些是requests。无法保证它们就是您认为的那样。这就是 SDL_GL_GetAttribute 函数存在的原因(在 SDL_SetVideoMode 之后调用它以查看您得到了什么)。

您正在请求一个每个像素有两个样本的多重采样缓冲区。这不是一个非常大量的多重采样。在 SDL_SetVideoMode 之前,请尝试以下操作:

SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES,16);

如果您看到平滑的边缘,请不要担心。

于 2012-02-16T19:41:22.023 回答