我正在使用android + ogre3d创建应用。我正在使用FSAA属性,但是有一个食人魔bug:当同时使用externalWindowHandle和fsaa时,fsaa无法正常工作。我正在使用Surfaceview作为渲染窗口。
现在,我已经找到了android开发人员选项“ Force 4x MSAA”,并且当我打开该选项时,我的应用程序开始按需运行了!此选项使所有OpenGL ES 2.0应用程序都可以与MSAA一起使用。但这不是要求用户在手机上打开此选项的好方法。
那么,有什么方法可以使我的应用始终使用4倍MSAA?
最佳答案
该错误仅与linux OS有关。
FSAA是旧技术,食人魔会忽略它。因此,您可以改用MSAA或CSAA。
ANativeWindow *nativeWnd = ANativeWindow_fromSurface(env, surface);
Ogre::NameValuePairList opt;
opt["MSAA"] = "2";
opt["externalWindowHandle"] = Ogre::StringConverter::toString(
reinterpret_cast<size_t>(nativeWnd));
gRenderWnd = Ogre::Root::getSingleton().createRenderWindow("OgreWindow", 0, 0, false, &opt);