我正在使用android + ogre3d创建应用。我正在使用FSAA属性,但有一个食人魔bug:当使用externalWindowHandle和fsaa时,fsaa不起作用。我正在使用Surfaceview作为渲染窗口。
现在我找到了android开发者选项“Force 4x MSAA”,当我打开这个选项时,我的应用程序开始运行得很好,正如我想要的那样!此选项使所有OpenGL es 2.0应用程序与MSAA一起使用。但要求用户在手机上打开此选项并不是一个好方法。
那么,有没有办法让我的应用程序始终使用4x MSAA?
答案 0 :(得分:1)
这个bug只是关于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);