【问题标题】:Rendering virtual objects transparent in augmented reality在增强现实中渲染虚拟对象透明
【发布时间】:2017-07-03 17:43:50
【问题描述】:

我想在我的增强现实场景中放置虚拟对象,这些对象呈现为透明的。

为简单起见,我们以 Google 的 SimpleAugmentedReality 场景为例。当您从示例项目中获取场景时,地球和月亮被放置在您面前,并通过纹理呈现为不透明。

当我将材质“渲染模式”更改为“透明”时,我希望它们变得透明,但没有任何变化。

我还尝试了自定义着色器,其中我只渲染了一个立方体并将 alpha 值设置为低于 1.0。它在 AR 场景中也是不透明的。

我是否错过了 Tango Camera 预制件中的一些配置?

【问题讨论】:

  • 设置为透明后,Standard shader中是否设置了alpha通道?
  • 我通过在我的着色器中正确初始化透明度解决了这个问题。

标签: android unity3d google-project-tango


【解决方案1】:

TangoSDK 现在不支持这个,但我认为这是一个非常合理的要求。

它不起作用的原因是TangoSDK将后台相机渲染命令注入Unity的命令缓冲区,并使用glDepthMask(GL_FALSE);渲染

这将导致 Alpha 混合无法从背景摄像头渲染中获取颜色。

【讨论】:

    【解决方案2】:

    实际上它现在可以工作了: 我不熟悉 Unity 中的着色器,所以我忘记了子着色器中的 Tags{"Queue" = "Transparent"} 标签。此外,Blend SrcAlpha OneMinusSrcAlpha 指令未在 pass 中设置。

    现在,根据着色器中定义的 Alpha 值,我的对象在 RGB 摄像机视频帧的“顶部”呈现为透明。

    【讨论】:

      猜你喜欢
      • 2018-01-27
      • 1970-01-01
      • 2013-07-05
      • 2021-05-18
      • 2012-09-24
      • 1970-01-01
      • 2018-05-11
      • 2018-11-11
      • 2013-09-28
      相关资源
      最近更新 更多