脉冲着色器 - MRTK2
使用脉冲着色器在表面重建、关节手网格或任何其他网格上制作视觉脉冲效果动画。
着色器和材质
以下材质使用 SR_Triangles 着色器。 可以配置各种选项,例如填充颜色、线条颜色和脉冲颜色。
- MRTK_Pulse_SpatialMeshBlue.mat
- MRTK_Pulse_SpatialMeshPurple.mat
- MRTK_Pulse_ArticulatedHandMeshBlue.mat
- MRTK_Pulse_ArticulatedHandMeshPurple.mat
先决条件
对于空间网格示例,请确保在“MixedRealityToolkit 对象”->“空间感知配置文件”->“显示设置”->“可见材质”下分配 MRTK_Pulse_SpatialMeshBlue.mat 或 MRTK_Pulse_SpatialMeshPurple.mat。
对于手部网格示例,请确保在 ArticulatedHandMesh.prefab 中分配 MRTK_Pulse_ArticulatedHandMeshBlue.mat 或 MRTK_Pulse_ArticulatedHandMeshPurple.mat,该预制件本身应在“MRTK 设置”->“输入”->“手部跟踪”->“手部网格预制件”中分配。
工作原理
手部网格着色器使用 UV 沿手部网格映射脉冲,并淡出手腕。 表面重建着色器使用顶点位置来映射脉冲。
空间网格示例 -PulseShaderSpatialMeshExample.unity
与 HoloLens 2 的 shell 体验类似,可以使用手部射线来指向和隔空敲击,以在空间网格上生成脉冲效果。 示例场景包含 ExampleSpatialMesh 对象,该对象是 Unity 游戏模式的测试空间网格数据。 此对象将被禁用并隐藏在设备上。
如果 PulseOnSelect
为 true,则 PulseShaderSpatialMeshHandler.cs 脚本将在空间网格上的命中点位置生成脉冲效果。 也可以在材质本身中将 Auto Pulse
属性设置为 true 以重复动画。 在示例场景中,此脚本已附加到 PulseShaderSpatialMeshParent 预制件。 通过运行时空间网格预制件属性在空间感知配置文件下引用此预制件。 在运行时,PulseShaderSpatialMeshParent 预制件将被实例化并添加到空间网格层次结构中(仅在设备上,无法在编辑器中观察此行为)。
手部网格示例 -PulseShaderHandMeshExample.unity
此示例场景演示如何使用脉冲着色器进行手部网格可视化。 当 HoloLens 设备检测到手部时,将触发脉冲动画一次。 这种视觉反馈可以增强用户的交互自信心。
PulseShaderHandMeshHandler.cs 脚本在分配的材质上生成脉冲效果。 默认已选中“检测手部脉冲”。