使用带有 UV 的 3D 模型

UV 是投射到 3D 表面上的二维纹理坐标。UV 定义了纹理贴图上的哪些像素对应于 3D 模型上的哪个顶点。要在 Kanzi Studio 中使用纹理坐标,您需要在内容创建工具(例如 3ds Max)中创建 UV 布局。这称为展开或 UV 映射。在平面二维空间中展开您的 3D 模型,以便为该 3D 模型投射纹理,使流动从模型的开始到结束。请参阅 在第三方工具中准备 3D 资产。

您可以在 Kanzi Studio 中使用带有 UV 的 3D 模型:

  • Texture Offset 属性。

    使用具有 Texture Offset 属性的 UV 允许您在 3D 模型的表面上偏移纹理。 例如,要使用具有 Texture Offset 属性的 UV 创建速度计,将 Texture Offset 属性绑定到控制速度的自定义属性。

  • 自定义属性。

    当使用带自定义属性的 UV 时,您可以将其绑定到 Texture Offset 属性,通过自定义属性来控制偏移。

要在您的 Kanzi Studio 项目中使用 UV:

  1. 在您的 3ds Max 等内容创建软件中,为您的 3D 模型准备 UV 坐标。请参阅 在第三方工具中准备 3D 资产。

  2. 在 Kanzi Studio 中,使用 Texture Offset 属性或自定义属性转换 UV 纹理坐标。请参阅 通过 Texture Offset 属性变换 UV 和 通过自定义属性变换 UV。

在 Kanzi Studio 中使用带有 UV 的 3D 模型

要在 Kanzi Studio 中使用带有 UV 的 3D 模型:

  1. 在您的 3ds Max 等内容创建软件中,为您的 3D 模型准备 UV 坐标。请参阅 在第三方工具中准备 3D 资产。

  2. 在 Assets 窗口中,单击 Import Assets,选择您要使用的 UV 映射 3D 模型,然后单击 Open。

    ../../_images/assets-import-assets.png

    当您导入 3D 资产时,Kanzi Studio 为每个 3D 资产创建:

    • 在 Prefabs 中,导入文件中的每个场景对应一个 Scene 预设件。

      Kanzi Studio 根据导入的文件为每个 Scene 预设命名。当您导入包含多个场景的 glTF 文件时,Kanzi Studio 会在每个 Scene 预设的名称后附加场景的名称。

      在每个 Scene 预设件中,Kanzi Studio 从导入文件创建场景层级,并将导入文件中的资产放入该预设件中。

    • 在 Library 中,Kanzi Studio 放置导入文件中的所有资源,例如 Meshes、Splines、Animations 和 Materials。

    请参阅 导入 3D 资产。

    ../../_images/imported-model.png
  3. 在 Prefabs 中,选择以您在上一步导入的 3D 模型命名的 Scene,并双击它以作为合成打开。

    要查看在 Preview 中渲染的 Scene 组合,它必须包含一个摄像机和至少一个光源节点。

    ../../_images/open-as-composition.png ../../_images/positioned-model.png
  4. 在 Model 组合中,选择 Model > RootNode > Model 节点,并在 Properties 中将 3D 模型的材质设置为您想要用于该模型的材质。在此示例中,您使用支持纹理的材质。

    ../../_images/set-mesh-material.png ../../_images/model-with-textured-material.png

通过 Texture Offset 属性变换 UV

在 Kanzi Studio 中,您可以使用 Texture Offset 属性转换 UV 纹理坐标。当您调整该属性的值时,您会转换坐标,其中 Kanzi 偏移纹理。

要通过 Texture Offset 属性变换 UV:

  1. 在您的 3ds Max 等内容创建软件中,为您的 3D 模型准备 UV 坐标。请参阅 在第三方工具中准备 3D 资产。

  2. 在 Prefabs 中选择 Model 节点,并在 Properties 中添加并设置:

    • 将 Blend Mode 属性设置为 Alpha: Premultiplied。这确保了透明度的正确混合。

    • 将 Texture 属性应用到您想用 UV 控制的纹理上。

    • Texture Offset 属性。

      使用 Texture Offset 属性来控制 3D 模型上的 UV 坐标。如果您希望当 Texture Offset 属性的值大于 3D 模型的大小时 3D 模型不可见,确保将纹理周围的 2 个像素设为透明。

    ../../_images/select-model-node.png ../../_images/add-properties.png ../../_images/model-with-properties.png
  3. 在 Library > Materials and Textures > Textures 中,选择您通过 Texture Offset 属性控制位置的纹理,并在 Properties 中将 Wrap Mode 属性设置为 Clamp。

    这样,当 Texture 坐标偏移到低于 0.0 或高于 1.0 的值时,就不会出现纹理重复。

    ../../_images/select-texture.png ../../_images/set-wrap-mode.png

Kanzi 在 Texture Offset 属性的值更改时更新渲染中使用的纹理坐标。 例如,要创建速度表,将 Texture Offset 属性绑定到包含当前速度的自定义属性。 当自定义属性的值更改时,Kanzi 根据该属性的值偏移纹理。 请参阅 使用绑定。

通过自定义属性变换 UV

在 Kanzi Studio 中,您可以使用自定义属性转换 UV 纹理坐标。当您调整该属性的值时,您会转换坐标,其中 Kanzi 偏移纹理。

要通过自定义属性变换 UV:

  1. 在您的 3ds Max 等内容创建软件中,为您的 3D 模型准备 UV 坐标。请参阅 在第三方工具中准备 3D 资产。

  2. 在 Library 按 Alt 并右键单击 Property Types 中,选择 Property Type,并在 Property Type Editor 中设置:

    • 将 Lower Bound 设置为属性的最低值。

      例如,将其设为 0。

    • 将 Upper Bound 设置为属性的最高值。

      例如,将其设为 270。

    ../../_images/property-type-editor.png
  3. 在 Prefabs 中,选择 Model > RootNode > Model 节点,并在 Properties 中添加并设置:

    • 将 Texture 属性应用到您要使用的纹理。

    • Blend Mode 到 Alpha: Premultiplied。

      这样可以确保正确混合透明度。

    • 您在上一步中创建的自定义属性。

    ../../_images/select-model-node.png ../../_images/add-properties-to-custom-property-uv.png
  4. 在 Library > Materials and Textures > Textures 中,选择您用于模型材质的纹理,并将 Wrap Mode 属性设置为 Clamp。

    这样可以确保在调整自定义属性的值时不存在任何重复的纹理。3D 模型的 UV 坐标作为纹理的画布。

    ../../_images/set-wrap-mode.png
  5. 在 Prefabs 中选择 Model 节点,在 Properties 中点击 + Add Binding,并在 Binding Editor 中设置:

    • Property 到 Texture Offset

    • Property Field 到 VECTOR_X

    • Expression 到:

      ({@./Speed}/270.0) - 1.0
      

    这会根据您在自定义属性中设置的值在 x 轴上偏移纹理。您将速度值除以 270.0,因为您将其用作速度表的最大值。您缩放仪表的范围以匹配从 0.0 到 1.0 的纹理坐标值范围。您减去 1.0 以将坐标移出 0.0 到 1.0 的范围,并在自定义属性的值为 0 时使仪表为空。

    要在 y 轴上偏移纹理,请在 Binding Editor 中将 Property Field 设置为 VECTOR_Y。

当您调整自定义属性的值时,Kanzi 会根据该属性的值在绑定中设置的轴上偏移纹理。

另请参阅

3D 资产 (3D Assets)

在第三方工具中准备 3D 资产

导入 3D 资产

合并 3D 资产