Table of Contents

材质贴图

中级 美术人员 程序员

**材质贴图(Material map)**用于计算材质的渲染方式。它可以使用两种类型的值:颜色(RGB)值或标量(单个浮点)值。

材质贴图有多种用途,包括光泽度贴图、漫反射贴图或混合贴图(用于组合材质层)。

材质贴图可以通过以下几种提供器(provider)之一获取值:

  • 顶点流(Vertex stream):从网格属性中获取的值
  • 二元运算符(Binary operator):任意其他两个提供器的组合
  • Float4 / Float:常量值
  • 颜色(Color):十六进制颜色值
  • 着色器(Shader):由 ComputeColor 着色器提供的值。这让你可以使用程序化生成的值
  • 纹理(Texture):从纹理采样得到的值

要选择提供器,请单击 蓝色箭头按钮(替换)并从下拉菜单中选择:

media/material-colors-1.png

顶点流

此提供器从你应用材质的模型网格的某个属性中获取值。

它有两种模式:Color Vertex Stream 和 Custom Vertex Stream。要在两者之间切换,请在选择 Vertex Stream 作为提供器的情况下,单击 蓝色箭头按钮(替换)并选择要使用的模式。

顶点流模式

Color vertex stream

从网格中获取颜色值。

属性 说明
Index 具名流中的索引
Channel 要从流中采样的通道(RGBA)

Custom vertex stream

从你指定的网格通道中获取值。

属性 说明
Name 要读取数据的通道语义名称
Channel 要从流中采样的通道(RGBA)

二元运算符

对两个颜色/标量值提供器执行二元运算。你可以根据需要在二元运算符中嵌套任意多个材质贴图(包括进一步嵌套二元运算符)。

要选择运算方式,请单击 蓝色箭头按钮(替换)并从下拉菜单中选择。这些运算与 Photoshop 中混合图层的选项类似。

运算模式

Result = LeftColor <operator> RightColor

media/material-colors-4.png

属性 说明
Operator 二元运算符(如加法、乘法等)
Left 运算中使用的左侧颜色/标量
Right 运算中使用的右侧颜色/标量

Float4 / Float

作为常量值直接应用于整个材质。

对于 RGB 值,你可以通过 X、Y、Z 和 W 值来控制 RGBA 值(Float4)。

xyzw

对于标量值,你可以通过滑块来控制值(Float)。

混合贴图滑块

颜色

由十六进制颜色值提供的值。此选项仅适用于使用 RGB 值的材质贴图。

media/material-colors-3.png

着色器

由 ComputeColor 着色器提供的值。这让你可以使用程序化生成的值。

有关 ComputeColor 着色器的示例,请参阅粒子材质教程。

纹理

从纹理中采样颜色/标量值。

例如,下面的图片演示了纹理如何改变 Stride 混合材质的方式。

混合贴图示意图

混合贴图示意图

media/material-colors-2.png

属性 说明
Texture 纹理的引用
Channel 用于提取标量值的通道(R、G、B、A)。仅对标量纹理有效
Texcoord Index 使用此纹理时从网格中获取的纹理坐标(u,v)
Filtering 采样方法(如双线性、点采样、各向异性等)
Address Mode U / V


定义 (u,v) 坐标的寻址方式



Wrap(包裹):在整数交界处平铺 (u,v)。例如,如果 u 的范围是 0.0 到 3.0,纹理会沿 U 轴重复三次



Mirror(镜像):在整数交界处翻转 (u,v)。例如,如果 u 的范围是 0.0 到 1.0,纹理会按预期显示;但从 1.0 到 2.0 时,纹理会镜像显示



Clamp(钳制):将 (u,v) 钳制到 (0.0, 1.0) 范围内


Scale 应用于 (u,v) 的缩放
Offset 应用于 (u,v) 的偏移

另请参阅