具体的效果不再赘述,同其它软件中的图层混合模式相同。
————————————————————————————————————————————————————————————————————————
渐变
以程序方式生成要添加至材质的渐变,从而消除对纹理的需求并节省内存。渐变函数以程序方式生成根据纹理坐标表达式产生的渐变。与创建基于纹理的渐变相比,这些函数可节省内存。
指数径向渐变
RadialGradientExponential(指数径向渐变)函数使用 UV 通道 0 来产生径向渐变,同时允许用户调整半径和中心点偏移。菱形渐变
DiamondGradient(菱形渐变)函数使用 UV 通道 0 来产生径向渐变,同时允许用户调整渐变衰减率。
线性渐变
LinearGradient(线性渐变)函数使用 UV 通道 0 在 U 或 V 方向上产生线性渐变,其中,方向取决于所使用的输出。平滑曲线
SmoothCurve(平滑曲线)函数接收现有的纹理通道或渐变,并使用程序式曲线来控制从暗到亮的过渡。用户可调整此曲线的切线以更改结果。
值阶
ValueStep(值阶)函数接收现有的纹理通道或渐变,并根据用户的输入来输出纯黑白色图像。结果是一个蒙版,它代表与输入值相等的渐变部分。
————————————————————————————————————————————————————————————————————
图像调整
这些函数用来对现有的图像纹理进行调整,例如改变对比度或色调。图像调整函数用于对纹理执行基本的颜色校正操作。这些函数非常有用,它们允许您对纹理执行校正操作或改变,而不必担心因为要将单独的版本装入内存而产生开销。
3ColorBlend(三色混合)
3ColorBlend(三色混合)函数根据灰阶阿尔法,以如下方式对 3 种输入颜色进行混合:CheapContrast(低成本对比度)
CheapContrast(低成本对比度)函数通过将直方图的高端重新映射到低端值,并将直方图的低端重新映射到高端值,提升输入的对比度。这类似于在 Photoshop 中应用色阶调整 ,以及将黑色和白色标志拉入到一个位中。用户可控制提升对比度的程度。CheapContrast_RGB(低成本对比度_RGB)
CheapContrast_RGB(低成本对比度_RGB)函数通过将直方图的高端重新映射到低端值,并将直方图的低端重新映射到高端值,提升输入的对比度。这类似于在 Photoshop 中应用色阶调整 ,以及将黑色和白色标志拉入到一个位中。用户可控制提升对比度的程度。
与普通的 CheapContrast(低成本对比度)函数不同,此函数可接收"矢量 3"作为输入,从而允许其对彩色图像执行对比度操作。
SCurve(S 曲线)
SCurve(S 曲线)函数通过沿 S 曲线插入图像的每个通道值,提升图像的对比度。这类似于在 Photoshop 中应用曲线调整 ,以及对 S 曲线设置 RGB 曲线或使用预先设置的"提高对比度 (RGB)"。
3PointLevels(3 点色阶)
3PointLevels(3 点色阶)函数接收一个图像,并在 3 个点(白色、黑色、中间色)之间重新映射每个通道的值。这类似于在 Photoshop 中应用色阶调整。但是,与 CheapContrast(低成本对比度)函数不同,此函数提供了全面的控制,使用户能够调整光线及明暗的插值(伽玛)。默认情况下,将以线性方式内插 3 个重新映射点。但是,如果您愿意,可以输入自己的定制插值曲线。HueShift(色调改变)
HueShift(色调改变)函数使输入颜色的当前色调值偏移给定的百分比。此百分比基于 1,并以色环为中心。例如,变动 0.5% (50%) 将改变为互补色调,即色环上对面的色调。变动 1.0 (100%) 不会进行更改,因为这相当于正好绕色环旋转一周。SmoothThreshold(平滑阈值)
SmoothThreshold(平滑阈值)函数接收渐变、插值率和阈值(分界值)。然后,它根据输入,将平滑对比度应用于渐变。以下是每个输入的作用明细:
————————————————————————————————————————————————————————
数学
预先配置的数学函数,例如计算 π 以及将矢量分量相加等等。数学函数对纹理中像素的值执行基本数学方程式。
分量相加
AddComponents(分量相加)函数接收一个"矢量 2"、"矢量 3"或"矢量 4",将其分量合并到一起,然后输出结果。您必须使用适合于相应输入的输出。例如,如果将图像输入到 f3(矢量 3)(f3 (Vector3)),那么必须使用 f3 输出。Pi(π)
Pi(π)函数用作 π 的常量,并精确到第 6 位小数 (3.141592)。此节点还附有乘数输入。LinearSine(线性正弦)
LinearSine(线性正弦)函数接收一个标量值,并输出该值的线性正弦或圆形线性正弦(介于 0 与 1 之间)。如果您将 Time(时间)表达式连接到值输入,并使用 LinearSine(线性正弦),那么可在输出中查看符合线性正弦波的动画。VectorToRadialValue(矢量到径向值)
VectorToRadialValue(矢量到径向值)函数将"矢量 2"矢量转换为角度,或者将 UV 坐标数据转换为径向坐标。对于矢量,角度将在一个通道中输出,而矢量长度在另一通道中输出。————————————————————————————————————————————————————————————————————————————————————————————————————————————
杂项
未归入现有类别的杂项函数。杂项函数包括各种不容易归入任何其他现有类别的一次性函数。将这些函数放在这里是为了避免产生太多只有一个函数的类别。
TimeWithSpeedVariable(具有速度变量的时间)
TimeWithSpeedVariable(具有速度变量的时间)函数与 Time(时间)节点相似,但具有可选的乘数输入。这个函数可以输出相乘结果,或使用可选的"小数时间"(Frac Time)输出从而仅输出乘法运算结果的小数位。OffsetAndScaleTo1(偏移并调整比例到 1)
OffsetAndScaleTo1(偏移并调整比例到 1)函数接收一个值,使其按给定的偏移量进行偏移,然后将结果比例重新调整到 0-1 范围。PassThrough(直接传递)
正如其名称所指,此节点的作用只是直接传递。无论将什么内容传递到此节点,都会通过输出毫无变化地返回该内容。此节点比所有其他节点更适合于组织用途,因为它允许您在比另一节点更接近的位置通过"说明"(Desc)属性对节点进行标注,这在所需节点位于图中较远的位置时特别有用。
SplitComponents(拆分分量)
SplitComponents(拆分分量)函数用于拆分传入颜色或图像的分量,从而使您能够单独访问红色、绿色或蓝色通道。Flipbook(图像序列)
Flipbook(图像序列)函数接收一个"2D 纹理",例如精灵帧网格,并输出它们按顺序回放的动画。
————————————————————————————————————————————————————————————————————————————————————
不透明度
这些函数用于处理材质网络中的不透明值。
SoftOpacity(软不透明度)
SoftOpacity(软不透明度)函数接收一个不透明度值,然后对其运行各种计算,从而产生一种柔和的感觉。它应用菲涅耳效果、基于深度的阿尔法以及像素深度。最终的结果会导致对象随着摄像机接近而逐渐消失。
————————————————————————————————————————————————————————————
粒子
这些专用函数用来帮助设置复杂粒子网络的外观。
3dParticleOpacity(3D 粒子不透明度)
此函数的用途是帮助设置粒子,以使其在远离摄像机时逐渐消失。——————————————————————————————————————————————————————————————————————————————————
枢轴点绘制器工具1.0材质函数
这些函数使您能够利用枢轴点绘制器MAXScript。
枢轴点绘制器 材质函数使您能够接入枢轴点绘制器 MAXScript ,后者将旋转信息存储在网格的顶点中。这种方法非常适合于处理静态网格上的动态运动。
虽然没有这些函数也可以利用枢轴点绘制器所提供的数据,但这些函数确实让使用过程更为简单。这些函数可以处理并组织枢轴点绘制器 MAXScript 存储在模型 UV 中的全局位置及角度信息。
PivotPainter_HierarchyData(枢轴点绘制器_层次结构数据)PivotPainter_PerObjectData(枢轴点绘制器_每个对象的数据)
这个特定的函数设计成逐个对象地进行处理。PivotPainter_PerObjectFoliageData(枢轴点绘制器_每个对象的植物叶子数据)
此函数专门用于处理个别植物叶子对象。PivotPainter_TreeData(枢轴点绘制器_树数据)
以 树(tree)开头的输出用于处理由枢轴点绘制器 MAXScript 存储的模型 UV 信息。以 叶(Leaf)开头的输出用于处理由脚本中每个对象的枢轴点描画部分存储的 UV 信息。————————————————————————————————————————————————————————————
程序性
以程序方式生成的纹理和操作,例如根据现有的高度贴图来创建法线贴图。
GeneratedBand(生成的色带)
GeneratedBand(生成的色带)函数根据默认的纹理坐标生成水平或垂直的色带。GeneratedOffsetBands(生成的偏移色带)
与 GeneratedBand(生成的色带)函数相似,GeneratedOffsetBands(生成的偏移色带)以程序方式在 UV 空间中创建生成的纹理色带。但是,此函数可以生成多个色带,而不是仅生成一个色带。NormalFromHeightmap(根据高度贴图建立法线贴图)
此函数提供一种快捷的方法来根据现有的黑白高度贴图建立法线贴图,而不必将另一个纹理装入到内存中。
此函数接收一个 TextureObject(纹理对象)(T2d) 表达式节点,而不是接收 TextureSample(纹理取样)。NormalFromHeightmapChaos(根据高度贴图建立混乱法线贴图)
NormalFromHeightMapChaos(根据高度贴图建立混乱法线贴图)函数接收一个高度贴图,使其在 4 个方向上平移,然后将结果重新混合到一起,以建立混乱动画法线贴图。编写本文时,没有高度贴图的对应输入。您可使用下列步骤来添加此类输入。但是,如果您看到高度贴图输入,那么表示此问题已更正,您不必执行下列步骤。
1.双击 NormalFromHeightmapChaos(根据高度贴图建立混乱法线贴图)函数节点,以便在新的材质编辑器中将其打开。
2.找到 Texture Object(纹理对象)(T2d) 表达式节点。在此节点中,当前应该有默认的(绿泥)纹理。
3.创建 FunctionInput(函数输入)表达式节点,并将其连接至 3 个 Motion_4WayChaos(运动4 向混乱)函数节点上的 纹理 (T2d)(Texture (T2d))输入。
4.在新的 FunctionInput(函数输入)表达式的属性中,将 输入类型(Input Type)属性设置为 函数输入纹理 2D(FunctionInput_Texture2D)。
5.将 输入名称(Input Name)属性设置为 "Heightmap In",以标注该输入。
6.将原始的 Texture Object (T2d)(纹理对象 (T2d))表达式节点连接至新的 FunctionInput(函数输入)表达式节点的 预览(Preview)输入。
反射
这些函数帮助计算各种反射类型的值。
ReflectionVectorSoft(柔化反射矢量)
此函数根据传入的法线贴图来柔化反射矢量。结果是表面上显示的反射更加平滑。这是通过将法线贴图与平面 (0,0,1) 法线贴图混合(借助插值来完成),然后获取反射矢量来实现的。ViewAlignedReflection(与视图一致的反射)
此函数接收球形反射纹理并使其与视图一致。通过输入定制反射矢量,可以按一定的偏移来执行计算。
WorldAlignedReflection(与全局一致的反射)
此函数接收基于球体的传入反射纹理并使其与全局坐标一致。通过输入定制反射矢量,可以按一定的偏移来执行计算。CustomReflectionVector(定制反射矢量)
此函数使用法线贴图来生成一个反射矢量,该反射矢量独立于默认反射矢量以及基本着色器上的法线输入。
明暗处理
这些函数用于处理特殊的明暗处理类型,例如"模糊明暗处理"网络。
FuzzyShading
此函数模仿类似于天鹅绒或苔藓的表面,并与菲涅耳计算类似。另外,此函数也适合于着色器效果,例如扫描电子显微镜。FuzzyShadingGrass
此函数用于提供草地明暗处理的漫射部分。与 FuzzyShading(模糊明暗处理)相似,此函数允许您在边缘处混入一种新颜色,方法如下:首先按给定的百分比去饱和度,然后对去饱和度后的区域应用定制颜色。
纹理处理
各种用于帮助处理纹理的函数,例如重新投射 UV 以及裁切等等。
CylindricalUVs
此函数使用以对象中心居中的圆柱形投射 UV 来围绕对象平铺纹理。DetailTexturing
DetailTexturing(细节纹理处理)函数用于简化为材质创建细节纹理的过程。细节纹理处理通过引入叠加在对象原始漫射及法线纹理上的更高度重复漫射及法线纹理组合,使纹理产生更加细腻的错觉。这可以在近距离查看时产生更加细腻的效果错觉。LocalAlignedTexture
LocalAlignedTexture(局部一致纹理)函数在局部空间中的对象上平铺纹理。虽然此函数有法线输入,但目前这个输入不起作用。ZWorldSpaceFlow
ZWorldSpaceFlow(Z 全局空间流动)函数沿对象的切线空间来推送纹理,这会导致该纹理看起来像是沿该表面"流动"。其工作方式如下:建立纹理在同一方向上平移所产生的两个变体,但这两个变体之间存在轻微的偏移。然后,以重复方式将各个变体叠加混合。TextureCropping
TextureCropping(纹理裁切)函数用于将给定的纹理裁切为纹理坐标平面上更小的偏移位置。此函数适合用来将一个颜色块放到自发光纹理区域上。
WorldAlignedNormal
WorldAlignedNormal(全局一致法线)接收法线贴图,并使其纹理与全局空间一致,而不是与对象局部一致。它还支持按全局单位进行比例调整,而不是按纹理大小的百分比进行调整。因为此函数在全局空间内平铺纹理,所以需要注意,任何以此方式处理纹理的动画对象都会发生纹理"漂浮",即纹理保持原位置不动,而对象在其下方滑动。WorldAlignedTexture
WorldAlignedTexture(全局一致纹理)函数用于在全局空间中的对象表面上平铺纹理,此平铺与该对象的大小或旋转无关。此函数允许您指定投射纹理的方向,并按全局单位(而非纹理大小的百分比)进行比例调整。因为此函数在全局空间内平铺纹理,所以需要注意,任何以此方式处理纹理的动画对象都会发生纹理"漂浮",即纹理保持原位置不动,而对象在其下方滑动。3DSandMayaUVCoordinates
此函数翻转传入 UV 的绿色通道,以将 0,0 坐标放在左下角(就像在 3DS Max 和 Maya 中一样)而非左上角。这对于来自这些应用程序的模型非常重要,因为您可以避免翻转纹理。CustomRotator
CustomRotator(定制旋转)函数允许您旋转纹理。但是,它与基本的 Rotator(旋转)表达式节点的区别在于,它会公开图像的旋转中心点。它还将旋转系统更改为基于 0-1,因此值 1 被视为全程旋转,即旋转 360 度。在标准的 Rotator(旋转)上,全程旋转需要大约 25.1 的"时间"(Time)输入。
HeightLerp
HeightLerp(高度插值)函数允许您根据高度贴图和过渡阶段值,在 2 个纹理之间执行线性插值。这允许您沿着发生插值的高度贴图来调整值。CameraWorldBlend
3 个主要全局矢量的输出衰减结果(基于摄像机角度)。可用来根据摄像机的观看方向在纹理之间进行混合。
请注意,在表面与 XY 平面对齐的所有位置都会混入绿色纹理,而在其他位置都会混入红色。
LocalSpaceSurfaceMirroring
LocalSpaceSurfaceMirroring(局部空间表面镜像)函数将镜像应用于表面上所有朝向给定局部轴的面。表面区域上的其他区域将被屏蔽。这些蒙版可通过一个标量输入进行偏移,而整个计算可由法线贴图扰乱。这在您需要根据表面的拓扑来产生镜像时非常有用。SubUV_Function
SubUV_Function(子 Uv_函数)适合于处理精灵表或纹理上具有多帧的动画。此函数接收一个纹理对象,并可根据输出来显示该纹理上各个帧的混合帧动画。TwoSidedTexturing
TwoSidedTexturing(双面纹理处理)函数为双面材质的两个面分别提供材质输入。如果材质的 双面(Two Sided)属性未激活,那么此函数不执行任何操作。WorldCoordinate3Way
WorldCoordinate3Way(全局坐标三向)函数按全局坐标将纹理投射到对象表面。用户可控制多个纹理在边缘处进行混合的方式,并可添加法线贴图以便在计算前扰乱表面。因为这些纹理按全局坐标进行投射,所以给定对象的任何运动或旋转都会导致纹理"漂浮"在表面上。
.
矢量操作
这些函数用来处理矢量数学运算,例如计算菲涅耳效果。"矢量操作"类别包含用于应用各种基于矢量的数学方程式的特殊函数。
Fresnel(菲涅尔)
与普通的 Fresnel(菲涅尔)表达式节点不同,Fresnel(菲涅尔)函数允许您指定自己的一组用于计算方程式的矢量以及对混合进行其他调整。.
全局位置偏移
这些函数使用全局位置偏移来处理顶点操作。WorldPositionOffset类别包含通过全局位置偏移来进行网格顶点操作的特殊函数。这些函数可以链接到一起,以产生递增效应。
SimpleGrassWind
SimpleGrassWind 函数对植物叶子应用基本的风运算,并允许您指定权重贴图和风力。这是无方向的风,它只是使植物叶子产生非常普通的移动效果。这应该是您添加的最后一个WPO节点。
SplineThicken
SplineThicken 函数用来使非常薄的多边形在渲染时显示为略厚。对于线缆、头发、草和其他此类对象,这种效果非常理想。
使用此函数的对象应该极薄,并且应该在禁用"移除退化三角形"(Remove Degenerate Triangles)的情况下导入。CameraOffset
CameraOffset 函数可帮助您进行深度排序,因为它允许您在摄像机空间中移动对象,使其靠近或远离摄像机。ObjectPivotPoint
ObjectPivotPoint 函数返回全局空间中对象的支点。此函数与像素着色器不兼容。ObjectScale
ObjectScale 函数一起或单独返回对象的XYZ比例。此函数与像素着色器不兼容。PivotAxis
PivotAxis 函数用于在任意的轴上创建公共支点位置。此函数可以帮助创建旗帜运动。请不要使用接近旗帜顶端的单个支点,而应改为使用共享的Z点以及唯一的X和Y位置数据,沿对象的宽度创建更加现实的连接。
这个着色器节点只支持统一比例调整。并且,旋转轴与支点轴/位置不应重合。RotateAboutWorldAxis_cheap
RotateAboutWorldAxis_cheap 函数以低成本方式使对象绕全局轴旋转。请输入您希望使用的角度,并将输出连接到全局位置偏移。StaticMeshMorphTargets
StaticMeshMorphTargets 函数将通过3ds Max的Morph Packer MAXScript添加的变形目标数据解包。Wind
Wind 函数针对风力、速度乘以时间以及规范化风矢量提供了单独的输出。枢轴绘制器工具2.0材质函数
旨在使枢轴绘制器2 MAXScript能够用于虚幻引擎着色器网络的材质函数。
枢轴绘制器2的材质函数使您能够利用纹理来访问和解码枢轴绘制器2 MAXScript存储的有用模型信息。MAXScript输出的每个纹理都可以在材质中直接引用,但是如果在采样纹理之后没有应用适当的步骤,那么这些值将不正确。本页中给出的这些材质函数可让您轻松快速解码纹理信息。
本页中包含的很多材质函数将使您能够使用枢轴绘制器2枢轴和旋转信息通过您的材质做出特定的效果,然而, 枢轴绘制器2的更大的好处之一是它容易与提供的植物样本着色器 PivotPainter2FoliageShader 配合使用。该特定材质函数使您能够 快速设置您的模型及其枢轴绘制器2用您的植物生成的纹理,以快速创建风和湍流,而无需创建您自己的材质网络。
PivotPainter2FoliageShader
PivotPainter2FoliageShader工作流
对于此特定函数,您应该为您的材质创建一个材质实例,这样您就可以访问材质函数已经设置好的关于风吹和湍流的参数。
此外,对于此特定函数,建议您创建一个材质实例,其中材质函数的参数将可用于对枢轴绘制器2着色器进行更改。ms_PivotPainter2_CalculateMeshElementIndex
此材质函数从模型的UV中提取模型的元素ID。
ms_PivotPainter2_Decode8BitAlphaAxisExtent
此材质函数将8位轴扩展纹理数据信息从枢轴绘制器2 MAXScript重新缩放到世界场景空间数据中。
ms_PivotPainter2_DecodeAxisVector
ms_PivotPainter2_DecodePosition
此材质函数将枢轴绘制器2的局部空间信息转化为世界场景位置信息。