3

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

在这个HeadlessOverlayToolkit的帮助下,我已经成功地使用了这个 API来覆盖平面。


我已经安排了 6 个平面来制作一个 3d 立方体并可以覆盖它。

我想弄清楚有一种方法可以覆盖实际的 3d 模型,如果是这样的话怎么办?

我在OpenVR 文档中看到它说IVROverlay允许您通过合成器渲染 2d 内容。但是,如果可以构建 3d 形状(使用 2d 平面),那么为什么不能覆盖 3d 模型呢?

任何见解,经验或指导将不胜感激。

一切顺利,

利亚姆

4

1 回答 1

0

有可能的。像往常一样创建叠加层,然后调用SetOverlayRenderModel. 它将.obj文件的路径作为参数。唯一需要注意的是,由于某种原因,您仍然需要提供纹理,否则模型将不会出现,但它可以是透明的 1x1 模型,因此不可见 - 请参阅此问题了解详细信息。

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

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

于 2018-08-14T21:25:06.533 回答