Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

Eye Perfection

Master Materials for Unreal Engine 4

Documentation
Anton Voroncov, 2019

www.artstation.com/a-modick
antonvmarketplace@gmail.com
Content
Introduction ----------------------------------------------------------------------------------------------------------3
1. Assortment of materials -----------------------------------------------------------------------------------------4
2. Setting up your Instance ----------------------------------------------------------------------------------------8
3. Packed Map pipeline setup -------------------------------------------------------------------------------------10
4. Albedo -------------------------------------------------------------------------------------------------------------12
4. Base Color ---------------------------------------------------------------------------------------------------------12
5. Ambient Occlusion -----------------------------------------------------------------------------------------------13
5. Roughness --------------------------------------------------------------------------------------------------------13
5. Metallic ------------------------------------------------------------------------------------------------------------13
5. Specular -----------------------------------------------------------------------------------------------------------13
6. Normal | Detail ---------------------------------------------------------------------------------------------------14
7. Configure Bump --------------------------------------------------------------------------------------------------15
8. Configure Parallax Occlusion Mapping ------------------------------------------------------------------------16
9. Displacement with Distance-Based Tessellation ------------------------------------------------------------16
10. Setup Emissive --------------------------------------------------------------------------------------------------18
11. Configure Cavity ------------------------------------------------------------------------------------------------20
12. UV Scale Control ------------------------------------------------------------------------------------------------20
13. Configure Opacity -----------------------------------------------------------------------------------------------21
14. Configure Subsurface ------------------------------------------------------------------------------------------22
15. Setup of Glass Material ----------------------------------------------------------------------------------------22
16. Setup of Vertex Paint - Main Setup --------------------------------------------------------------------------22
17. Setup of Vertex Paint – Default -------------------------------------------------------------------------------23
18. Setup of Vertex Paint – Water --------------------------------------------------------------------------------23
19. Setup of Vertex Paint - Grunge Wall -------------------------------------------------------------------------23
20. How to Migrate -------------------------------------------------------------------------------------------------25
21. Special Thanks --------------------------------------------------------------------------------------------------25

2
Introduction
Thank you for checking out my master materials pack, I hope it’s of good use for you.

This documentation should include everything you need to know to use master materials. If you
have any questions, found a bug or ran to any other issue with it, please feel free contact me. And
please, before leaving a bad rating, tell me how I can improve this pack.
Please also check the Discord server for help:
https://discord.gg/r69DAta

If you’re like with the EP master materials pack, please help me by leaving a good rating on the
marketplace page.

Also, I’m always interested in your suggestions and wishes for future updates as I’m continuously
working on improving this package. Leave a comment under the product info or write a mail to:
http://mailto:antonvmarketplace@gmail.com

Thank you for buying / your interest in this master materials package!

Cheers,
A-Modick (Anton V)

3
1. Assortment of materials
Eye Perfection Master Materials are divided into separate presets, each designed for specific
situations. For convenience, the general settings and parameters have the same variable names -
this is done to easily switch the master materials among themselves, without losing instances data.
Simply duplicate material instances for unique looks while maintaining a common, base material.
Perfect for a standardized asset pipeline and artist-friendly controls.

Inside the folder ‘ ’ -> ‘ ’ you’ll find several Master Materials:

 MM_EP_MinimumPBR
The simple and best solution for models by default. In this Master Material, it takes
advantage of using minimum functions and presets. It's designed for models with ready
texture atlases and does not have any unwanted functions. Simple parameters like multiply
values by default and changing texture types from divided and packed.

Note: The Packed map explained in another section here.

 MM_EP_MinimumPBR+Parameters
The same, as the previous one, but with exposed the most important parameters. UV
editing with more exposed settings for control each PBR map. Let's say you want shift
‘Roughness’ texture map in the X direction - UV control will give you the ability to shift,
rotate and scale any maps you want. There are a variety of controls to allow you to easily
edit and maintain each aspect of the material.

 MM_EP_GlassPBR
Simple and ready setup for glass material. Have a fake cubemap for reflection.

 MM_EP_MinimumPBR+Parameters+Bump+POM
Another one with added Parallax Occlusion Mapping and Bump Mapping for depth effect. If
you wanna make brick walls more relief, bulk and real - Bump or POM is what exactly you
need!

 MM_EP_FullPBR
Fully 'armed' master material with all features. Frequently needed functions like Emissive
with masking & distance-based Tessellation. Emissive great suited for neon signs and lamps.
Tessellation for snowy/dirt roads with real height depth by polygons.

 MM_EP_FullPBR+VertexPaintDefault
Blends three materials together based on vertex paint. It's useful for painting let say dirt on
the floor or details on the wall by Vertex Paint. Preset has all PBR setup & layered R-G-B
vertex paint with the ability to modify fall-off mask between layers. Also, it has a blend-
mask for layers. You can easily blend three materials in one by painting mask for them with a
vertex brush on the wall for layers effect.

Note: The Vertex Paint presets was separated to different master materials because of a huge
count of instructions will slow down material instances preview. Technically it's not down the
performance of game but low FPS in editor preview is unpleasant.

4
 MM_EP_FullPBR+VertexPaintWater
In this Master Material, you can paint water puddles around vertex paint layers with a blend
mask. A great example of how to add more story to your environment.

 MM_EP_FullPBR+VertexPaintGrunge
If you make your environment with modular models and want to break the repeating pattern
by adding something unique to the repeating wall material - the grunge wall paint with
cracks is helping you. Mix three materials: brick wall + plaster + paint with this master
material. It will give an amazing detail effect and story into your environment.

Note: To add cracks manually use 'alpha = 0' in the color settings of your vertex brush.

The folder ‘ ’ -> ‘ ’ -> ‘ ’ includes all functions used by these Master
Materials. Functions are divided into different folders by logical affiliation.
Some notable functions included are:
 MF_EP_NormalOptimization
Function multiplies the R G channel of the normal map to increase visual strength & replace
the blue channel map to a constant value - it will reduce normal map cost.

 MF_EP_NormalGeneration
Allows for generating a normal map from the heightmap or height channel.

 MF_EP_NormalBlends
Blends detail normal map to the already existing normal map of a material.

 MF_EP_Additional_NormalBlend2Layers
Blends three normal maps together.

 MF_EP_UVCropping
Making cropped textures for use in Emissive and other materials.

 MF_EP_UVFullControl
Allows for easy scaling, rotating and shifting of the UVs.

 MF_EP_UVMinimumControl
The same as the previous one but designed for minimum PBR master material.

 MF_EP_UVCoordSwitch
Used by MF_EP_UVFullControl to control scale shift and rotation.

 MF_EP_BumpPOMSwitchUVs
Used by MF_EP_UVFullControl to switch UV from between Bump & POM.

5
 MF_EP_TriplanarMapping
Takes the UV and applies it to an object from three directions using the world space
position.

 MF_EP_BlendByDistance
Blends material layers by distance.

 MF_EP_DistanceFade
Used by MF_EP_BlendByDistance to fade from one material to another by distance.

 MF_EP_InputChannelSwitch
Allows to switch between RGBA channels by the index input value.

 MF_EP_ModifyMask
Used to modify grayscale input map values: lerp, clamp, invert, multiply & 3 point values
control.

 MF_EP_SpecularCorrection
To give a better specular result with Fresnel area only visible when you’re facing the sun or a
light source (it’s more realistic).

 MF_EP_SubSurfaceOpacity
Used by MF_EP_OpacityMap to control opacity map with SubSurface if it turns on.

 MF_EP_ColorBlendAlbedo
It allows you to mix colors through the RGBA mask over the albedo map.

 MF_EP_ColorAdjustmentAlbedo
Additional control over the Albedo/BaseColor with Hue Shift, Cheap Contrast, Desaturation,
and S-curve functions.

 MF_EP_CoverFade
A function that contains variables of near and far distance presets used by the Cover system.

 MF_EP_CoverLogic
Calculating distance for blend normals inside the cover system.

 MF_EP_MossCover
The additional layer used by the Cover system, blend materials.

 MF_EP_EffectPulseGlow
Pulse glow effect used by Emissive. It changes the brightness by time.

6
 MF_EP_EffectPannerTime
Panner is shifting texture by time and speed, it used by Emissive.

 MF_EP_EffectPannerCloud
Moving effect used by Emissive. It moves texture above the Emissive layer by time.

 MF_EP_VertexGrungeDefault
Used by MF_EP_VertexPaint_Grunge to blends 3 inputs together with a fall-off mask in the
vertex channel.

 MF_EP_VertexMMask
Calculate the alpha blend mask for Vertex Paint.

Note: Not all material functions described here, because pack also includes the same copies of functions
with changes for Vertex Paint channels with specific prefix _R _G _B _VP.

Note: Remember most all of these features being on can incur a rendering cost. Only use what you think
is a necessity to keep FPS high. Choosing which ones to disable to reduce the number of instructions and
draw calls on each asset and the amount of textures used in the scene.

Lightmap bakes setup


Also many of the meshes in package use higher texture maps for cleaner lightmap bakes. You can
adjust this globally by changing the scenes lightmap settings under Build:

Texture compression and sizes


To prevent the scene from going over the texture
budget of most computers better to change
texture size inside assets if you plan to use
existing textures in the final game product.
This can be done on a per texture basis in the
options. Simply open the texture options and you
will have the window displayed below. In this
example, the original texture was 2048px and has
been scaled down to 1024px. Notice the area
highlighted in pink is the original imported

7
texture size, how big it is being displayed in this window, and how big it is shown in the game. The
area highlighted in orange is the user input for maximum texture size. You can easily scale some of
these down by typing in the desired size. Also, it can be restored to the default by simply click on the
reset to default yellow arrow on the right of the highlighted orange area.

2. Setting up your Instance


Simply replace your existing material instance with changing of parent material class. Replace it by
MM_EP_MinimumPBR

You can also create a new one by Right Click on Master Material and Create a Material Instance,
then apply to the mesh.

8
Input basic textures to material instance.

Note: As options are enabled more texture inputs will appear.

To add different slots for each map instead pack map Tick either “Separate Pack”.

For this example, I only need Normal, AO and Roughness and have ticked the required boxes. From
here I have added my “Pack Map” texture that is now available and can choose what channels the
information is on and manipulate it to my liking. Also, I have enabled SVC (lerp between 0-1 values)
inside roughness settings.

If you want to use value instead of a texture map you need to untick 'use map' and tick the checkbox
'modify value' then set a value.

9
3. Packed Map pipeline setup
What is a Pack Map?
A "Pack Map" sometimes known as "Merge map", "RMA Texture" or "Combination Map" refers to a
single texture that holds 3-4 sets of input information (grayscale maps). Usually split into the RGBA
channels which are masked off in a material, for example:

In this Master Material it takes advantage of using ‘pack map’ and allows the user to choose what
channels are used for what.

The "Pack Map" can contain within it any or all of the following information:
 Ambient Occlusion,
 Roughness,
 Metallic,
 Opacity,
 Heightmap,
 Dispacement,
 Emissive,
 ColorMask,
 BlendMask.
These can be in any of the RGBA channels as channel parameters that can be changed in the material
instance.

10
RGB or RGBA
Be aware that the RGBA texture map with alpha has a cost of 2 texture maps in memory. In other
words, if we use DXT5 compression and only one RGBA texture we will have 4 map channels & fewer
requests to 'texture assets'. But if we will use DXT1 compression in two RGB texture maps we will have
6 map channels and the same memory cost. For example:

RGB DXT1 2048*2048px = 2731kb


RGBA DXT5 2048*2048px = 5461kb
In this situation, I will prefer two DXT1 maps without alpha channel with more channels space for
maps (5462kb).
Choose what better suits your current project.

Texture naming
To better understand what each map includes I just add the first two letters in the ending suffix
name of the texture map. The sequence defines the location and letters R+G+B+A. For example:

T_WoodCoal01a_AORH – (R) AmbientOcclusion, (G) Roughness, (B) Heightmap.


T_WallMetal01b_HRM – (R) Heightmap, (G) Roughness, (B) Metallic.
T_WoodCoal01a_E – (R) Emissive, (G) empty, (B) empty.

UE4 engine does PBR calculations in linear color space. In this color space, all values are computed in
a 0 to 1 range, where 0 is black and 1 is white. Monitors don’t display colors in this way though,
because our eyes tend to have greater sensitivity to dark values than light values. To compensate for
this, most monitors use sRGB color space, which raises input values to around the power of 2.2. This
makes them darker and skews the 0 to 1 range to display more dark values than light values. Since
textures are usually created in sRGB color space this works well for textures that visually show up in
the game, such as base color, but can cause issues with textures that are supposed to represent
numerical values, such as a Roughness /Ambient Occlusion/Metallic masks. UE4 uses sRGB by default,
we must convert them in our ‘Pack Map’ to linear color space, this can be done by unticking sRGB
checkbox inside texture parameters or just changing compression type to Masks.
Be sure to set Masks compression in 'Pack map'.

If you do not fully understand the concept of 'Pack map' you can read more info here.

11
4. Albedo | Base Color
Setup Base Color
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’. Untick the checkbox 'Use Color Map'
and tick ‘Modify Color Value’ under the 'Albedo Settings' section. Now you can set a color for the base
color.

Base Albedo Adjustment

 ‘Adjustment : Use Contrast’ - Function boosts the contrast of an input by remapping the high
end of the histogram to a lower value, and the low end of the histogram to a higher one.
 ‘Adjustment : Use Desaturation’ - Desaturates input, or converts the colors into shades of gray,
based a certain percentage.
 ‘Adjustment : Use Hue Shift’ - Function offsets the current hue value of an input color by a given
percentage. This percentage is 1-based and centered around the color wheel. For instance, a
shift of 0.5 (50%) will shift to a complimentary hue, or the hue on the opposite side of the
color wheel. A shift of 1.0 (100%) gives no change, as this is the equivalent of rotating
completely around the color wheel.
 ‘Adjustment : Use SCurve’ – Function boosts contrast of an image by interpolating the values of
each channel values of an image along an S-curve.
 ‘Use Adjustment Before Color Blend’ - The switch which applies all adjustment before or after
color blend.
 ‘Use Fuzzy Shading’ - This function emulates a surface similar to velvet or moss and is similar to
a Fresnel calculation.

Color Blend
Turn on a checkbox 'Use Color Map' and go to the 'Albedo Settings' section.

 ‘Use Color Blending’ - Paints over the base color with a new one color using linear
interpolation.
 ‘Color Blend: Painting Value’ – Set lerp value for a painting.
 ‘Color Blend: Use Color Painting Mask’ – Set mask for the color blend painting.
 ‘Color Blend: Use Multiply’ – Use multiply instead lerp in the color blend map.
 ‘Color Blend: Invert Alpha Mask’ – Allows inverting blend mask.
 ‘Color Blend: Modify Painting Mask Value’ – Use the 'power' expression to modify the blend mask
value.
 ‘Color Blend: Use 3 Color Technique’ – Giving the ability to blend three colors instead of one with
lerp using the mask . You can set up each color. Use the RGBA mask (R - first color, G -
second color, B - third color and Alpha for non-color area).
 ‘Color Blend: 3 Color Technique: Use Blend Main Color’ – Allows setting the main color before 3
color blend. It can be turned to lerp or multiply like a base color blend before.

12
5. Ambient Occlusion | Roughness | Metallic | Specular
All these masks use the same setup for control with little difference.

 ‘Invert Map’ – Allows inverting texture map values.


 ‘Modify Power’ – The map channel will be multiplied by self X value times.
 ‘Use SVC’ – Smart Values Control is a linear interpolate between 0-1 values.
 ‘Use 3 Point Values Control’ – The function takes in a channel map and remaps the values of
each channel across 3 points (white, black, middle). This is similar to applying a Levels
adjustment in Photoshop. It provides full control in that it gives the user the ability to adjust
the interpolation of lights, darks, and grays (gamma).

 ‘Modify Value’ – Simply multiply the current channel map by value.


 ‘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.
 ‘Channel’ – It allows selecting which channel map will be used from the texture map.

13
Note: An option '- Get Specular Channel From Pack' will use 'Pack map' texture for the source of the
channel map for the Specular.

Note: An option 'Use Fresnel For Specular' will allows using the Fresnel area for the better result it visible
only when you face the sun.

Note: If you want to use value instead of a texture map you need to untick 'use map' and tick the
checkbox 'modify value' then set a value.

6. Normal | Detail
Normal Setup
Firstly you need to tick the ‘Use Normal Map №1’ in the Main settings of instance and add the texture
into the ‘Normal Map’ slot, inside group ‘_Texture Maps’.
 ‘Modify Normal Value’ – It allows you to modify the normal map value.
 ‘Optimize Blue Channel’ - Turned by default - UE4 will use BC5 compression which doesn't store
Z component aka blue channel information so that we will replace it by 1 value.
 ‘Modify №1 Blue Channel Value’ – Allows you to set the blue value for the detail normal map.
 ‘Optimize Normal Method’ – If it will be disabled then the normal map will compute a blue
channel by (sqrt = xx+yy) method. Enabled by default for better performance.

Detail Setup
Firstly you need to tick the ‘Use Normal Map №2’ in the Main settings of instance and add the texture
into the ‘Normal Map №2’ slot, inside group ‘_Texture Maps’.

Under the ‘Normal № 2 Settings’


Tick the checkbox 'Control Normal №1 Intensity' & 'Control Normal №2 Intensity' under the ‘Normal № 2
Settings’. Now you can control over detail map intensity and default normal map intensity – this gives
better control of blend between maps.

 ‘Modify Detail Scale’ – Allows


scaling the UV.
 ‘Optimize Blue Channel’ - Turned
by default - UE4 will use BC5
compression which doesn't
store Z component aka blue
channel information so that we will replace it by 1 value.
 ‘Modify №2 Blue Channel Value’ – Allows you to set the blue value for the detail normal map.

14
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
 ‘Mask Channel' – From here you can choose the channel for an opacity map.

14. Configure Subsurface


Subsurface scattering is the term used to describe the lighting phenomenon where light scatters as
it passes through a translucent / semi translucent surface. Unreal Engine 4 (UE4) offers a
special Shading Model called Subsurface that is used specifically for materials that need this
interaction like skin or wax. Firstly, go to the 'Details' -> 'General' -> 'Material Property Override' tab inside
an instance and change the 'shading model' to 'subsurface'.

 ‘Mix Albedo + Subsurface’ – Multiply base color with the subsurface.


 ‘Modify Subsurface Intensity' – Simply multiply the Subsurface map by value.
 ‘Use Alpha Texture Mask’ – Get an Alpha channel from Color Map/Albedo for opacity.
 ‘Opacity Value’ – Affect opacity from the subsurface.
 ‘Opacity Mask Influence’ – Opacity mask influence from subsurface scattering.

15. Setup of Glass Material


The glass material can imitate fake cubemap reflection. Firstly, change parent master material to
‘MM_EP_GlassPBR’ or create a new one. Then go to the ‘Glass Settings’ tab.

 ‘Chromatic Aberration’ – Allows to control the value of chromatic aberration effect.


 ‘Curvature' – Value of Fresnel curvature.
 ‘Reflective Color’ – Color of reflection from curvature edges.
 ‘Refraction’ – Refraction of cubemap amount.
 ‘Translucent Color’ – The main color of the glass.

16. Setup of Vertex Paint - Main Setup


Vertex Paint is divided into three separate types of material, designed for different tasks. Choose
one of the specified material that is more suitable for your current needs. And change parent
material of instances to ( ‘MM_EP_FullPBR+VertexPaintDefault’, ‘MM_EP_FullPBR+VertexPaintWater’,
‘MM_EP_FullPBR+VertexPaintGrunge’) or create a new one. Now go to the ‘Vertex Paint Settings' section.
Materials separated to 3 presets of each RGB layers and have own prefixes. I explain here the base
parameters without prefixes, which are repeated for each of the RGB channels.

 ‘Use Vertex Default’ – Classic preset designed for basic vertex paint blending tasks.
 ‘Use Vertex Water’ – Vertex with water puddles preset designed for wet floor surfaces.
 ‘Use Vertex Grunge Wall’ – Wall preset designed for grunge materials with cracks/mask
between layers, use fall-off blend in vertex paint.
 ‘Modify Blend Vertex Mask Tile’ – Allows to modify the UV tile scale for a blend mask of vertex
paint.
 ‘Modify Overall Vertex Mask Tile’ – Allows to modify the UV tile scale for an overall mask of
vertex paint.

22
 ‘Use Overall Fall-Off Modulation Mask’ – Use the overall mask for all R/G/B vertex channels
instead of using separated masks.
 ‘Blend Vertex Map Channel’ – From here you can choose the channel for a blend mask.
 ‘Modify Mask Tile’ – Allows to modify the UV tile scale for a fall-off mask of vertex paint.
 ‘Modify Sharpness’ – Allows modifying the sharpness in the fall-off mask of vertex paint.
 ‘Use Red Stain’ – Use a stain mask for blend modulation.

17. Setup of Vertex Paint - Default


Actually, all parameters bellow go from all tabs we got before and so that they do not need
explanation. Anyway, you can easily look at examples (Materials/Instances/Examples/VertexPaint)
and figure out how they setup.

Note: All parameters also have a prefix for [R] / [G] / [B] channels.

18. Setup of Vertex Paint - Water


Under the ‘Material Layer – Vertex Water Settings’ tab you will find some settings:

 ‘Wet Map Color’ – Second water color used in fall-off by Fresnel calculation.
 ‘Modify Wet Mask Tile Scale’ – Allows to modify the UV tile scale for a fall-off mask of vertex
paint.
 ‘Modify Water Mask Tile Scale’ – Allows to modify the UV tile scale for a water mask of vertex
paint.
 ‘Use Water Color Fresnel’ – Use Fresnel for realistic water color.
 ‘Use Water Map Roughness Fresnel’ – Use Fresnel for realistic water roughness.
 ‘Use Wave Ripple Effect’ – Use the wave ripple effect for the normal map.
 ‘Use Wet Fall-off Map Roughness Fresnel’ – Use Fresnel for realistic wet fall-off mask roughness.
 ‘Modify Wave Mask Map’ – Use custom waves mask instead of default map.
 ‘Vertex Offset’ – Vertex offset for height normals of vertices.
 ‘Water Map Bias’ – The slope of the water map.
 ‘Water Map Height’ – Height of water map.
 ‘Wave : Modify Mask Scale’ – Allows to modify the UV tile scale for a mask of vertex paint.
 ‘Wave : Modify Mask Speed’ – Allows to modify the speed of the wave mask of vertex paint.
 ‘Wave : Modify Scale’ – Allows to modify the UV tile scale for a wave texture of vertex paint.
 ‘Wave : Modify Time’ – Allows to modify the time of a moving wave texture of vertex paint.
 ‘Wave : Depth’ – Height of the wave map.
 ‘Wet Fall-off Map Height’ – Height of the fall-off (edge of the puddle) map.
 ‘Wet Fall-off Map Offset’ – The offset of the fall-off (edge of the puddle) map.

19. Setup of Vertex Paint - Grunge Wall


Grunge Wall preset uses two layers by default (paint above the plaster) so that the setup of layer 2
equals the main setup.

23
Under the ‘Material Layer – Grunge Wall Vertex Settings’ tab you will find some settings:

 ‘[Grunge Mask] Modify Scale UV’ – Allows to modify the UV tile scale for a grunge mask.
 ‘Add Power For Layer (1/2)’ – Add power depth for a layer, similar to the height depth.
 ‘Invert Grunge Mask’ – Invert grunge mask for the vertex layer.
 ‘Use 3 Point Level Boost’ – Remaps 0-1 values by linearly interpolation through 3 new values.
 ‘Use Height Lerp Blend for first layer’ – This function will replace default lerp by height lerp with
smoother blend control. Turn on will affect performance.
 ‘Use Manual Grunge Control by Alpha Vertex Channel’ – Use Alpha Vertex Channel for subtracting
the second layer grunge mask by manual control.
The better solution will be looking at examples inside the project to fully understand how to work
cracks.

To draw only the cracks through the mask on top of the paint, set the alpha to 0 in the alpha layer of
the brush.

24
20. Migrate Content
To use only master materials or migrate this in another project, you can delete not necessary
example folders with assets:
 Maps
 Instances
 Examples
 PostProcess
Meshes and textures are either engine demo content or created by me for demonstration purposes.
Feel free to use all those assets in your projects with suitable setup.

21. Special Thanks


Special Thanks to:
Anna Sokolova (Aiketero Se) for her support,
Erik Rossik (ErikFOV) for tests,
Ilya Vyuhin (IL) for VR tests,
Michael Gerard (UnrealMike) & Yoeri Vleer (-Luos-) for their tutorials and inspiration.

25

You might also like