opengl SDL多采样

hrysbysz  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(152)

我一直试图让SDL FSAA与多采样工作,但它不想。
我从简单的开始:

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

但是我执行了相关的get,它为缓冲区返回0,为样本返回1(SetVideo之前和之后)。
我在我的GeForce 280M上都试过了,怀疑是手机的问题,在我的580上也试过了,也没有运气。
我运行的是Windows 7和最新的驱动程序。
如果我在NVidia控制面板中强制FSAA,它工作得很好,但我似乎不能让应用程序启用它。
有什么想法吗?

2eafrhcq

2eafrhcq1#

这些函数应该返回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);

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

相关问题