Materials for Worlds

For an ideal introduction I would recommend watching my video on the topic of materials in my Create Your First VRChat World series or reading its respective script.

Using one of the 4 PBR shaders listed on the original page will increase visual quality, and also offer many additional features including baked specular lighting! This will allow specular highlights to appear with baked lights, which is not possible when using the standard shader.

Height (AKA displacement) map

This texture insets or extrudes different parts of the material.

In Unity you should typically set this pretty low or else looking at the material at an angle will ruin the effect, which is especially noticeable in VR.

These maps are more computationally expensive than all the others (Oculus' documentation advises not to use them at all because of this). They can look great in certain circumstances but if not necessary then they should be avoided.

Originally posted by docs.unity3d.com:

“From left to right in the above image: 1. A rocky wall material with albedo assigned, but no normalmap or heightmap. 2. The normal assigned. Lighting is modified on the surface, but rocks do not occlude each other. 3. The final effect with normalmap and heightmap assigned. The rocks appear to protrude out from the surface, and nearer rocks seem to occlude rocks behind them.”

Displacement maps are calculated using parallax mapping in Unity. This is a comparatively low-performance real-time approximation but also the not incredibly accurate, and the illusion breaks at intense angles. Using shaders like Mochie's standard allow you to control how many "steps" the parallax mapping has.

Secondary Maps (Detail Maps) & Detail Mask
Used for extra detail or imperfections, such as cracks or scratches in a surface or the tiny pores of skin. Originally posted by docs.unity3d.com:
This character has a skin texture map, but no detail texture yet. We will add skin pores as a detail texture.


The end result, the character now has subtle skin pore detail across her skin, at a much higher resolution than the base Albedo or Normal map layer would have allowed.


Detail textures can have a subtle but striking effect on the way light hits a surface. This is the same character in a different lighting context. You can find many separate surface imperfection maps.

Thickness map

Used for subsurface scattering (SSS), to simulate when light passes through a material. A great example of when to use it is for skin, leaves or cloth.

You can generate this map by inverting the normals and baking ambient occlusion in Blender.

You will need a custom shader to apply it, like Silent's photorealistic SSS shader.

You may also want to use custom shaders for particular effects, like a water shader or a faked volumetric lighting shader to make a light source really pop.


Revision #4
Created 7 March 2022 21:28:28 by Iconoclass
Updated 17 May 2024 06:38:58 by Iconoclass