SDL多重采样

Cha*_*ing 5 opengl multisampling sdl antialiasing

我一直在尝试使用多重采样工作的SDL FSAA,但它不想这样做.

我从简单的开始:

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

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

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

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

如果我在NVidia控制面板中强制启用FSAA,它可以很好地工作,但我似乎无法让应用程序启用它.

有任何想法吗?

ima*_*ett 1

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

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

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

SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES,16);
Run Code Online (Sandbox Code Playgroud)

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