【问题标题】:Google cardboard for unity disables AA on android deviceGoogle Cardboard for unity 在 android 设备上禁用 AA
【发布时间】:2015-04-14 16:50:44
【问题描述】:

我正在使用 google cardboard SDK 为 Android 开发简单的 VR 应用程序以实现统一。我正在使用 unity 5(免费)和最新版本的统一纸板包(0.4.9),我正在索尼 xperia z3 compact(lolipop)和三星 Galaxy Note 3(kitkat)上进行测试

我遇到的问题是,我无法打开抗锯齿,或者更确切地说是 google sdk 包,似乎禁用了它。我不介意锯齿状的角落,但问题是当它们足够远时,这些角落会闪烁。我尝试将纹理分开(因为闪烁可能是重叠的结果),但问题仍然存在。

这不可能是针对 android 的统一导出的问题,因为如果我使用统一提供的相机构建相同的项目(谷歌纸板统一包中提供的测试示例),插入 Cardboard 主游戏对象),AA 正在工作.它不能比这更简单,一旦立方体和一个相机......我尝试在播放器设置中打开和关闭 32 位显示缓冲区选项,尝试在统一提示中强制打开 GL ES 2.0 和各种其他勾选/取消勾选复选框通过网络,没有成功。

所以我的问题是,还有其他人有同样的问题吗?以及如何解决?

我希望我的问题和问题描述足够详细。

干杯

【问题讨论】:

    标签: android unity3d google-cardboard


    【解决方案1】:

    Cardboard.cs 类包含一个 RenderTexture,它是相机渲染的对象,然后通过镜头的失真校正将其重新渲染到手机屏幕。这绕过了 Unity 对屏幕的正常渲染,因此项目的 AA 设置不会有任何影响。

    要查看 Unity 中的 AA 设置会产生什么影响,您可以做一些不同的事情:

    1. 关闭 Cardboard.SDK.nativeDistortionCorrection,以便 Unity 直接在屏幕上绘图,或者
    2. 编辑 Cardboard.CreateStereoScreen() 并更改在那里分配的 RenderTexture 的设置。

    但是,用于失真的本机代码重新渲染不会在帧缓冲区中使用抗锯齿,因此我不确定您会在 #2 中看到多少效果。无论哪种方式,肯定都会有性能损失。

    【讨论】:

    • 嘿,感谢您的快速回复。 #1 成功了。您能否详细说明一下,关闭 nativeDistortionCorrection 的尺寸缩小(除了性能)是多少?
    • 这些镜头除了让屏幕占据更多视野之外,还给你透过它们看到的东西添加了枕形失真。校正是桶形失真以抵消它。否则,它就是一种有趣的镜面效果。
    【解决方案2】:

    关闭失真校正可解决此问题。然后您可以将 Unity 项目的抗锯齿设置设置为 4x 或 8x。现在看起来很棒 - 在 iPhone 6+ 上观看时不再出现锯齿。

    运行 Google Cardboard SDK v0.5 的 Unity 5 --

    要关闭失真校正: 转到层次结构 |纸板主要 |在 Inspector 中取消选中失真校正

    在 Unity 中启用 4x 或 8x 抗锯齿: 转到编辑 |项目设置 |质量 |在 Inspector 中将 Anti Aliasing 设置为 4x 或 8x Multi Sampling。

    【讨论】:

      【解决方案3】:

      如果您不想关闭失真校正,则需要将纹理深度从 16 位更改为 32 位,并将纹理格式更改为 ARGB32。为此,请转到文件 BaseVRDevice.cs,然后找到 CreateStereoScreen 函数并将其更改为

      public virtual RenderTexture CreateStereoScreen() {
          Debug.Log("Creating new default cardboard screen texture.");
          return new RenderTexture(Screen.width, Screen.height,32, RenderTextureFormat.ARGB32);
        }
      

      【讨论】:

        【解决方案4】:

        我遵循了 serg hov 的建议,但即使在应用该修复后,AA 也无法处理失真问题。

        关闭失真没有意义,所以我想知道让失真和 AA 都工作的解决方案是什么。它适用于 Gear VR,所以必须有办法让它适用于 Cardboard VR。

        【讨论】:

          猜你喜欢
          • 2016-07-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多