UDN
Search public documentation:

MaterialsOverviewCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 主页 > 材质 & 贴图 > 材质概述

材质概述


材指属性


基础材质节点具有很多会影响材质表现的属性。下面对这些属性进行说明。

材质

  • Phys Material - 和这个材质相关的物理材质。请参照物理材质系统
  • Opacity Mask Clip Value - 这是遮挡材质的 OpacityMask(不透明蒙板)输入端基于每个像素进行剪裁的参考值。任何比 OpacityMaskClipValue 值大的值都会成功通过并且将描画这个像素,任何比它小的值,都将会失败,像素也将被丢弃。
  • BlendMode - 描述了当渲染时当前材质的输出和已经在帧缓冲(目标颜色)的东西如何进行结合。
    • BLEND_Opaque - Final color(最终颜色) = Source color(源颜色)。这个混合模式和光照兼容。
    • BLEND_Masked - 最终颜色 = 源颜色 如果 OpacityMask < OpacityMaskClipValue,则像素将会被丢弃。这个混合模式和光照兼容。
    • BLEND_Translucent - 最终颜色 = 源颜色 * 透明度+ 目标颜色 * (1 - 透明度)。这个混合模式与动态光照 兼容。
    • BLEND_Additive - 最终颜色 = 源颜色 + 目标颜色(Dest color)。这个混合模式与动态光照 兼容。
    • BLEND_Modulate - 最终颜色 = 源颜色 * 目标颜色. 这个混合模式与动态光照或雾 兼容,除非这是一个贴图材质。
    • BLEND_SoftMasked - 和 BLEND_Masked 类似,但是模糊了不透明和透明之间的界线。对于使用这个模式有一些限制。关于更多的信息,请参照软蒙板页面。
    • BLEND_AlphaComposite - 用于具有预乘 alpha 通道的贴图的材质。也就是,颜色通道已经和alpha通道相乘,所以当和帧缓存进行混合时,GPU可以跳过一般和alpha混合结合使用的(SrcAlpha * SrcColor)算法。混合模式是作为Scaleform GFx集成的一部分来添加的,Scaleform GFx一般会为UI贴图使用这种类型的混合。 光照模型决定了材质输入(比如 Emissive(自发光), Diffuse(漫反射), Specular(高光), Normal(法线))是如何相互结合来生成最终颜色的。
    • MLM_Phong - 默认的光照模式,计算每个像素的漫反射和高光。
    • MLM_NonDirectional - 仅计算每个像素的漫反射,不计算高光。表面法线在光照等式中也不是一个因素。这项当前仅对动态照亮的材质有效。
    • MLM_Unlit - 仅计算自发光,任何半透明混合模式都需要这个光照模型。
    • MLM_SHPRT - 已废弃
    • MLM_Custom - 允许使用任何光照模型,请参照自定义光照
    • MLM_Anisotropic - 用于像头发或拉绒金属这样的各项异性材质,请参照各项异向的光照
  • TwoSided - 在背面上法线将会被翻转,这意味在正面和反面都进行光照计算。这项功能经常在植被上进行应用,可以阻止是多边形的数量加倍。Two Sided(双面)在静态光照上并不能很好地进行工作,因为静态光照仅在一个半球内存储入射光线。结果,具有静态光照的双面材质在同样地被遮挡。
  • Wireframe - 材质将在线框内进行渲染。
  • Per Pixel Camera vector - 如果该选项为 true,那么相机向量将会在像素着色器中而不是在定点着色器中进行计算。这样可以改善反射质量,同时允许 VertexColor 表达式与 Trasform 表达式结合使用。
  • Allow Lightmap Specular - 如果该选项为 true,光照贴图中的高光将会被渲染。禁用此项将会减少指令数。

PhysicalMaterialMask

物理材质蒙板允许在一个图像材质上使用两个物理材质。请参阅物理材质蒙板了解更多信息。

  • Phys Material Mask - 要使用的黑色和白色蒙板贴图。灰色值小于 (128,128,128) 或 (0.5,0.5,0.5) 将会被认为是黑色。其他值将会被认为是白色。
  • Phys Material Mask UVChannel - 要用来将蒙板贴图应用到表面的 UV 通道。
  • Black Physical Material - 要应用到蒙板贴图的黑色部分的 PhysicalMaterial。
  • White Physical Material - 要应用到蒙板贴图的白色部分的 PhysicalMaterial。

半透明材质

  • 双面单独渲染 -
  • Disable Depth Test - 允许材质禁用深度测试,这项仅对半透明混合模型有用。禁用深度测试时,由于遮挡的像素不会被剔除将会使渲染变得非常的慢。
  • Allow Fog - 材质是否可以受到雾的影响。这项仅对使用半透明混合模型的材质有效。
  • Translucency Receive Dominant Shadows From Static - 如果该选项为 true,那么在这个材质被一个光源环境照亮的时候,它应该接收来自静态对象的动态主光源阴影。这对于制作角色的头发非常有效。
  • Translucency Inherit Dominant Shadows From Opaque - 如果该选项为 true,这个材质应该继承将动态光源投射到这个材质背后的不透明和遮罩材质所产生的动态阴影。这对于使用半透明混合模式和深度偏移 alpha 隐藏缝隙的地面网格物体(例如,草地或植被)非常有用。
  • Allow Translucency DoF - 如果该选项为 true,那么这个材质将允许景深,否则,它将会自动不受任何景深效果影响。要求材质使用半透明混合模式。
  • Use One Layer Distortion - 如果该选项为 true,那么这个材质应该使用一个层变形 (One layer distortion),这对于某些图源类型(主要是流体表面)来说要比正常的变形更加便宜。一个层变形 (One layer distortion) 将不能正确地处理重叠的一个层变形图元。这样将导致一个额外的场景颜色来解决使用一个层变形的第一个图元,所以这项应该仅在非常特殊的情况下才使用。
  • Use lit Translucency Depth Pass - 如果该选项为 true,那么将会只对动态光照半透明图元的不透明区域(也就是 alpha = 255 的区域)进行深度渲染。这样将会改善诸如头发排序的效果,但是同时也增加了渲染消耗的性能。
  • Use lit translucency Post Render Depth pass - 如果该选项为 true,那么将会只对动态光照半透明图元的任何可视区域(也就是 alpha > 0 的区域)进行深度渲染。这对于具有雾的正确半透明物质和头发的景深而言是必需的。
  • Cast Lit Translucency Shadow As Masked - 如果该选项为 true,光照半透明对象会投射阴影,就好像它们处于被遮罩状态。

互相排斥应用

用于控制渲染行为并且和其它标记相互排斥的标记。

  • bUsedAsLightFunction(是否用于作为光照函数)
  • bUsedWithFogVolumes(是否和雾体积一同应用)
  • bUsedWithDecals(是否和Decals一同应用)

应用

应用属性标记允许您将材质和具有不同网格物体类型或渲染技术一同使用。有几个类别。

特殊标记:

  • bUsedWithGammaCorrection(是否使用 Gamma 校正) - 在着色尾部进行 gamma 校正。这仅对用到 LDR UI 场景的材质是必要的。
  • bUsedWithMaterialEffect(是否和材质特效一同使用) - 允许材质读取场景深度和场景颜色,即使材质是不透明的。

其它的所有标记仅仅是针对特定的网格物体类型对那个材质增加的一些支持。比如,选中 bUsedWithStaticLighting 允许您在具有光照贴图的静态网格物体或 BSP 上应用材质。在内部它们将导致相应网格物体类型所需要的着色器被编译。当您把材质应用到需要设置一些标记的网格物体上时,编辑器将会根据需要来设置这些标记,然后材质将会被标记为 dirty(材质已经被改变),因为它需要进行保存。

注意: 在游戏中这些标记不会被自动地被设置,如果没有设置适当的标志,则使用默认的材质!将会有一个详细的关于这个问题的日志警告来告诉您哪些材质存在问题以及它需要哪些标记。

Lightmass

  • Lightmass 设置
    • Emissive Boost - 材质的自发光部分对静态光照的影响程度乘数。
    • Diffuse Boost - 材质的漫反射部分对静态光照的影响程度乘数。
    • Export Resolution Scale - 输出该材质属性的分辨率乘数。在需要表现细节时应该增加这个值。
    • Distance Field Penumbra Scale - 距离场阴影的半影大小乘数。可以使用它获得特定材质类型(例如,植被)的更加软的预计算阴影。

材质界面

  • Preview Mesh - 在预览面板中设置用于预览材质的静态网格物体。

移动设备

请参阅移动设备平台材质页面了解有关这些属性的更多信息。

材质输入


材质节点具有一系列输入,每个输入与材质的不同部分相关联,其他表达式或表达式网络可以连接到这些输入。

material_node.jpg

Diffuse
材质的漫反射颜色可以表现所有方向平均反射的入射光的量。值 (1,1,1) 表示所有方向可以反射 100% 的入射光。漫反射不会根据视图进行变化,所以它从任何角度看起来都是一样的,但是它每个像素都是依赖法线。漫反射颜色将只会在受一些无阴影的光照影响时显示,因为它会缩放入射光照。
Diffuse Power
TODO
Emissive
材质的自发光颜色可以表现该材质散发出的光线多少,就好像它是一个光源,尽管它实际上没有照亮场景中的其他表面。由于自发光表现得像一个光源,所以它不会受到光源或阴影的影响。有时候使用自发光表现环境光照术语。
Specular
高光颜色可以表现在某个方向反射的入射光线多少。高光反应在您的眼睛与反射的入射光线的方向对齐的时候是最亮的,所以高光是根据视图进行变化的。法线也会影响高光,因为它会影响反射的光源方向。
SpecularPower
高光强度可以控制表全面的光泽或光泽程度。非常高的高光强度可以表现如镜面一般的表面,而低强度可以表现比较粗糙的表面。
Opacity
不透明度可以控制透过半透明材质表面的光线多少。这意味着半透明表面就好像是屏幕上的过滤器,您可以透过它看到一些东西。不透明度为 1 的材质是完全不透明的,而不透明度是 0 则意味着它允许所有光线穿过。
OpacityMask
TODO
Distortion
TODO
TransmissionMask
TODO
TransmissionColor
TODO
Normal
法线属性可以表现表面方向。通过使用法线贴图可以指定每个像素的法线属性,而且它可以同时对漫反射和高光光照产生影响。
CustomLighting
TODO
CustomLightingDiffuse
TODO
AnisotropicDirection
TODO
WorldPositionOffset
TODO
WorldDisplacement
TODO
TessellationMultiplier
TODO
SubsurfaceInscatteringColor
TODO
SubsurfaceAbsorptionColor
TODO
SubsurfaceScatteringRadius
TODO
只有相关的以及在当前材质基础上使用的输入值(通常是光照模型和混合模型)显示为“active(激活状态)”。不相关的输入值将会显示为“inactive(非激活状态)”,或者显示为灰色不可选状态。这只是表面的,因为输入值仍然可以进行连接。它只会显示实际对已经给定设置的材质产生影响的输入值。