创建纹理材料

使用纹理材质可以在网格上渲染纹理。在 Kanzi 中,您可以使用纹理材质:

  • 单一纹理使用单一图像作为纹理。

  • 环境纹理贴图可用于将六个正方形的图像合成为一个纹理来表示环境反射。每个图像代表从立方体贴图对象的视点沿 x、y 和 z 轴六个方向之一的景象。

基于物理的纹理材料使用多种纹理来定义材料的外观。请参阅 创建基于物理的纹理材料。

创建纹理材质

要创建纹理材质:

  1. 创建一个纹理。请参阅 使用单个纹理。

  2. 在 Library > Materials and Textures > Materials 中,选择一个使用支持纹理的材质类型的材质。例如,以下 Kanzi 材质类型支持渲染纹理:

    • Textured 仅渲染纹理数据。

    • ColorTexture 仅渲染着色的纹理数据。

    • SmartVertexPhong 是一种高性能材质类型,使用基于顶点的冯氏 (Phong) 着色器。

    • SmartFragmentPhong 是一种高质量、性能较低的材质类型,使用基于像素的冯氏 (Phong) 着色器。

    • SmartPhysicallyBased 实现基于物理渲染 (PBR) 原理。请参阅 创建基于物理的纹理材质。

    请参阅 使用材料类型 和 使用智能材质。

    例如,使用 TexturedMaterial。如果您的工程不包含该材质,请在 Library > Materials and Textures 按 Alt 并右键单击 Material Types 中,选择 Textured。

    ../../_images/select-textured-material.png
  3. 在 Properties 中,将 Texture 属性设置为您要在材质中使用的纹理。

    ../../_images/set-texture-property.png
  4. 在 Node Tree 或 Prefabs 中,选择您要使用该纹理材质的节点。在 Properties 中,将 Material 或 Mesh Material 属性设置为该纹理材质。

    ../../_images/set-material-property.png ../../_images/preview-textured-material.png
  5. (可选) 设置纹理平铺:

    1. 在 Library > Materials and Textures > Materials 中,选择该纹理材质。在 Properties 中,将 Texture Tiling 属性的 X 和 Y 属性字段设置为您希望纹理沿 x 轴和 y 轴显示的次数。

      ../../_images/properties-texture-tiling.png ../../_images/preview-texture-tiling-clamp.png
    2. 如果将 Texture Tiling 属性字段设置为大于 1 的值,请将纹理设置为沿使用该纹理材质的节点重复。

      在 Library > Materials and Textures > Textures 中,选择该纹理。在 Properties 中,将 Wrap Mode 属性设置为:

      • Repeat 以重复纹理

      • Mirror 以重复纹理,但每隔一次重复进行镜像

      ../../_images/properties-texture-wrap-mode.png ../../_images/preview-texture-tiling-repeat.png
  6. (可选) 在 Library > Materials and Textures > Materials 中,选择该纹理材质。在 Properties 中,将 Texture Offset 属性的 X 和 Y 属性字段设置为您希望纹理在使用该纹理材质的节点表面上偏移的量。

    ../../_images/properties-texture-offset.png ../../_images/preview-texture-offset.png

创建环境贴图纹理材质

要创建环境贴图纹理材质:

  1. 创建一个立方体贴图纹理。请参阅 使用环境纹理贴图。

  2. 在 Library > Materials and Textures > Materials 中,选择一个使用支持立方体贴图纹理的材质类型的材质。例如,以下 Kanzi 材质类型支持渲染立方体贴图纹理:

    • SmartVertexPhong 是一种高性能材质类型,使用基于顶点的冯氏 (Phong) 着色器。

    • SmartFragmentPhong 是一种高质量、性能较低的材质类型,使用基于像素的冯氏 (Phong) 着色器。

    • SmartPhysicallyBased 实现基于物理渲染 (PBR) 原理。

    请参阅 使用材料类型 和 使用智能材质。

    例如,使用 SmartVertexPhongMaterial。如果您的工程不包含该材质,请在 Library > Materials and Textures 按 Alt 并右键单击 Material Types 中,选择 SmartVertexPhong。

    ../../_images/library-smart-vertex-phong-material.png
  3. 在 Properties 中,添加 Material > TextureCube 属性,并将其设置为您要在材质中使用的立方体贴图纹理。

    ../../_images/set-texturecube-property.png
  4. 在 Node Tree 或 Prefabs 中,选择您要使用该立方体贴图纹理材质的节点。在 Properties 中,将 Material 或 Mesh Material 属性设置为该立方体贴图纹理材质。

    ../../_images/set-material-property-cubemap.png
  5. (可选) 在 Library > Materials and Textures > Materials 中,选择该立方体贴图纹理材质。在 Properties 中,添加 Material > CubemapColor 属性,并将其设置为您要用来调制立方体贴图纹理的颜色。

    ../../_images/library-smart-vertex-phong-material.png ../../_images/properties-cubemap-color.png

创建基于物理的纹理材料

要创建基于物理的纹理材质:

  1. 创建或使用一种其材质类型为基于物理的并支持纹理的材质。

    例如,使用 SmartPhysicallyBasedMaterial。如果您的工程不包含该材质,请在 Library > Materials and Textures 按 Alt 并右键单击 Material Types 中,选择 SmartPhysicallyBased。

    SmartPhysicallyBasedMaterial 材质支持使用 Kanzi 默认基于物理的着色器的功能。

    ../../_images/library-smart-physically-based-material.png
  2. 要设置材质的主纹理,请在 Properties 中添加并设置:

    • Material > Base Color Texture 为包含材质基础颜色贴图的纹理

    • 将 Base Color Factor 设置为您想要用于从 Base Color Texture 过滤值的颜色。

    ../../_images/properties-add-base-color-texture.png ../../_images/physically-based-textured-base-color.png
  3. 要设置材质的粗糙度,请在 Properties 中添加并设置:

    • 将 Material > Roughness Texture 设置为包含粗糙度贴图的纹理

      Kanzi 从纹理的绿色通道读取粗糙度贴图。您可以使用相同的纹理来设置金属度和遮挡贴图。

    • Roughness Factor 用于缩放由 Roughness Texture 提供的值:

      • 对于粗糙、漫反射表面,将属性值设置为 1。

      • 要获得光滑、有光泽的表面,请将属性值设置为 0。

    ../../_images/physically-based-textured-roughness.png
  4. 要设置材质的金属度,请在 Properties 中添加并设置:

    • 将 Material > Metallic Texture 设置为包含金属贴图的纹理

      Kanzi 从纹理的蓝色通道读取金属度贴图。您可以使用相同的纹理来设置粗糙度和遮挡贴图。

    • Metallic Factor 以缩放 Metallic Texture 提供的值:

      • 对于反射行为完全类似于金属的材质,将属性值设置为1。

      • 对于电介质材料,将属性值设置为 0。

    ../../_images/physically-based-textured-metallic.png
  5. 要设置材质的法线贴图,请在 Properties 中添加并设置:

    • 将 Material > Normal Texture 设置为包含法线贴图的纹理

    • Normal Scale 设置 Normal Texture 的强度。

    ../../_images/physically-based-textured-normal.png
  6. 要设置材质的遮挡贴图,请在 Properties 中添加并设置:

    • 将 Material > Occlusion Texture 设置为包含遮挡贴图的纹理

      遮挡贴图提供了关于表面哪些区域接收间接光照的信息。Kanzi 从纹理的红色通道读取遮挡贴图。您可以使用同一纹理来设置粗糙度和金属度贴图。

    • Occlusion Strength 用于设置 Occlusion Texture 的强度。

    ../../_images/physically-based-textured-occlusion.png
  7. 要设置材质发光的区域,请在 Properties 中添加并设置:

    • 将 Material > Emissive Texture 设置为描述表面发光部分的纹理

    • 将 Emissive Factor 设置为您想要用于从 Emissive Texture 过滤值的颜色。您可以使用 Intensity (I) 属性字段来调整此颜色的曝光度。

  8. 要设置纹理的平铺和偏移,请在 Properties 中添加并设置:

    • 将 Material > Texture Tiling 属性的 X 和 Y 属性字段设置为纹理沿 x 轴和 y 轴重复的次数

      小技巧

      如果将 Texture Tiling 属性字段设置为大于 1 的值,请为材质使用的每个纹理将 Wrap Mode 属性设置为 Repeat。

    • 将 Material > Texture Offset 属性的 X 和 Y 属性字段设置为纹理在使用该材质的节点表面上的偏移量

  9. 要使用细节纹理,请在 Properties 中添加并设置细节纹理属性。

    例如,添加并设置:

    • 将 Material > Detail Base Color Texture 设置为包含材质基础颜色的细节纹理

    • 将 Detail Base Color Factor 设置为您想要用于从 Detail Base Color Texture 过滤值的颜色。

      Kanzi 将此颜色与您使用 Base Color Factor 属性设置的基础颜色进行 alpha 混合。

    • (可选) 将 Material > Detail Texture Tiling 属性的 X 和 Y 属性字段设置为细节纹理沿 x 轴和 y 轴重复的次数

    • (可选) 将 Material > Detail Texture Offset 属性的 X 和 Y 属性字段设置为细节纹理的偏移量

    ../../_images/properties-add-detail-base-color-texture.png
  10. 要为纹理在纹理坐标 kzTextureCoordinate0 和 kzTextureCoordinate1 之间进行选择,请在 Properties 中添加并设置纹理 UV 属性。

    例如,要让 Base Color Texture 使用语义索引为 1 的纹理坐标,请添加 Material > Base Color Texture UV 属性并将其设置为 1。

    ../../_images/properties-add-base-color-texture-uv.png

另请参阅

使用材料

使用智能材质

使用材料类型

使用单个纹理

使用环境纹理贴图

基于物理的材料属性

材质类型和材质