在虚幻4.14中是否破坏了MSAA?

时间:2016-12-07 10:58:25

标签: android antialiasing unreal-engine4 gear-vr msaa

我正在尝试在Galaxy S6上使用GearVR中的MSAA进行新的前向渲染。但肯定没有抗锯齿化。完全没有。

经过大量的在线搜索和编辑后,我发现以下变量可能与开启MSAA有关:

1。 窗口>开发人员工具>设备配置文件>机器人:

  • r.MSAACount
  • r.MSAACompositingSampleCount
  • r.DefaultFeature.Antialiasing
  • r.MobileOnChipMSAA
  • r.MobileMSAA
  • r.MobileContentScaleFactor

如果我在UEd中的设备配置文件编辑器中更改它们,上述情况似乎都没有区别。

2。 编辑>项目设置>引擎>渲染>默认设置>抗锯齿方法:。将其设置为MSAA无效。

3。 我也试过在DefaultEngine.ini中设置所有以前的变量而没有。

我必须要忽略一些东西。如果有人有任何想法,我真的很感激。

1 个答案:

答案 0 :(得分:1)

原来:

  1. 默认情况下,移动设备已启用MSAA。
  2. 4.14中的Forward渲染器与mobile无关。它仅适用于台式机(即HTC Vive和Rift)。
  3. 关于如何检查MSAA确实已启用:

    您可以通过搜索以下内容来检查在logcat中运行设备的时间: LogHMD: Enabling r.MobileOnChipMSAA, previous value 0

    您还可以在 OpenGLRenderTarget.cpp:第201行添加日志(并重新编译引擎)。你想确保你击中: glFramebufferTexture2DMultisampleEXT

    由于此代码路径中的else分支否则会创建一个非多重采样的FBO。

    然而,MSAA样本计数似乎在引擎源中的其他位置硬编码为2。 在long discussion in the Oculus forums我被告知后,我可以在第152行更改样本数(例如,有MSAA x4):

    `// TODO: Mali supports 4x with similar hit as 2x, should we do something smarter here? Hard coded to 2 everywhere else
    
    const uint32 SampleCount = 2;
    

    但是在设备上运行时没有执行此代码路径。所以不确定2可能在哪里被硬编码。