UE4材质教程.doc_第1页
UE4材质教程.doc_第2页
UE4材质教程.doc_第3页
UE4材质教程.doc_第4页
UE4材质教程.doc_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

材质概要 材质概要o 概述o 参数o 当创建材质时如何考虑颜色o 材质表达式 Abs(求绝对值) 添加 AntialiasedTextureMask AppendVector(向量合并) BumpOffset(凸凹偏移) CameraVector(相机位置向量) CameraWorldPosition(相机的世界位置) Ceil(值上限取整) Clamp(区间值限定) ComponentMask(分量蒙板) Constant(常量) Constant2Vector(二维常数向量) Constant3Vector(三维常数向量) Constant4Vector(四维常数向量) ConstantBiasScale(常数偏移比例) ConstantClamp(常数区间) Cosine(余弦) CrossProduct(叉积) Custom(自定义) CustomTexture(自定义贴图) DepthBiasBlend(深度偏移混合) DepthBiasAlpha(深度偏移Alpha) DepthBiasedBlend(深度偏移混合) DeriveNormalZ(计算法线向量Z) Desaturation(冲淡颜色) DestColor(目标色) DestDepth(目标深度) Distance(距离) Divide(除法) DotProduct(点积) DynamicParameter(动态参数) FlipBookSample(翻书采样) Floor(值下限取整) FluidNormal FMod FoliageNormalizedRotationAxisAndAngle FoliageImpulseDirection(植被冲力的方向) FontSampler(字体取样器) Frac(取小数值) Fresnel(菲涅尔) FunctionInput FunctionOutput If LensFlareIntensity(镜头眩光亮度) LensFlareOcclusion(镜头眩光遮挡) LensFlareRadialDistance(镜头眩光半径距离) LensFlareRayDistance(镜头眩光光线距离) LensFlareSourceDistance(镜头眩光源距离) LightmapUV(光照贴图 UV) LightmassReplace(Lightmass 替换) LightVector(光照向量) LinearInterpolate(线性插值) MaterialFunctionCall MeshEmitterDynamicParameter MeshEmitterVertexColor(网格物体发射器顶点颜色) MeshSubUV(网格物体子UV) MeshSubUVBlend Multiply(乘法) Normalize(单位化) ObjectOrientation(物体朝向) ObjectRadius(物体半径) ObjectWorldPosition(物体在世界空间中的位置) OcclusionPercentage(遮挡百分比) OneMinus(一减去) Panner(平移器) ParticleMacroUV(粒子的巨大UV) ParticleSubUV(粒子子 UV) PerInstanceRandom PixelDepth(像素深度) Power(求幂值) ReflectionVector(反射向量) Rotator(旋转器) RotateAboutAxis(围绕坐标轴旋转) ScalarParameter(标量参数) SceneDepth(场景深度) SceneTexture(场景贴图) ScreenPosition(屏幕位置) Sine(正弦) SphereMask(球形蒙板) SquareRoot(平方根) 挖空 StaticBool StaticBoolParameter StaticComponentMaskParameter(静态分量蒙板参数) StaticSwitchParameter(静态开关参数) StaticSwitch TextureCoordinate(贴图坐标) TextureSample(贴图样本) TextureSampleParameter2D(贴图样本参数:2D) TextureSampleParameterCube(贴图样本参数:立方体) TextureObject TextureObjectParameter(贴图对象参数) TextureSampleParameterMeshSubUV(贴图样本参数网格物体子 UV) TextureSampleParameterMeshSubUVBlend(贴图样本参数网格物体子 UV 混合) TextureSampleParameterMovie(贴图样本参数:影片) TextureSampleParameterNormal(贴图样本参数:法线) TextureSampleParameterSubUV(贴图样本参数:子 UV) Time(时间) Transform(变换) TransformPosition(变换位置) TwoSidedSign(双面符号) WorldPosition(世界位置) WorldNormal(世界法线) VectorParameter(向量参数) VertexColor(顶点颜色) WindDirectionAndSpeed(风的方向和速度)概述这个页面是材质编辑器中所有可用的材质表达式节点的参考。材质表达式是用于在虚幻引擎 3 中创建完全作用的材质的构建块。每个材质表达式都是一个自包含的黑盒,可以输出一组一个或多个特定值,或者在一个或多个输出上执行单独操作然后输出操作结果。其他您可能感兴趣的页面包括材质教程和材质示例页面,其中包含有关如何结合节点实现各种材质效果的示例和教程。 要获得关于如何使用材质编辑器本身的信息,请参照材质编辑器用户指南。 如果您是一个程序员,请查看创建材质表达式页面了解关于如何创建新的材质表达式的详细信息。参数特定材质表达式为参数,也就是说可以在包含参数的基础材质的 MaterialInstance 中修改它们的值(有时会在运行过程中动态进行修改)。应该通过Parameter Name(属性名称)属性为这些表达式赋予唯一的名称,当识别 MaterialInstance 中的特定参数时使用。如果同一类型的两个参数在同一个材质中具有相同的名称,那么将会认为它们是同一个参数。更改 MaterialInstance 中的参数值将会同时更改这个材质中的这两个参数表达式的值。这个参数的默认值也会在基础材质中进行设置。它将会是 MaterialInstance 中的参数值,除非这里的值被覆盖修改。请参阅实例化材质和材质实例常量页面。当创建材质时如何考虑颜色在 UE3 中考虑材质时,请记住许多表达式是在每个通道上是独立操作的。 比如Add(加)节点有两个输入,在每个通道上把它们加在一起。 如果您使两个 RGB 颜色(3 个通道向量值)相加,那么输出的颜色将会是: (Red1+Red2, Green1+Green2, Blue1+Blue2)。 把基于每个通道的操作当成在一个灰度化值上的操作看待。执行基于每个通道操作的节点通常需要输入端有相同数量的通道。 比如,您可以将一个 RGB 颜色加到另一个 RGB 颜色,但是您不能把一个 RGBA 颜色和一个 RGB 颜色相加,因为 RGB 颜色没有 alpha 通道。 这个规则有一个例外是当其中的一个输入端是单通道(灰度)值时,我们可以把它应用于任何东西。 所以,您可以把 0.1 和 RGB 颜色 (0.2,0.3,0.5) 相加获得 (0.3,0.4,0.6)。另一个需要记住的事情是虚幻引擎中的颜色是floating point(浮点型)- 换句话说,颜色不再使它的 RGB 值在 0,255 范围内。 相反,RGB值可以是任何值- 0.4, -1.2, 3.4 -,在这里 0.0 意味着黑色/没有颜色(指在旧机制中的 0),1.0 意味着全彩色(是指旧机制中的 255)。 那也就是说,使值大于 1.0 是完全有效的值越大颜色越亮! 过去 (255,0,0) 代表红色,在虚幻引擎中,红色是 (1.0,0.0,0.0),更亮的红色是 (3.0,0.0,0.0)。颜色也可以是负值! 您可以把负值的颜色作为removing(移除)颜色的一种方式。 比如,您可以把 (-0.5,0.0,0.0) 加到一个贴图上来把贴图中所有的红色降低 0.5。中间表达式是以浮点型进行计算的,但是材质的最终输出颜色的每个通道将在0.1区间内,这里的 0 没有贡献,1 有全部贡献。 任何大于 1 的值将会产生同样的颜色,但是颜色是根据通过的光溢出亮度进行选取,而且然后通道的数量直接影响光溢出的贡献。材质表达式1. Description- 所有材质表达式都有一个通用的Desc(描述)属性。在这个属性中输入的文本将会在工作区内的表达式上方的材质编辑器里面显示。可以出于任何目的使用它,但是通常最好对使用意图或表达式的函数进行简短说明。2. Title bar- 可以显示名称和/或有关材质表达式的属性的相关信息。3. Outputs- 连接输出材质表达式操作的结果。4. Preview- 可以显示材质表达式输出的值的预览。在启动实时更新的情况下自动进行更新。可以使用 Spacebar(空格键)进行手动更新。5. Inputs- 连接选取要供材质表达式使用的值。Abs(求绝对值)Abs 是数学术语“绝对值”的缩写。 Abs 表达式可以输出这个绝对值,或者它接收到的输出端的不带符号的值。基本上,这就意味着它会通过去掉减号将负数变为正数,而正数和零保持不变。示例:-0.7 的绝对值是 0.7; -1.0 的绝对值是 1.0;1.0 的绝对值是 1.0示例使用:求绝对值运算通常与点积结合使用。 点积的范围是从 -1.0.1,点积的绝对值的范围是 1.0.1。添加Add(加法)表达式会选取两个输入,将它们相加,然后输出这个结果。 这个加操作基于每个通道进行执行,也就是说输入端 R 通道要被加进去,G 通道要被加进去,B 通道加进去等等。这两个输入必须有相同数量的通道,除非它们其中有一个是单独的常量值。可以将常量与一个具有任意个输入的向量相加。输入 A- 选取要进行加法运算的值。 B- 选取被加数。示例:0.2 与 0.4 相加的结果是 0.6;(0.2,-0.4,0.6) 与 (0.1,0.5,1.0) 相加的结果是 (0.3,0.1,1.6);(0.2,-0.4,0.6) 与 1.0 相加的结果是 (1.2,0.6,1.6)示例使用:加法运算通常用于 加强/减弱 颜色或偏移 UV 贴图坐标。AntialiasedTextureMaskAntialiasedTextureMask 表达式允许您使用一个软(抗锯齿)过渡蒙板创建材质。可以使用蒙板在两个复杂的材质属性之间混合,或者淡出一个 alpha 混合的材质(使用 SoftMasked 可以正常工作)。只需指定已经在一个通道(红、绿、蓝或 alpha)中指定蒙板的贴图,在表达式中设置使用的通道,然后指定比较值。假设通道可以在 0=黑色到 1=白色的范围内存储灰度值,比较函数可以定义最终蒙板应该是 0 还是 1。这个表达式是一个参数,允许Texture(贴图)属性被子项 MaterialInstance 覆盖。属性 Threshold- 指定在像素覆盖中作为截断点使用的值。像素覆盖值小于这个值将会变黑;大于这个值的话将会变白。 Channel- 可以指定要作为蒙板使用的贴图的通道。 Texture- 指定要使用的蒙板贴图。输入 UVs- 选取要应用到贴图蒙板上的贴图坐标。伪代码:Result = 1if TextureLookup Sin-Mul 和参数parameter(参数)相乘然后再和某数相加,UE3将会把它压缩为一个单独指令,最终的加法。这是可能的,因为那个表达式所有的输入(Time(时间)、parameter(参数)对于整个调用函数来说是常数,它们不基于每一个像素改变。 UE3 不能在 custom(自定义)节点中压缩任何东西,那样将会产生比现有节点的等同版本产生更加低效的着色器。所以,最好只有在现有节点不能提供您所需要的功能时才使用自定义节点。另一个警告:对于目标平台来说,在自定义节点中所书写的着色器代码是以按原样的方式来编译的。这意味着如果着色器是为 PC 平台编译的,它被假定为有效的 HLSL。如果为 PS3 平台编译,它将被假定为有效地 Cg。属性 Code- 包含表达式将会执行的 HLSL 代码。 Output Type- 指定由表达式输出的值的类型。 Description- 指定要在材质编辑器中的表达式的标题栏中显示的文本。 Inputs- 供表达式使用的输入数列。o Input Name- 指定输入的名称。这个名字将会显示在材质编辑器中的表达式上,同时会在 HLSL 代码中使用这个名字引用输入值。在您的输入数组中尽可能多地增加您需要的输入,并命名它们。然后您可以在 Code(代码)属性中书写代码。您可以像例子中所展示的那样,输入一个完整的具有返回语句的函数体,或则输入一个简单的类似于Input.bgr的表达式。您也必须在 OutputType(输出类型)中指定输出数据类型。CustomTexture(自定义贴图)CustomTexture(自定义贴图)表达式允许您指向来自 Custom(自定义)节点内部的 HLSL 代码的贴图,一般用于在 HLSL 中对其进行采样。使用正常的 TextureSample(贴图样本)作为 Custom(自定义)节点的输入是可以的,但是在那种情况下,样本在Custom(自定义)节点的外面进行计算,结果被作为一个 4 为的浮点数值传入。当您想在一个循环中对同一个贴图进行多次采样或者当您想使用其它的采样指令例如ex2Dbias, tex2Dlod, tex2Dproj(要获得关于这些的说明请查看 HLSL文档)时,这个方法便不是非常的灵活。DepthBiasBlend(深度偏移混合)DepthBiasBlend(深度偏移混合)表达式通常用于平面粒子的材质中,来删除平面粒子和其它的几何体相交时产生的尖锐边缘。 深度偏移混合比较源像素和目标像素的深度差异,并使用一个偏移量来决定在描画时要使用的 alpha 值。 请查看深度偏移混合应用页面获得更多信息。DepthBiasBlend(深度偏移混合)表达式和其它的深度偏移混合节点相比速度比较慢而且也不那么的灵活;请使用深度偏移Alpha作为替换。程序员:DepthBiasBlend(深度偏移混合)是深度偏移混合节点中最不应该作为首选的节点。因为 1)它从最近的 帧/深度缓存 中进行颜色和深度采样,处理速度很慢;2)混合是在着色器代码中执行的而不是通过硬件,混合速度很慢;3) DepthBiasBlend(深度偏移混合)的输入是通过贴图属性输入的而不是任意表达式的输入端。DepthBiasAlpha(深度偏移Alpha)DepthBiasAlpha 表达式通常用于平面粒子的材质中,来删除平面粒子和其它的几何体相交时产生的尖锐边缘。 深度偏移混合比较源像素和目标像素的深度差异,并使用一个偏移量来决定在描画时要使用的 alpha 值。 请查看深度偏移混合应用页面获得更多信息。DepthBiasAlpha 表达式是进行深度偏移混合时的首选节点。编程人员:DepthBiasAlpha(深度偏移Alpha)是进行深度偏移混合的首选方法,因为混合在硬件中执行而不是在着色器中执行。DepthBiasedBlend(深度偏移混合)DepthBiasedBlend 表达式通常用于平面粒子的材质中,来删除平面粒子和其它的几何体相交时产生的尖锐边缘。 深度偏移混合比较源像素和目标像素的深度差异,并使用一个偏移量来决定在描画时要使用的 alpha 值。 请查看深度偏移混合应用页面获得更多信息。DepthBiasedBlend(深度偏移混合)表达式比DepthBiasAlpha(深度偏移Alpha)的速度慢;所以使用 DepthBiasAlpha(深度偏移Alpha)作为替换。编程人员:DepthBiasedBlend(深度偏移混合)是深度偏移混合节点中最不应该作为首选地节点之一。因为1)它从最近的 帧/深度缓存 中进行颜色和深度采样,处理速度很慢;2)混合是在着色器代码中执行的而不是通过硬件,混合速度很慢。DeriveNormalZ(计算法线向量Z)DeriveNormalZ 表达式可以得到一个切线空间法线的 Z 分量,X 和 Y 分量已经给出,然后输出最终的三维切线空间法线。Z 按照 Z = sqrt(1 - (x * x + y * y) 进行计算。输入 InXY- 以二维向量值的形式选取切线空间法线的 X 和 Y 分量。Desaturation(冲淡颜色)Desaturation 表达式可以冲淡它的输入的颜色,或将输入的颜色转换为灰色调,基于特定的百分比。属性 Luminance Factors- 指定每个通道可以帮助冲淡颜色的量。这样可以在冲淡的时候进行控制使绿色比红色亮,红色比蓝色亮。输入 Percent- 指定应用到输入上冲淡颜色的量。Percent(百分比)的范围可以从 0.0(完全地不饱和)到 1.0(完全的原始颜色,没有颜色冲淡)。编程人员:定义不饱和颜色D,输入颜色I和亮度因素L,输出将是O = (1-Percent)*(D.dot(I) + Percent*IDestColor(目标色)DestColor 表达式会在当前描画像素的后面输出渲染场景的现有颜色的当前状态。实例应用:一个水材质可以使用 DestColor(目标色)来对水下面的岩石的颜色进行采样。DestDepth(目标深度)DestDepth 表达式会在当前描画像素的后面输出渲染场景的现有深度的当前状态。实例应用:水材质可以使用 DestDepth(目标深度)来赋予水一定的 thickness(厚度) 或雾颜色,水的深度越深(深度越大),水会使它下面的岩石变得越模糊。编程人员:DestDepth(目标深度)返回一个粗略的深度值(0 到 224-1 之间的整数)。 这个非倾斜化的深度可以根据以下进行法线化: MaxZ = 16777215 NormalizedDepth = 1 - MaxZ / (DestDepth + MaxZ)最终的单位化后的深度是 0.0 到 1.0 范围内的线性值。Distance(距离)Distance 表达式可以计算两个点/颜色/位置/向量之间的 (Euclidian) 距离,然后输出结果值。它可以在一个、两个、三个和四个分向量上使用,但是表达式的所有输入都必须具有相同的通道数。输入 A- 选取一个值或任意长度的向量。 B- 选取一个值或任意长度的向量。伪代码: Result = length(A - B)Low level HLSL code: float Result = sqrt(dot(A-B, A-B)Divide(除法)Divide(除法)表达式会选取两个输入,然后输出第一个输入除以第二个输入的结果。 除法运算会根据通道进行,也就是说用第一个输入的 R 通道除以第二个输入的 R 通道,用第二个输入的 G 通道除以第二个输入的 G 通道等等。这两个输入必须有相同数量的值,除非除数是一个单独的浮点值。输入 A- 选取要进行除法运算的值,即被除数。 B- 选取要进行除法运算的值,即除数。示例:Divide(除法)的 A=(1.0,0.5,-0.4) 和 B=(2.0,2.0,4.0),那么最终的结果是(0.5,0.25,-0.1)。DotProduct(点积)DotProduct 表达式可以计算点积或者一个向量投射到另一个向量上的长度。这个计算方法被很多技术用来计算衰减。 DotProduct 表达式要求两个向量输入具有同样数量的通道。输入 A- 选取一个值或任意长度的向量。 B- 选取一个值或任意长度的向量。DynamicParameter(动态参数)DynamicParameter 表达式可以为粒子发射器提供一个可以最多将四个值传递给材质以任何方式使用的管道。这些值通过Cascade中的发射器上的 ParameterDynamic(参数动态)模块进行设置。属性 Param Names- 参数名称数列。这里的值将会确定在材质编辑器中显示在表达式输出上的文本,然后将会使用这个名字引用 Cascade 中的 ParameterDynamic 模块内的参数。输出 Param1- 输出 Param 名称属性中的第一个参数的值。这个输出的名称可以根据参数名称属性中的值进行更改。 Param2- 输出 Param 名称属性中的第二个参数的值。这个输出的名称可以根据参数名称属性中的值进行更改。 Param3- 输出 Param 名称属性中的第三个参数的值。这个输出的名称可以根据参数名称属性中的值进行更改。 Param4- 输出 Param 名称属性中的第四个参数的值。这个输出的名称可以根据参数名称属性中的值进行更改。FlipBookSample(翻书采样)FlipBookSample 表达式可以启用一个动画翻书贴图在材质中使用。它与TextureSample(贴图样本)非常相似,但是作为翻书贴图导入的贴图需要使用一个 FlipBookSample 表达式作为底层,FlipBookSample 会执行必需的 UV 操作渲染翻书贴图的子图像,基于翻书贴图的 HorizontalImage、VerticalImages 和 FrameRate 属性。属性 Texture- 指定要使用的翻书贴图。输入 UVs- 选取要应用到贴图上的贴图坐标。(鼠标悬停在图片上查看动画效果)Floor(值下限取整)Floor 表达式会选取值,然后将它们向下近似为上一个整数,然后输出这个结果。 还可以参阅Ceil(值上限取整)和Frac(取小数值)。示例:0.2 向下取整后的值为 0.0;(0.2,1.6) 向下取整后的值为 (0.0, 1.0)。FluidNormalFluidNormal 表达式会提供对 FluidSurfaceActor 生成的法线贴图的访问权限,其中包括由于对象与流体表面之间的动态交互而产生的波纹。它可以与其他法线贴图结合使用创建环境气流以及通过流体表面计算的交互性气流。FModFMod 表达式可以返回这两个输入进行除法运算后的浮点余数。(鼠标悬停在图片上查看动画效果)FoliageNormalizedRotationAxisAndAngleFoliageNormalizedRotationAxisAndAngle 表达式是为了和围绕坐标轴旋转节点结合使用而设计 ,当材质被应用到一个 InteractiveFoliageActor(交互的植被Actor)时,那个值是通过代码自动进行设置的。 为了应用弹簧偏置式,RGB 包含了要围绕其进行旋转的法线坐标轴。 Alpha 包含了应用弹簧偏置式所需要的旋转地角度和弧度。 请参阅InteractiveFoliageActor获取示例。FoliageImpulseDirection(植被冲力的方向)FoliageImpulseDirection 表达式的输出值是当应用材质到一个 InteractiveFoliageActor(交互的植被Actor)时通过代码自动设置的,它提供了对 InteractiveFoliageActor(交互的植被Actor)弹簧偏置式的原始访问权限。 请参阅InteractiveFoliageActor获取示例。FontSampler(字体取样器)FontSampler 表达式允许您从字体资源中采样出贴图页面作为正常的 2D 贴图。字体的 alpha 通道将包含字体的轮廓值。 仅允许指定有效的字体页面。Frac(取小数值)Frac 表达式可以选取值,然后输出这些值的小数部分。 还可以参阅Ceil(值上限取整)和Floor(值下限取整).示例:0.2 的取小数值为 0.2;(0.0,1.6) 取小数值为 (0.0, 0.6)。Fresnel(菲涅尔)Fresnel 表达式可以根据表面法线的点积和相对相机的方向计算衰减。在表面法线直接指在相机上时,会输出一个为 0 的值。在表面法线与相机互相垂直的时候,会输出一个为 1 的值。最终的结果将会被限制为 0,1,这样在中心不会有任何彩色负片。属性 Exponent- 指定输出值的衰减速度。值越大,衰减越紧凑越快。输入 Normal- 选取代表表面法线的三维向量,通常是一个法线贴图。如果没有指定法线,那么会使用网格物体的切线法线。FunctionInputFunctionInput 表达式只可以放置在材质函数中,在这里它定义了其中一个函数输入。属性 Input Name- 输入的名称,将会显示在使用包含这个输入的材质函数的 MaterialFunctionCall 表达式上。 Description- 有关这个输入的描述,当鼠标悬浮在 MaterialFunction Call 表达式上的这个输入的接口时显示为工具提示栏。 Input Type- 这个输入预计的数据类型。传递给这个输入的数据将会被转换为这个类型,如果因为数据不兼容而导致转换失败那么将会报出编译器错误。 Preview Value- 编辑包含这个输入的材质函数时要作为这个输入的预览使用的值。 Use Preview Value As Default- 如果启用该项,那么在没有传递数据的情况下会将Preview Value作为这个输入的默认值使用。 Sort Priority- 可以指定要在确定这些输入显示在 MaterialFunctionCall 表达式上的顺序时使用的输入优先级。这个节点可以与材质函数结合在一起使用。FunctionOutputFunctionInput 表达式只可以放置在材质函数中,在这里它定义了其中一个函数输出。属性 Input Name- 输出的名称,将会显示在使用包含这个输出的材质函数的 MaterialFunctionCall 表达式上。 Description- 有关这个输出的描述,当鼠标悬浮在 MaterialFunction Call 表达式上的这个输出的接口时显示为工具提示栏。 Sort Priority- 可以指定要在确定这些输出显示在 MaterialFunctionCall 表达式上的顺序时使用的输出优先级。这个节点可以与材质函数结合在一起使用。IfIf 表达式可以比较两个输入,然后根据比较结果传递这三个其他输入值中的一个。要进行比较的两个输入必须是单浮点值。输入 A- 选取一个单浮点值。 B- 选取一个单浮点值。 AB- 选取这两个值,然后输出 A 的值是否大于 B 的值。 A=B- 选取这两个值,然后输出 A 的值是否等于 B 的值。 AB- 选取这两个值,然后输出 A 的值是否小于 B 的值。LensFlareIntensity(镜头眩光亮度)LensFlareIntensity 表达式提供了正在渲染的镜头眩光的 ConeStrength(椎体力度)。这个椎体力度的提供可以决定关于和眩光的源相关的视点位置的眩光亮度。如果眩光的源放置在镜头眩光半径的外面,则锥角力度为 0.0。(如果镜头眩光的半径设置为 0.0f,那么它被认为永远处于打开状态)。如果眩光的源在半径里面,则锥角力度将设置为 1.0f。如果镜头眩光设置为定向锥角,如果视点放置在内锥角,并向眩光的方向看,则 ConeStrength(锥角力度)为 1.0f。当她移动到外锥角时,ConeStrength(锥角力度)将衰减为 0.0f。LensFlareOcclusion(镜头眩光遮挡)LensFlareOcclusion 表达式提供了正在渲染的镜头眩光的遮挡值。这个值由图元覆盖百分比决定,这个百分比可以作为镜头眩光的 ScreenPercentageMap(屏幕覆盖百分比映射)的查找值。LensFlareRadialDistance(镜头眩光半径距离)LensFlareRadialDistance 表达式提供了从屏幕中心渲染的元素的半径距离。这个值可以使用镜头眩光元素的 bNormalizeRadialDistance(正规化半径距离)属性使其正规化为 0.0f (中心) 到 1.0f (边缘)范围内的值。否则,这个值一般会在 0.0f (中心)到 1.0f (垂直或水平边缘) 到 1.4f (屏幕的角落)之内。1.4f 将是屏幕宽和高的比值。LensFlareRayDistance(镜头眩光光线距离)LensFlareRayDistance 表达式提供了为正在渲染的眩光元素设置的光线距离。LensFlareSourceDistance(镜头眩光源距离)LensFlareSourceDistance 表达式提供了正在被渲染的元素和在屏幕空间中的源的距离。LightmapUV(光照贴图 UV)LightmapUV 表达式以二维向量值的形式输出了光照贴图 UV 贴图坐标。如果光照贴图 UV 不可用,那么它会输出一个二维向量值 (0,0)。LightmassReplace(Lightmass 替换)当为了达到正常渲染目的而编译材质时,LightmassReplace 表达式只是简单地通过 Realtime(实时)节点的输入端,当到处材质到 Lightmass 来获得全局渲染时,该节点则通过 Lightmass 的输入端。 这对于解决那些导出版本不能正确地进行处理的材质表达式是有用的,比如 WorldPosition。输入 Realtime- 选取要传递进行法线渲染的值。 Lightmass- 选取在将材质导出到 Lightmass 时要传递的值。LightVector(光照向量)LightVector 表达式是一个具有3个通道的向量值,代表着光照相对于表面的方向。示例应用:LightVector 可以用于计算自定义光照算法,例如,一个简单的 Lambert 光照模型。注意: 当计算 Emissive(自发光)输出时,LightVector(光照向量)表达式无效。LightVector(光照向量)对于自定义光照是非常重要的。LinearInterpolate(线性插值)LinearInterpolate 表达式可以在将第三个值作为一个蒙板的基础上在两个输入值之间进行混合。LinearInterpolate(线性插值)可以被认为是一个用于定义在两个贴图间过渡的蒙板,和 Photoshop 中的层蒙板类似。 蒙板 Alpha 的亮度决定了从这两个输入值中取得颜色的比率。 如果 Alpha 是 1.0/白色,那么使用第一个输入值。 如果 Alpha 是 0.0/黑色,那么使用第二个输入值。 如果 Alpha 是灰色的(值在 0 和 1 之间), 则输出会在这两个输入值之间混合。请记住混合是基于每个通道进行的。 所以,如果 Alpha 通道是一个RGB颜色,Alpha 的红色通道值定义了 A 和 B 的红色通道的混合,它和 Alpha 的绿色通道是独立的,绿色通道定义了 A 和 B 通道间的绿色通道的混合。输入 A- 选取映射为白色的值。 A- 选取映射为黑色的值。 Alpha- 选取这个值作为蒙板 alpha。编程人员:LinearInterpolate(线性插值)基于参数值 Alpha 在 A 和 B 之间对每个通道进行线性插值。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论