RenderTexture 是否适用于 Vuforia、Google Cardboard 和 Unity5?

Does RenderTexture works with Vuforia, Google Cardboard and Unity5?

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

我需要展示Vuforia使用的live camera,这个项目我需要Cardboard的SDK,所以我首先尝试让它们很好地协同工作,然后就完成了。凉爽的。现在,我尝试使用蒙版只渲染一半的屏幕。完成,尽管在 android 构建中它覆盖了屏幕的另一半。没问题,我只是在测试。

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

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

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

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

好吧,过了一会儿我归结为一件事。就我现在而言,MovieTexture 在 Android 中不起作用,但我看不出 RenderTexture 有任何问题...此外它根本不呈现。

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

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

我没有在问题中看到太多关注,也没有那么多时间,所以如果有人需要这方面的更多信息,我会 post 屏幕截图、代码或任何他想要的需要。但我认为我所说的几乎都是解决问题的办法……所以,是的。如果需要,我会编辑这个答案,但今天就完成了。