Post

Material Basics in Unreal

Material Basics in Unreal

Material Basics

  • Textures Sampler Source: Shared allows the use of more than 16 texture samplers.
  • Texture Objects - Stores a reference to a texture but does not actually sample it.
  • Texture Sampler: Gets a references to a texture and samples it based on UV coordinates.
  • Const Coordinate - Same as setting the Coordinate Index on a Texture Coordinate node.
  • Sampler Type - Differs depending on the texture compression type. Usually set automatically but can be overwritten.
  • Fully Rough - Ignores roughness property and sets it to be always rough. Optimizes the number of instructions and sampler count.
  • Normal Curvature to Roughness - Good for metallic & clear coat materials. Reduces roughness based on screen space normal changes.
  • IsSky - Meshes with a material that has this enabled will not receive any skylight contribution. Height & Volumetric fog will remain.
  • SSR - Enables SSR on a per material basis.
  • Contact Shadows - Allows for contact shadows on translucent objects.
  • Compute Fog Per Pixel - Reducing artefacting on material surfaces that intersect with fog elements. A bit more expensive.
  • Render After DOF - Allows for translucency to be rendered in a separate pass. Requires Separate Translucency Enabled in project Settings.
  • Tessellation Mode - Two different methods of calculating tessellation.
  • Flat Tessellation - Splits up the triangles but doesn’t do anything else to it.
  • PN Triangles - Splits & smooths the objects. Objects in question required smoothing groups.

1. Common Nodes

  • 3 Vector - 3 channel node without alpha.
  • 4 Vector - 3 channel node with a separate alpha channel.
  • Lerp - Linear Interpolate used for blending two inputs by an alpha.
  • Divide - When applied to numbers divides them. When applied to textures Darkens them.
  • Add - When applied to numbers adds them. When applied to textures Lightens them. Adding a value to a texture coordinate node has the ability to shift the uv’s in x or y.
  • Multiple - When applied to numbers multiplies them. When applied to textures Multiplies them.
  • SetMaterialAttributes - Similar to MakeMaterialAttrs but it lets you choose specific attrs.
  • WorldAlignedTexture - Projects textures in WorldSpace rather than relying on UV’s
  • Static Bool - Good to hide/show features from material instances
  • Flatten Normal - Flattens a normal input

2. Material Basics

Textures Sampler Source: Shared allows the use of more than 16 texture samplers.

Texture Objects - Stores a reference to a texture but does not actually sample it.

Texture Sampler: Gets a references to a texture and samples it based on UV coordinates.

Const Coordinate - Same as setting the Coordinate Index on a Texture Coordinate node.

Sampler Type - Differs depending on the texture compression type. Usually set automatically but can be overwritten.

Fully Rough - Ignores roughness property and sets it to be always rough. Optimizes the number of instructions and sampler count.

Normal Curvature to Roughness - Good for metallic & clear coat materials. Reduces roughness based on screen space normal changes.

IsSky - Meshes with a material that has this enabled will not receive any skylight contribution. Height & Volumetric fog will remain.

SSR - Enables SSR on a per material basis.

Contact Shadows - Allows for contact shadows on translucent objects.

Compute Fog Per Pixel - Reducing artefacting on material surfaces that intersect with fog elements. A bit more expensive.

Render After DOF - Allows for translucency to be rendered in a separate pass. Requires Separate Translucency Enabled in project Settings.

Tessellation Mode - Two different methods of calculating tessellation.

Flat Tessellation - Splits up the triangles but doesn’t do anything else to it.

PN Triangles - Splits & smooths the objects. Objects in question required smoothing groups.

3. Material Types

Default Lit Translucent Unlit Masked TwoSided Foliage Thin Translucency Single Layer Water

4. Organizing your Material Graphs

  • Use sort priorities
  • Break large common tasks into material functions
  • Comment your graph node
  • Colour code your comments
  • Use the reroute nodes
  • Use material parameter collections
  • Use separators
This post is licensed under CC BY 4.0 by the author.