基于MRTK+OpenXR+UE4,Hololens2中StereoLayer设置及左右眼纹理渲染求助
Hololens2上StereoLayer修复及左右眼异纹理实现方案
一、让StereoLayer正常工作的配置步骤
- 项目基础配置
打开Edit > Project Settings > Platforms > HoloLens,确认Enable OpenXR已勾选,同时开启Stereo Layers选项。另外在MRTK的输入设置里,把输入后端设为OpenXR,保证MRTK和项目XR配置一致。 - StereoLayer组件调优
给Actor挂上Stereo Layer组件后,先选对Layer Type(比如平面内容用Quad)。检查纹理是否正确赋值,注意颜色纹理要开SRGB,渲染目标纹理要关SRGB。还要调整组件的Transform参数,别让内容超出Hololens2的视场,也别被近裁剪面挡住。 - 打包与权限设置
打包选HoloLens平台,在Project Settings > Packaging里勾上Include OpenXR Content。Build模式选Development或Shipping,Debug模式下XR功能可能有限制。另外在Capabilities里要勾SpatialPerception,如果要加载远程纹理还得加InternetClient,权限不够会导致功能失效。
二、实现左右眼渲染不同纹理
- 材质节点区分法(最简单)
做一个自定义材质,在材质编辑器里找到XR节点组的Is Left Eye节点,用它来分支纹理采样:节点输出True时采样左眼纹理,False时采样右眼纹理,把这个材质给需要显示的Mesh就行。记得相机的Stereo Rendering Mode设为Instanced Stereo,这是Hololens2推荐的模式。 - 双渲染目标法(适合复杂场景)
先建两个Render Target,分别对应左右眼。再弄两个相机,一个开Is Left Eye选项,另一个不开,让它们分别渲染到对应的Render Target。然后做个自定义材质,用Is Left Eye节点切换采样这两个Render Target,把材质贴到StereoLayer或Mesh上就能实现左右眼不同画面。 - MRTK兼容提示
如果用MRTK的相机系统,要么调整MRTK的Camera Profile适配自定义设置,要么直接禁用MRTK默认相机,避免两个相机系统冲突。
内容的提问来源于stack exchange,提问作者misumisu
相关产品推荐
相关产品推荐

