0% found this document useful (0 votes)
25 views

Perfect Material

This document provides instructions for generating normal maps and height maps from heightmap data, and configuring various material properties for parallax occlusion mapping, displacement mapping, tessellation, and emissive effects using Unreal Engine material parameters. It describes generating normal maps from height data using different algorithms with tradeoffs between quality and performance. It also outlines settings for bump mapping, parallax occlusion mapping, displacement mapping using tessellation, and configuring multiple emissive material layers.

Uploaded by

Jay Corsarian
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Perfect Material

This document provides instructions for generating normal maps and height maps from heightmap data, and configuring various material properties for parallax occlusion mapping, displacement mapping, tessellation, and emissive effects using Unreal Engine material parameters. It describes generating normal maps from height data using different algorithms with tradeoffs between quality and performance. It also outlines settings for bump mapping, parallax occlusion mapping, displacement mapping using tessellation, and configuring multiple emissive material layers.

Uploaded by

Jay Corsarian
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Normal Map Generation

You can also generate a normal map from heightmap as demonstrated on the 'DemoDay' example
map. By default, it uses the cheapest method of Normal map generation for good performance.
Firstly, change parent master material to ‘MM_EP_FullPBR’. Under the ‘Normal Settings’ tab:

 ‘Generate Normal from Height Map’ – Allows generating a normal map from the height map.
 ‘Height Offset’ – Offset to shift the normal map degree.
 ‘Height Sharpness’ – Edge sharpness offset.
 ‘Use Cheap Cost Generating Normal Map’ – Use the cheapest method for generating a normal
map.
 ‘Use Height Channel Selection’ – Allows selecting a channel for the heightmap. If you will use it
will get more instructions to cost more performance and less FPS.
 ‘Height Channel’ – Choose index for RGBA map to switch channel of heightmap
(0 – red , 1 – green, 2 – blue, 3 – alpha).
 ‘Use Blur Generation Normal Map’ – Better control with blur edges but much expensive cost of
performance. Use on your own decision.

7. Configure Bump
Turn on a checkbox 'Use Bump Mapping' under
the ‘Main Settings’ tab and go to the ‘Bump
Mapping Settings' section.

 ‘Use Heightmap texture '– If ticked it


will use the Height Map slot instead
the Pack Map.
 ‘Bump Channel’ – From here you can
choose the channel that the
information is in (which is Red by
default) as well as if the heightmap
channel is from the Pack Map.
 ‘Bump Offset Depth’ – With it, you can
customize the Bump offset
information to get it looking how
you want whether it should be a subtle or strong depth.

15
8. Configure Parallax Occlusion Mapping
Сhange parent master material to ‘MM_EP_MinimumPBR+Parameters+Bump+POM’ or ‘MM_EP_FullPBR’.
Turn on are checkboxes 'Use Parallax Occlusion' & ‘Use PDO’ under the ‘Main Settings’ tab and go to the
‘Parallax Occlusion Settings' section:

 ‘Channel Mask ' – From here you can choose the channel for a heightmap.
 ‘Height Map Scale ' – This will define the height your texture will appear to be "lifted".
 ‘Min POM Step' – Affect the quality of the function as specific view angles. Specifically the
number of steps required to reach the effect.
 ‘Max POM Step' – Affect the quality of the function as specific view angles. Specifically the
number of steps required to reach the effect.
 ‘Use World Coordinate ' – It uses world coordinates as the UVs, the shaders need to skip the
tangent -> world transform. This saves a few instructions.
 ‘Use Temporal AA step smooth ' – Use dither temporal AA smooth between steps. Also, it will
replace the max steps by the multiplier value.
 ‘Render Shadows' – Use dither temporal AA smooth between steps. Also, it will replace the
max steps by the multiplier value.
 ‘Specify Manual Texture Size' – Used for Pixel Depth Offset. This lets you manually specify the
World Size of your texture to skip some expensive instructions that are normally used to
determine the UV to World Size.
Note: Enable if you have "black dots around" then inputting how big the texture as a 1x1 tile
would be in world space. For example, if you have a plane that is 200 units wide and the texture
at a 1x1 scale covers the entire plane then the "specify texture size" would be 200.
 ‘Reference plane' – The relative point from which the parallax will be applied. When 1 or
higher, all parallax will be downwards. When 0, all parallax will be upwards.

Note: The Pixel Depth Offset pushes the depth up to the camera near/far plane. It must be turned on
when POM uses.

Note: If you will use the ‘Render Shadow’ - you might need to disable shadow casting on the mesh to
get the correct visual effect. This is because the shadows are not accounting for the offset height and
still trying to cast a shadow using the original mesh.

9. Displacement with Distance-Based Tessellation


Displacement Maps are an addition to the Normal map setup that allows you to create actual depth
offset as opposed to the light angles that are created by a Normal map. Displacement maps can be
tricky to use to try to match the effect of a normal map because you need vertexes in order to get
the offset displacement and this is where DX11's tessellation comes into play. What it does is splits
triangles into smaller triangles at runtime to increase the surface detail of a mesh. Effect can be very
slow to render and should be used within reason.
Turn on the checkbox 'Use Displacement Map’ under the ‘Main Settings’ tab and go to the ‘Displacement
Settings' section:

16
Displacement

 ‘Enable Height Fade (Use if Tessellation is enabled)’ – Calculate distance fade for height map of
displacement. Use it for distance fade calculation.
 ‘Invert Map’ – Allows inverting texture map values.
 ‘Use 3 Point Values Control' – Remaps 0-1 values by linearly interpolation through 3 new values.
 ‘Use Displacement Power' – The map channel will be multiplied by self X value times.
 ‘Use Displacement SVC' – Smart Values Control is a linear interpolate between 0-1 values.
 ‘Modify Displacement SVC’ – By default, SVC uses values '0.9' for white and '0.1' for black. This
checkbox will give the ability to modify those values.
 ‘Modify Height Fade' – World Position distance calculation method. Need to disable Height
Fade inside Displacement settings.
 ‘Modify Value' – Simply multiply the Displacement map by value.
 ‘Far Height' – This will define the height your texture will appear to be "lifted" by far distance.
 ‘Far Height Distance' – This will define the far distance to apply current height values.
 ‘Near Height' – This will define the height your texture will appear to be "lifted" by near
distance.
 ‘Near Height Distance' – This will define the near distance to apply current height values.
 ‘Height' – This will define the height your texture will appear to be "lifted" by default.
 ‘Intensity Value' – The Intensity of the displacement map.

Tessellation

 ‘Use simple value’ – Use simple tessellation value instead of calculation by distance for
resolution.
 ‘Use WP Distance Calculation (Disable Height Fade)’ – World Position distance calculation method.
Need to disable Height Fade.
 ‘Displacement : Contrast’ – Contrast for distance fade in displacement map.
 ‘Displacement : Distance’ – Calculate world position distance fade for height map of
displacement.
 ‘Displacement : Fade’ – Default fade value.
 ‘Displacement : Multiplier’ – It will multiply the distance fade by value.
 ‘Far Distance’ – Controls the far distance of tessellation along the surface.
 ‘Far Resolution’ – Controls tessellation value by far distance.
 ‘Near Distance’ – Controls the near distance of tessellation along the surface.
 ‘Near Resolution’ – Controls tessellation value by near distance.
 ‘Resolution’ – Controls the amount tessellation along the surface, allowing more detail to be
added where needed.

17
Note : Tessellation is a DX11 feature and requires hardware that supports DX11. What it does is splits
triangles into smaller triangles at runtime to increase the surface detail of a mesh. Effect can be
very slow to render and should be used within reason.
The Flat setting simply splits up the triangles. While this would not be of much use by itself,
adjusting the world position of the new vertices using the normal map and displacement map, can
create new surface details.
PN Triangles smoothes the object. It does require the mesh to have at least one smoothing group to
make the smoothing work. As with the Flat setting, textures can be used to displace the tessellated
vertices giving it a very detailed look.

10. Setup Emissive


Emissive is the most huge part of the material because it has a lot of exposed instance parameters. It
also has 4 different layers of Emissive channels. 4 Emissive channels can use one texture RGBA or
separated texture masks also it has an opportunity to use the cropped mask.

Emissive Main

 ‘Modify Bright Intensity’ – Increase glow intensity by value multiplier.


 ‘Use Global Bright Effect’ – Use global parameter value intensity instead default value.
 ‘Use Global Pulse Effect’ – Use pulse glows effect for all layers.
 ‘Use Separate Emissive Maps’ – If true, it will use its own cropping texture mask for each
emissive layer.
 ‘Global Pulse : Pulse lerp’ – Linear interpolation pulse effect instead of mixing channels.
 ‘Global Pulse : Pulse lerp glow’ – Glow intensity value of the pulse effect.
 ‘Global Pulse : Min Offset’ – Pulse glow offset which shifts by time.
 ‘Global Pulse : Max Offset’ – Pulse glow offset which shifts by time.
 ‘Global Pulse : Pulse Time’ – Time for the delay between glow pulse effect.
 ‘Global Bright : Emissive Global Bright Value’ – Global glow intensity parameter value for all
layers.
 ‘Cropping : Invert XY coords’ – Invert XY coordinates to positive for cropping.
 ‘Cropping : Use new cropping method’ – Use the new corner cropping method.

Emissive Layers
I will describe only one Emissive layer because layers have the same setup.

 ‘Bright Value’ – Default layer bright intensity value.


 ‘Color’ – The color value for the current layer.
 ‘Edit bright intensity’– Glow intensity control.
 ‘Invert Map’ – Allows inverting Emissive mask values.
 ‘Mask Channel’ – From here you can choose the channel for an Emissive mask.

18
 ‘Modify SVC’ – By default, SVC uses values '0.9' for white and '0.1' for black. This checkbox will
give the ability to modify those values.
 ‘Use Cloud Panner Effect’ – Allows use of shifting noise texture above the Emissive map.
 ‘Use Cropping Mask’ – Allows crop Emissive map by using coordinates and another one texture
map.
 ‘Use Panner effect’ – Allows shifting an Emissive map by time and direction values.
 ‘Use Power Multiply’ – The map channel will be multiplied by self X value times.
 ‘Use Pulse Glow effect’ – Pulse with glow effect.
 ‘Use SVC’ – Smart Values Control is a linear interpolate between 0-1 values.
 ‘Cropping : Crop Height’ – Crop by vertical-align in px.
 ‘Cropping : Crop Width’ – Crop by horizontal-align in px.
 ‘Cropping : Crop LR1’ – Crop in px from the lower right corner (X value).
 ‘Cropping : Crop LR2’ – Crop in px from the lower right corner (Y value).
 ‘Cropping : Crop UR1’ – Crop in px from the upper left corner (X value).
 ‘Cropping : Crop UR2’ – Crop in px from the upper left corner (Y value).
 ‘Cropping : Texture Width’ – Texture width for cropping calculation it derives the ratio.
 ‘Cropping : Texture X’ – Texture X value for cropping calculation.
 ‘Cropping : Texture Y’ – Texture Y value for cropping calculation.
 ‘Panner : Panner Speed X’ – By default, the texture shift uses its speed for X value. It also helps
to change the direction of moving texture.
 ‘Panner : Panner Speed Y’ – By default, the texture shift uses its speed for Y value. It also helps
to change the direction of moving texture.
 ‘Panner : Panner Time’ – The time which uses by panner texture moving/shifting.
 ‘Pulse : Lerp’ – Linear interpolation pulse instead of mixing channels.
 ‘Pulse : Lerp Glow’ – Glow intensity value of the pulse effect.
 ‘Pulse : Max Offset’ – Pulse glow offset which shifts by time.
 ‘Pulse : Min Offset’ – Pulse glow offset which shifts by time.
 ‘Pulse : Time’ – Time for the delay between pulse glow effect.
 ‘Cloud Panner : Change Scale’ – Set the UV scale of the cloud texture.
 ‘Cloud Panner : Change Texture’ – Set custom cloud/noise texture for the Panner. Gives map slot
to change cloud texture.
 ‘Cloud Panner : Channel Map’ – Choose index for RGBA map to switch channel of map
(0 – red , 1 – green, 2 – blue, 3 – alpha).
 ‘Cloud Panner : Glow Alpha’ – The intensity of the glow alpha channel.
 ‘Cloud Panner : Glow Offset’ – Glow offset which shifts by time.
 ‘Cloud Panner : Glow Time’ – Time for the delay between glow effect.
 ‘Cloud Panner : Modify Cloud Levels’ – Modify the Cloud panner map by the linear interpolation
with 3 values(High, Medium, Low). Attention huge performance cost, it should be used
within reason.

19
 ‘Cloud Panner : Modify Settings’ – It allows for modifying the speed and direction of the Panner.
 ‘Cloud Panner : Separated UV’ – Allows editing U and V values in separated values.
 ‘Cloud Panner : Enable glow’ – Will add glow/fade by time effect for the cloud panner.

11. Configure Cavity


Cavity uses to scale the grazing angle specular contribution and also scale the diffuse.
 ‘Invert Map’ – Allows inverting texture map values.
 ‘Use 3 Point Values Control' – Remaps 0-1 values by linearly interpolation through 3 new values.
 ‘Use Cavity Power' – The map channel will be multiplied by self X value times.
 ‘Use Cavity SVC' – Smart Values Control is a linear interpolate between 0-1 values.
 ‘Modify Cavity SVC’ – By default, SVC uses values '0.9' for white and '0.1' for black. This
checkbox will give the ability to modify those values.
 ‘Modify Value' – Simply multiply the Cavity map by value.
 ‘Use Fresnel Lerp with Cavity' – Enable the correction of a Cavity lerp with a Fresnel map.

12. UV Scale Control


Firstly change parent master material to ‘MM_EP_MinimumPBR+Parameters’ or create a new one. It also
comes in all other master materials, besides ‘MM_EP_MinimumPBR’.
Now you need to tick the ‘Modify UV Settings’ in the Main settings of instance and go to the
‘UV Settings' section:

Base UVs Setup

 ‘Use Tri-Planar Mapping’ – Tri-planar mapping is projecting texture by XYZ coordinates with
the computation of the model scale.
 ‘Each Map UV settings’ – Allows modifying each texture map UV scale with its own parameters
setup.
 ‘Enable World Space UVs’ – Use world space UV like a world-alignment UV texturing or Tri-
Planar mapping projection.
 ‘UV split/separated control' – Allows editing U and V values as split separated values.
 ‘-World Space- Tile Value' – UV tile value for world space.
 ‘-World Space- Use Horizontal/Vertical' – Use to switch the horizontal/vertical spaces.
 ‘-World Space- Use X or Y' – Use to switch the X/Y (Left/Right) spaces.

Tri-Planar Projection

 ‘-[Tri-Planar Mapping] Blend Sharpness' – Blend contrast value between tri-planar projection
sides.
 ‘-[Tri-Planar Mapping] Modify Offset' – Modify offset of X Y Z values for tri-planar projection.

20
 ‘-[Tri-Planar Mapping] Modify Tile' – Modify UV tile scale for tri-planar projection.
 ‘-[Tri-Planar Mapping] Use Local Space' – It will use local projection instead of world projection.
 ‘-[Tri-Planar Mapping] Use Six Sides' – Uses mirrored X Y Z values for correct sides projection.

Default Layer UV Setup


To enable the editing of UV for a specific texture map you should tick [Custom UV] map with the
corresponding name under the 'UV Settings' tab. [All Maps] prefix will affect UV settings to all texture
maps in the material. After enabling [Custom UV] for the corresponding map, the following settings
will appear:

 ‘UV Pan' – Allows shift UV of the texture by coordinate values.


 ‘UV Rotate' – Allows rotating UV of the texture by values.
 ‘UV Scale' – Allows scaling UV of the texture by values.
 ‘Global UV' – The global value that uses for scaling U and V at the same time.
 ‘U Tile' – The U value used by UV scaling.
 ‘V Tile' – The V value used by UV scaling.
 ‘X Coord' – The U value used for shifting UV.
 ‘Y Coord' – The V value used for shifting UV.
 ‘Rotate Value' – The value used for the rotate of UV coordinates.

Note: Please do not enable UV edit mode if you do not intend to change it since any UV scaling affects
performance and uses more instructions.

13. Configure Opacity


Firstly, go to the 'Details' -> 'General' -> 'Material Property Override' tab inside an instance. You have the
list with different blend modes. Change type to 'Translucent' for example. Now you can control the
opacity from 'Opacity Settings' and 'Subsurface settings' tabs.

 ‘Invert Map’ – Allows inverting Opacity mask values.


 ‘Modify Value' – Simply multiply the Opacity map by value.
 ‘Use Alpha Texture Mask’ – Get an Alpha channel from Color Map/Albedo for opacity.
 ‘Use Opacity SVC’ – Smart Values Control is a linear interpolate between 0-1 values.
 ‘Use Pack Map’ – Get channel from Pack Map for opacity.

21

You might also like