UDN
Search public documentation:

MaterialsOverview
日本語訳
中国翻译
한국어

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 Home > Materials & Textures > Materials Overview

Materials Overview


Material Properties


The base material node has a number of properties which affect how the material behaves. These properties are described below.

Material

  • Phys Material - The Physical Material associated with this material. See PhysicalMaterialSystem.
  • Opacity Mask Clip Value - This is the reference value which the OpacityMask input of masked materials will clip against per-pixel. Any value higher than OpacityMaskClipValue will pass and the pixel will be drawn, any value lower will fail and the pixel will be discarded.
  • Blend Mode - BlendMode describes how the output of the current material (source color) will combine with what's already in the framebuffer (destination color) when rendered.
    • BLEND_Opaque - Final color = Source color. This blend mode is compatible with lighting.
    • BLEND_Masked - Final color = Source color if OpacityMask < OpacityMaskClipValue, otherwise the pixel is discarded. This blend mode is compatible with lighting.
    • BLEND_Translucent - Final color = Source color * Opacity + Dest color * (1 - Opacity). This blend mode is NOT compatible with dynamic lighting.
    • BLEND_Additive - Final color = Source color + Dest color. This blend mode is NOT compatible with dynamic lighting.
    • BLEND_Modulate - Final color = Source color * Dest color. This blend mode is NOT compatible with dynamic lighting, or fog, unless this is a decal material.
    • BLEND_SoftMasked - Similar to BLEND_Masked, but the borders between opaque and transparent are blurred. There are some limitations to using this mode. For more information, see the Soft Masked page.
    • BLEND_AlphaComposite - Used for materials with textures that have premultiplied alpha. That is, the color channel has already been multiplied by the alpha so when blending with the frame buffer, the GPU can skip the (SrcAlpha * SrcColor) arithmetic that is typically used with alpha blending. The blend mode was added as part of the Scaleform GFx integration which often uses this type of blending for UI textures.
  • Lighting Model - Lighting models determine how material inputs (eg Emissive, Diffuse, Specular, Normal) are combined to make the final color.
    • MLM_Phong - The default lighting model, diffuse and specular are calculated per-pixel.
    • MLM_NonDirectional - Per-pixel diffuse only, no specular. Surface normal is also not a factor in the lighting equation. This currently only works for dynamically lit materials.
    • MLM_Unlit - Emissive only, this lighting model is required for any transparent blend mode.
    • MLM_SHPRT - Deprecated.
    • MLM_Custom - Allows an arbitrary lighting model to be used, see CustomLighting.
    • MLM_Anisotropic - Used for anisotropic materials like hair or brushed metal see AnisotropicLighting.
  • TwoSided - The normal will be flipped on backfaces, which means lighting will be calculated for both the front faces and the backfaces. This is commonly used on foliage to keep from having to double up the number of polygons. Two Sided does not work correctly with static lighting, since static lighting only stores incoming light in one hemisphere. As a result, two sided materials with static lighting will be shaded the same on both sides.
  • Wireframe - The material will render in wireframe.
  • Per Pixel Camera vector - If true, the camera vector will be computed in the pixel shader instead of the vertex shader. This can improve the quality of reflections and also allows the VertexColor expression to be used with he Trasform expression.
  • Allow Lightmap Specular - If true, specularity from lightmaps will be rendered. Disabling will reduce instruction count.

PhysicalMaterialMask

Physical material masks allow two physical materials to be used on one graphical material. See PhysicalMaterialMask for more info.

  • Phys Material Mask - The black and white mask texture to use. Gray values less than (128,128,128) or (0.5,0.5,0.5) will be considered black. Other values will be considered white.
  • Phys Material Mask UVChannel - The UV channel to use for applying the mask texture to the surface.
  • Black Physical Material - The PhysicalMaterial to apply to the black parts of the mask texture.
  • White Physical Material - The PhysicalMaterial to apply to the white parts of the mask texture.

Translucency

  • Two Sided Separate Pass -
  • Disable Depth Test - Allows the material to disable depth tests, which is only meaningful with translucent blend modes. Disabling depth tests will make rendering significantly slower since no occluded pixels can get zculled.
  • Allow Fog - Whether the material should allow fog or be unaffected by fog. This only has meaning for materials with translucent blend modes.
  • Translucency Receive Dominant Shadows From Static - If true, the material should receive dynamic dominant light shadows from static objects when the material is being lit by a light environment. This can be useful for hair on characters.
  • Translucency Inherit Dominant Shadows From Opaque - If true, the material should inherit the dynamic shadows that dynamic lights are casting on opaque and masked materials behind this material. This can be useful for ground meshes (like grass or foliage) that are using a translucent blend mode and depth biased alpha to hide seams.
  • Allow Translucency DoF - If true, the material will allow depth pf field. otherwise, it will be unaffected by any depth of field effects. Requires the material to be using a translucent blend mode.
  • Use One Layer Distortion - if true, the material should use one-layer distortion, which can be cheaper than normal distortion for some primitive types (mainly fluid surfaces). One layer distortion won't handle overlapping one layer distortion primitives correctly. This causes an extra scene color resolve for the first primitive that uses one layer distortion and so should only be used in very specific circumstances.
  • Use lit Translucency Depth Pass - If true, a depth-only pass will be rendered for opaque areas (meaning alpha = 255) of the dynamic lit translucency primitives. This will improve things like hair sorting, but at an extra render cost.
  • Use lit translucency Post Render Depth pass - If true, a depth-only pass will be rendered for any visible areas (meaning alpha > 0) of dynamic lit translucency primitives. This is necessary for correct translucency with fog and for depth of field of hair.
  • Cast Lit Translucency Shadow As Masked - If true, lit translucent objects will cast shadows as if they were masked.

Mutually Exlusive Usage

Flags that control rendering behavior and therefore are mutually exclusive with other flags:

  • bUsedAsLightFunction
  • bUsedWithFogVolumes
  • bUsedWithDecals

Usage

The usage property flags allow you to use that material with different mesh types or rendering techniques. There are a few categories.

Special:

  • bUsedWithGammaCorrection - gamma corrects at the end of the shader. This is only necessary for materials that are applied to LDR UI scenes.
  • bUsedWithMaterialEffect - allows the material to read from scene depth and scene color even if opaque.

All the rest of the flags just add support to that material for the specified mesh type. For example, checking bUsedWithStaticLighting allows you to use the material on lightmapped static meshes or BSP. Under the hood they will cause the required shaders to get compiled for the corresponding mesh type. These flags will get set as needed by the editor when you assign them to meshes that need certain flags to be set, and then the material will be marked dirty since it needs to be saved.

NOTE: In-game the flags will NOT be set automatically, and the default material will be used if the appropriate flag is not set! There is a detailed log warning about this that will tell you which material had the problem and what flag it needed.

Lightmass

  • Lightmass Settings
    • Emissive Boost - A multiplier for the amount of influence the emissive component of the material has on static lighting.
    • Diffuse Boost - A multiplier for the amount of influence the diffuse component of the material has on static lighting.
    • Export Resolution Scale - A multiplier for the resolution at which this material's attributes are exported. This should be increased when details are needed.
    • Distance Field Penumbra Scale - A multiplier for the penumbra size of distance field shadows. This can be used to get softer precomputed shadows on certain material types, like foliage.

Material interface

  • Preview Mesh - Sets a static mesh used to preview the material in the preview pane.

Mobile

Please see the mobile material page for information about these properties.

Material Inputs


The material node has a series of inputs, each associated with a different aspect of the material, that other expressions or networks of expressions can connect to.

material_node.jpg

Diffuse
The diffuse color of a material represents how much of the incoming light reflects equally in all directions. A value of (1,1,1) means that 100% of the incoming light reflects in all directions. Diffuse is not view dependent so it will look the same from any angle, but it does depend on the normal at each pixel. Diffuse color will only show up when affected by some unshadowed lighting, because it scales the incoming lighting.
Diffuse Power
TODO
Emissive
The emissive color of a material represents how much light the material emits, as if it were a light source, although it doesn't actually light up other surfaces in the scene. Since emissive is acting like a light source, it is not affected by lights or shadows. Emissive is sometimes used to represent the ambient lighting term.
Specular
Specular color represents how much of the incoming light reflects in a directional manner. The specular response is brightest when your eye lines up with the direction of the reflected incoming light, so specular is view dependent. The normal also affects specular because it affects the reflected light direction.
SpecularPower
Specular power controls how shiny or glossy the surface is. A very high specular power represents a mirror-like surface while a lower power represents a rougher surface.
Opacity
Opacity controls how much light passes through the surface for translucent materials. This means a translucent surface acts like a filter on the scene that you see through it. A material with an opacity of 1 is fully opaque, while an opacity of 0 means it lets all light through.
OpacityMask
TODO
Distortion
TODO
TransmissionMask
TODO
TransmissionColor
TODO
Normal
The normal property represents the surface orientation. It can be specified per-pixel with the use of a normal map, and it has an effect on both diffuse and specular lighting.
CustomLighting
TODO
CustomLightingDiffuse
TODO
AnisotropicDirection
TODO
WorldPositionOffset
TODO
WorldDisplacement
TODO
TessellationMultiplier
TODO
SubsurfaceInscatteringColor
TODO
SubsurfaceAbsorptionColor
TODO
SubsurfaceScatteringRadius
TODO

Only the inputs relevant and used based on the current material settings (generally the lighting model and blend mode) are shown as "active". Non-relevant inputs will be displayed as "inactive", or grayed out. This is only superficial as the inputs can still have connections made. it simply shows which inputs actually have an effect on the material given its settings.