【发布时间】:2022-10-03 00:22:46
【问题描述】:
在我的 AR 应用程序中,我想在另一个之上渲染一个模型。是否有任何方法或变量来影响这一点?
-
请提供足够的代码,以便其他人可以更好地理解或重现该问题。
标签: unity3d render augmented-reality
在我的 AR 应用程序中,我想在另一个之上渲染一个模型。是否有任何方法或变量来影响这一点?
标签: unity3d render augmented-reality
是的,至少有两种选择:
always
这必须在您的模型使用的材料的着色器上设置。 Here's unity 的文档,但也有一些在线指南如何使用自定义 z-test 编写着色器。
这是通过拥有两个摄像头来完成的。一个是您的 ARCamera,另一个是始终与 ARCamera 保持相同姿势的第二个。例如,这可以通过将第二台摄像机设置为具有 Identity Pose 的 ARCamera 的子项来完成。然后您可以创建一个特殊的图层,例如“始终在前面”并将模型分配给它。然后为两个相机相应地设置剔除遮罩,这样第二个相机只渲染模型,而 ARCamera 只渲染其他所有东西。使用此解决方案渲染两个相机时可能会有一些开销。
您的问题有一个类似的解决方案来防止 FPS 游戏中的武器剪辑。如this blogpost 所示。
【讨论】:
MainCamera SecondCamera 这两张图片显示了我在检查器中为每个相机设置的属性。因此,我也以两种不同的方式尝试了它,但都没有产生差异。
I:SecondCamera 是 MainCamera 的子级
II:SecondCamera 和 MainCamera 在 ARSessionOrigin 中处于同一层次。
【讨论】: