使用带有 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:
在您的 3ds Max 等内容创建软件中,为您的 3D 模型准备 UV 坐标。请参阅 在第三方工具中准备 3D 资产。
在 Kanzi Studio 中,使用 Texture Offset 属性或自定义属性转换 UV 纹理坐标。请参阅 通过 Texture Offset 属性变换 UV 和 通过自定义属性变换 UV。
在 Kanzi Studio 中使用带有 UV 的 3D 模型¶
要在 Kanzi Studio 中使用带有 UV 的 3D 模型:
在您的 3ds Max 等内容创建软件中,为您的 3D 模型准备 UV 坐标。请参阅 在第三方工具中准备 3D 资产。
在 Assets 窗口中,单击 Import Assets,选择您要使用的 UV 映射 3D 模型,然后单击 Open。
当您导入 3D 资产时,Kanzi Studio 为每个 3D 资产创建:
在 Prefabs 中,为导入文件中的每个场景创建一个 Scene 预设。
Kanzi Studio 根据导入的文件为每个 Scene 预设命名。当您导入包含多个场景的 glTF 文件时,Kanzi Studio 会在每个 Scene 预设的名称后附加场景的名称。
在每个 Scene 预设中,Kanzi Studio 从导入的文件创建场景层次结构,并将导入文件中的资源放入该预设中。
在 Library 中,Kanzi Studio 放置了从导入文件中获取的所有资源,例如 Meshes、Splines、Animations 和 Materials。
请参阅 导入 3D 资产。
在 Prefabs 中,选择以您在上一步导入的 3D 模型命名的 Scene,并双击它以作为合成打开。
要查看在 Preview 中渲染的 Scene 组合,它必须包含一个摄像机和至少一个光源节点。
在 Model 组合中,选择 Model > RootNode > Model 节点,并在 Properties 中将 3D 模型的材质设置为您想要用于该模型的材质。在此示例中,您使用支持纹理的材质。
通过 Texture Offset 属性变换 UV¶
在 Kanzi Studio 中,您可以使用 Texture Offset 属性转换 UV 纹理坐标。当您调整该属性的值时,您会转换坐标,其中 Kanzi 偏移纹理。
要通过 Texture Offset 属性变换 UV:
在您的 3ds Max 等内容创建软件中,为您的 3D 模型准备 UV 坐标。请参阅 在第三方工具中准备 3D 资产。
在 Prefabs 中选择 Model 节点,并在 Properties 中添加并设置:
将 Blend Mode 属性设置为 Alpha: Premultiplied。这确保了透明度的正确混合。
将 Texture 属性应用到您想用 UV 控制的纹理上。
Texture Offset 属性。
使用 Texture Offset 属性来控制 3D 模型上的 UV 坐标。如果您希望当 Texture Offset 属性的值大于 3D 模型的大小时 3D 模型不可见,确保将纹理周围的 2 个像素设为透明。
在 Library > Materials and Textures > Textures 中,选择您通过 Texture Offset 属性控制位置的纹理,并在 Properties 中将 Wrap Mode 属性设置为 Clamp。
这样,当 Texture 坐标偏移到低于 0.0 或高于 1.0 的值时,就不会出现纹理重复。
Kanzi 在 Texture Offset 属性的值更改时更新渲染中使用的纹理坐标。 例如,要创建速度表,将 Texture Offset 属性绑定到包含当前速度的自定义属性。 当自定义属性的值更改时,Kanzi 根据该属性的值偏移纹理。 请参阅 使用绑定。
通过自定义属性变换 UV¶
在 Kanzi Studio 中,您可以使用自定义属性转换 UV 纹理坐标。当您调整该属性的值时,您会转换坐标,其中 Kanzi 偏移纹理。
要通过自定义属性变换 UV:
在您的 3ds Max 等内容创建软件中,为您的 3D 模型准备 UV 坐标。请参阅 在第三方工具中准备 3D 资产。
在 Library 按 Alt 并右键单击 Property Types 中,选择 Property Type,并在 Property Type Editor 中设置:
将 Lower Bound 设置为属性的最低值。
例如,将其设为 0。
将 Upper Bound 设置为属性的最高值。
例如,将其设为 270。
在 Prefabs 中,选择 Model > RootNode > Model 节点,并在 Properties 中添加并设置:
将 Texture 属性应用到您要使用的纹理。
Blend Mode 到 Alpha: Premultiplied。
这样可以确保正确混合透明度。
您在上一步中创建的自定义属性。
在 Library > Materials and Textures > Textures 中,选择您用于模型材质的纹理,并将 Wrap Mode 属性设置为 Clamp。
这样可以确保在调整自定义属性的值时不存在任何重复的纹理。3D 模型的 UV 坐标作为纹理的画布。
在 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 会根据该属性的值在绑定中设置的轴上偏移纹理。