【问题标题】:Does RenderTexture works with Vuforia, Google Cardboard and Unity5?RenderTexture 是否适用于 Vuforia、Google Cardboard 和 Unity5?
【发布时间】:2015-12-03 11:01:31
【问题描述】:

我在 Unity5 中使用 Vuforia 和 Google Cardboard,这是我能获得的所有最新版本。我前段时间开始使用它,我需要 RenderTexture 来获得视觉效果,但是虽然我可以让它在 Unity Player 中运行,但我无法让它在 android 版本中运行。让我解释一下。

我需要展示 Vuforia 使用的实时摄像头,并且我需要 Cardboard 的 SDK 用于这个项目,所以我首先尝试让它们很好地协同工作,并且完成了。凉爽的。现在,我尝试使用遮罩只渲染一半的屏幕。完成,尽管在 android 版本中它覆盖了屏幕的另一半。没问题,我只是在测试。

这就是主要问题所在。我想向另一半展示它实际上是镜像的。我尝试了很多东西,似乎可行的一个是在作为相机子代的平面中使用RenderTexture,使用第三个相机,独立于纸板相机,我将目标纹理指定为@987654322 @(称为mirror)是我用材料创建的。我将材料分配给飞机,它起作用了。我只需要调整纹理的平铺和偏移,所以我在变换中调整了位置,这样效果就完成了。尽管存在一些缺陷,但它仍然有效,所以我做了 android 构建。而且...在我测试的所有智能手机中,RenderTexture 看起来都是黑色的。

我尝试了一个我可以很容易看到的立方体,所以我可以确定飞机没有移位或其他什么。不走运,那是一个黑色的立方体。我尝试搜索在执行时生成的缓冲区 (TextureBufferCamera)。在多维数据集脚本的LateUpdate 中得到它,并将多维数据集的RenderTexture 分配给TextureBufferCamera 正在使用的相同RenderTexture,并且它可以工作。如您所料,仅在播放模式下。 android 版本显示了一个完美的黑色立方体。

我也在一个单独的项目中尝试过,仅使用 vuforia,两种方法都出现了完全相同的错误(搜索 TextureBufferCamera,并使用第三个独立摄像头)。而且...我不知道为什么它无论如何都不起作用。

我不知道你们需要什么才能获得更多信息,只要问,我会编辑任何你们认为有用的信息。哦,这是我第一次使用 Cardboard 和 Vuforia...所以请记住这一点,因为我可能会错过一些东西或者...我不知道。我到处搜索(不仅在这里),我只看到非常非常古老的帖子,并且出现这样的错误。

【问题讨论】:

    标签: c# android unity3d vuforia google-cardboard


    【解决方案1】:

    好吧,过了一会儿,我想到一件事。就我现在而言,MovieTexture 在 Android 中不起作用,但我看不出 RenderTexture 有任何问题……而且它根本不渲染。

    我想出了一个替代解决方案。我在左侧立体相机中复制了 BackgroundPlane,并使用了 BackgroundPlane 拥有的材质的副本。在这个副本中,我删除了背景平面行为,并确保第二个材质与第一个视频材质具有相同的着色器。然后,我必须不断移动(在 LateUpdate 中)两个平面的位置,才能让它们都在视图中。而且我还必须实时将它们的比例缩小一半,以便它们适合。

    它工作得非常好,我现在唯一遇到的问题是,我需要适应它们在智能手机中合并的点,因为它有点移位或其他什么......但它呈现!这样,原来的问题就解决了。

    我没有在问题中看到太多关注,也没有太多时间,所以如果有人需要更多信息,我会发布屏幕截图、代码或他需要的任何内容。但我认为我所说的几乎都是解决办法……所以,是的。如果需要,我会编辑此答案,但今天已完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 2017-12-20
      • 1970-01-01
      相关资源
      最近更新 更多