此示例演示如何创建两个纹理节点并将其混合在一起。
它演示如何:
- 使用浮点节点混合纹理
- 通过绘制顶点混合纹理
- 倍增纹理,以便重复自身并产生不同的效果
示例:创建 ShaderFX 明暗器并打开 ShaderFX 编辑器:
- 在“透视”视口中,创建一个“平面”对象。
- 打开材质编辑器并将 DirectX 明暗器材质应用到平面。
如果您使用板岩材质编辑器,请双击“DirectX 明暗器”节点,以便可以查看其参数。
- 在“DirectX 明暗器”卷展栏上,从下拉列表中选择“ShaderFX”,然后单击“打开 ShaderFX”。
3ds Max 将打开 ShaderFX 编辑器。
示例(续):创建两个纹理并使用“浮点”节点混合它们:
- 在 ShaderFX 工作区域中单击鼠标右键。从右键单击菜单中,选择“硬件明暗器节点”“纹理”“纹理贴图”。
ShaderFX 将 TextureMap 节点添加到图形。
- 单击 TextureMap 节点以在工作区域右侧的“属性”面板中显示其设置。
- 在“属性”面板中,单击“我的纹理/路径”旁边的浏览按钮。
在打开的文件对话框中,选择纹理文件。在此示例中,将使用混凝土纹理。
- 为第二个纹理重复步骤 1 和 2。在此示例中,将使用草地纹理。
纹理由 www.cgtextures.com 提供。
- 在工作区域中单击鼠标右键,然后选择“硬件明暗器节点”“数学”“线性插值混合”以创建“LerpOp”节点,从而合并这两个纹理。
- 单击鼠标右键并选择“硬件明暗器节点”“值”“浮点”,以创建包含一个浮点值的“Val”节点。
- 将第一个“纹理贴图”的“颜色”属性连接到“LerpOp”的第一个“值”属性。
- 将第二个“纹理贴图”的“颜色”属性连接到“LerpOp”的第二个“值”属性。
- 将“Val”节点“浮点”属性连接到“LerpOp”的“混合”属性。
“浮点”值控制每个纹理对混合结果的贡献量。例如,如果设置为 0.2,则生成的纹理主要为混凝土纹理。如果设置为 0.8,则生成的纹理主要为草地纹理。如果设置为 0.5,则平等地混合这两者。
- 要查看结果样例,请单击“线性插值”节点顶部的“渲染样例”图标 ,直到显示较大的预览。
将“浮点”设置为 0.2
.
“线性插值混合”预览样例将显示混凝土纹理是主纹理。
将“浮点”设置为 0.5
.
混凝土和草地纹理均匀地混合在一起。
将“浮点”设置为 0.8
.
草地纹理为主纹理。
- 将“LerpOp”的“结果”属性连接到“TraditionalGameSurfaceShader”节点的“漫反射颜色”属性。
现在,您可以在“真实”或“明暗处理”视口中可视化着色器。
示例(续):使用“顶点颜色”节点混合纹理:
- 单击鼠标右键并选择“硬件明暗器节点”“公共输入”“顶点颜色”。
此时不使用“浮点”节点,而是使用顶点颜色来混合纹理。
- 单击以高亮显示连接“线性插值”中“浮点”节点的连线,然后按 Delete 键。
- 将“VertexColor”的“红色”属性连接到“LerpOp”的“混合”属性。这样,便可以使用“红色”通道混合纹理。
- 在视口中,确保已选中“平面”对象。在 “修改”面板上,将“长度分段”和“宽度分段”的值增加到 20。这样可将更多顶点添加到平面,以增强顶点绘制的定义。
- 此外在 “修改”面板上,向“平面”应用“顶点绘制”修改器。
3ds Max 将打开“顶点绘制颜料盒”。
现在,您将部分顶点绘制为红色。绘制为红色的顶点将显示草地纹理。
- 在“颜料盒”中,单击以激活 (禁用顶点颜色显示)。
- 默认色样应显示黑色。(如果不是黑色,请单击它,然后使用“颜色选择器”将其更改为黑色。)单击 (全部绘制)可使平面变为黑色。
为顶点指定黑色通道后,该平面将显示混凝土纹理。
- 单击色样,然后将颜色更改为亮红色。
- 单击 (绘制)并在平面上进行绘制。您绘制为红色的顶点将采用草地纹理值。现在,您已通过绘制顶点混合纹理。
示例(续):倍增纹理以在平铺图案中重复它,从而创建更密集的不同效果:
- 在修改器堆栈中,单击以高亮显示“顶点绘制”修改器,然后单击 (从堆栈中移除修改器)。
- 在 ShaderFX 编辑器中,通过单击连线并按 Delete 断开“顶点颜色”节点的连接,然后将“Val”节点的浮点值重新连接到“LerpOp”的“混合”属性。
- 单击以高亮显示“顶点颜色”节点,然后按 Delete。
- 单击鼠标右键并选择“硬件明暗器节点”“公共输入”“UV 集”以创建“UV 集”节点。
- 单击鼠标右键并选择“硬件明暗器节点”“数学”“倍增”以创建“MulOp”节点。
- 单击鼠标右键并选择“硬件明暗器节点”“值”“浮点”以创建另一个“Val”节点。
- 将“UV 集”节点的 UV 属性连接到“MulOp”的第一个“值”属性。
- 将“Val”节点的“浮点”属性连接到“MulOp”的第二个“值”属性。
- 将“MulOp”节点的“结果”属性连接到要平铺其图案的“TextureMap”的 UV 属性。
- 单击以选择新的“Val”节点,然后在“属性”面板上更改其“浮点”值。将“浮点”设置为较高的值,以便使图案更频繁地重复且更密集,或者设置为较低的值以使图案不那么频繁地重复。可通过单击“TextureMap”节点的“渲染样例” 图标预览生成的图案。
值为 0.5
值为 2.0