如何为SteamVR添加3D叠加层

时间:2017-03-31 15:11:20

标签: unity3d virtual-reality htc-vive openvr

我正在尝试使用OpenVR Overlay API将3D模型覆盖在另一个VR应用程序的顶部。

我已成功使用此API,并在此HeadlessOverlayToolkit的帮助下覆盖了平面。

我已经安排了6架飞机来制作一个3D立方体并且可以覆盖它。

我想弄清楚有没有办法覆盖实际的3D模型,如果是这样的话怎么样?

我在OpenVR docs中看到IVROverlay允许您通过合成器呈现2d内容。但是,当然如果可以构建三维形状(使用二维平面)那么为什么不能覆盖三维模型呢?

此处的任何见解,经验或指导都将受到赞赏。

一切顺利,

利安

1 个答案:

答案 0 :(得分:0)

有可能。照常创建叠加层,然后调用SetOverlayRenderModel。它以.obj文件的路径作为参数。唯一的警告是由于某种原因,您仍然需要提供纹理,否则该模型将不会显示,但是它可以是透明的1x1模型,因此它不可见-有关详细信息,请参见this issue

请注意,当前无法添加任何动态生成的网格,只能从文件加载。制作动画也是不可能的。

当SteamVR不喜欢您的模型时,即使该函数应该返回EVROverlayError,但似乎不会出现任何错误报告。如果发生这种情况,请仔细检查所有路径并尝试从C:\Program Files (x86)\Steam\steamapps\common\SteamVR\resources\rendermodels\vr_controller_vive_1_5\vr_controller_vive_1_5.obj加载默认控制器模型,因为它们绝对正确。我在加载没有纹理的模型时遇到了一些问题,因此请确保您的模型具有正确的纹理并具有UV贴图。