如何在Android应用程序上启用msaa

时间:2016-09-04 20:44:38

标签: android opengl-es opengl-es-2.0 ogre msaa

我正在使用android + ogre3d创建应用。我正在使用FSAA属性,但有一个食人魔bug:当使用externalWindowHandle和fsaa时,fsaa不起作用。我正在使用Surfaceview作为渲染窗口。

现在我找到了android开发者选项“Force 4x MSAA”,当我打开这个选项时,我的应用程序开始运行得很好,正如我想要的那样!此选项使所有OpenGL es 2.0应用程序与MSAA一起使用。但要求用户在手机上打开此选项并不是一个好方法。

那么,有没有办法让我的应用程序始终使用4x MSAA?

1 个答案:

答案 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);