混合现实设计语言 (MRDL) 与图形工具之间的联系 - MRTK3

混合现实设计语言 (MRDL) 是一种类似于 Fluent 的设计语言,但它包含针对混合现实的考虑因素。 多年来,MRDL 随着 HoloLens 的每次迭代以及 Mesh 应用等产品的演变而演变。

图形工具旨在更好地共享用于构建 MRDL 用户界面组件的工具和流程。 图形工具包旨在通过着色器、纹理、材料、模型、脚本和工具将 MRDL 概念推广到所有混合现实应用。

可在何处找到 MRDL 组件?

提示

正在寻找完整的 MRDL 设计组件? 请看一看 MRTK 中的更高级别的 UX 包。

可在以下位置找到为 MRDL 提供支持的着色器和资产:

着色器

每个材料检查器的第一个选项都包含一个着色器下拉列表。 所有图形工具着色器都在 Graphics Tools 命名空间内。 大多数定制的 MRDL 着色器都在 Graphics Tools/CanvasGraphics Tools/Non-Canvas 着色器命名空间中。 顾名思义,Canvas 命名空间中的着色器应与 UnityUI 画布配合使用,Non-Canvas 命名空间中的着色器应在常规 Unity 上下文中使用。

Shader dropdown in editor

提示

如果仔细查看这些着色器的源代码,可能会发现它们甚至比传统着色器更难理解。 这是因为它们是从工具生成的。

材质

在 Runtime/Materials 文件夹中,可以找到一个表示上述每个着色器的材料。 这些材料用于常见的用户界面组件。 某些材料引用特定效果所需的纹理,例如 iridescence。

模型

某些模型位于 Runtime/Models 文件夹中。 这些模型用于非画布材料。

提示

大多数画布模型是在代码中以编程方式生成的。

何时应使用一个 MRDL 组件,而何时又应使用另一个?

图形工具支持两种用户界面创建方法:UnityUI 和传统游戏对象。 建议查看示例资产,不过,下面的列表可用作参考。

下面的交互式操场显示 MRDL 组件如何用于创建按钮。

背板

为要放置的用户界面元素提供不透明的背衬。

Back plate example

资产 画布 非画布
着色器 Graphics Tools/Canvas/Backplate Graphics Tools/Non-Canvas/Backplate
材料 CanvasBackplate Non-CanvasBackplate
脚本/模型 CanvasElementRoundedRect.cs Backplate8

前板

显示背板上方的半透明表面,用于显示音量和邻近照明。

Front plate example

资产 画布 非画布
着色器 Graphics Tools/Canvas/Frontplate Graphics Tools/Non-Canvas/Frontplate
材料 CanvasFrontplate Non-CanvasFrontplate
脚本/模型 RawImage.cs/ScaleMeshEffect.cs Frontplate8

Glow

与视觉对象交互时的一小块光亮部分。

Glow example

资产 画布 非画布
着色器 Graphics Tools/Canvas/Glow Graphics Tools/Non-Canvas/Glow
材料 CanvasFrontplate Non-CanvasFrontplate
脚本/模型 RawImage.cs/ScaleMeshEffect.cs Quad(Unity 默认)

四辉光

与视觉对象间接交互时较大的明亮辉光。

Quad glow example

资产 画布 非画布
着色器 Graphics Tools/Canvas/Quad Glow Graphics Tools/Non-Canvas/Quad Glow
材料 CanvasQuadGlow Non-CanvasQuadGlow
脚本/模型 RawImage.cs/ScaleMeshEffect.cs Quad(Unity 默认)

斜边矩形

类似于背板,但提供具有斜边的矩形。

Beveled rect example

资产 画布 非画布
着色器 Graphics Tools/Canvas/Beveled Graphics Tools/Non-Canvas/Beveled
材料 BevCanvasBeveled Non-CanvasBeveled
脚本/模型 CanvasElementBeveledRect.cs Beveled4x4、Beveled6x6、Beveled8x4、Beveled8x8

另请参阅