Perfect Material
Perfect Material
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.
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.
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.
Emissive Main
Emissive Layers
I will describe only one Emissive layer because layers have the same setup.
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.
‘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.
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.
21