The IOR parameter (Index of Refraction) defines the material's Fresnel reflectivity and is by default the angular function used. Effectively the IOR will define the balance between reflections on surfaces facing the viewer and on surface edges. You can see the reflection intensity remains unchanged, but the reflection intensity on the front side changes a lot.
Specular IOR with Transmission
The default value of 1.0 is the refractive index of a vacuum, i.e., an object with IOR of 1.0 in empty space will not refract any rays. In simple terms, 1.0 means 'no refraction'. The standard_surface shader assumes that any geometry has outward-facing normals, that objects are embedded in the air (IOR 1.0) and that there are no overlapping surfaces.
When rendering refractive surfaces, it is very important that the normals of the geometry face in the right direction. In the example below (left), you can see the difference between normals that are facing in the right direction (outward), versus those that are facing inwards (incorrect). This is especially important when rendering surfaces with double-sided thickness, such as glass. However, with air bubbles in glass (below center), the reverse is true. The bubble geometry normals should be reversed and the bubbles should be combined with the glass geometry. Normal direction is equally important when rendering single-sided surfaces such as a car windscreen (right).
Normals pointing outward (correct). Rollover image to view normals pointing inward (incorrect).
Air bubbles in glass: Normals should point inward. Rollover image to view normals pointing outward (incorrect).
Windscreen model (single sided). Rollover image to view normals pointing inward (incorrect).
If you see any black where there should be refraction, you may not have a high enough transmission_ray_depth value (found in the ray_depth section in the render settings). The default value is eight, which is sufficient for most cases.
Connect a normal map here (usually exported from Mudbox or ZBrush).
Normal mapping works by replacing the interpolated surface normal by the one evaluated from an RGB texture, where each channel (Red, Green, Blue) corresponds to the X, Y and Z coordinates of the surface normal. It can be faster than bump mapping since bump mapping requires evaluating the shader underneath at least three times.
The tangent map. Together with the shading normal, it defines the tangent coordinate system that the input vector applies to. If available from your sculpting tool, you should connect here the tangent map that the normal map relies on. If 0, the shader attempts the following actions to build the frame:
- Look for vector user data named "tangent" and "bitangent."
- Use the UV derivatives.
- Build its own local frame.
The shader works in tangent space only. If your tangent map was exported in either world or object space, you could instead use the more generic space_transform shader.
The amount of diffuse light received from indirect sources only.
Indirect_diffuse: 0 (default) creates a more two-dimensional looking toon shading effect.
The amount of specularity received from indirect sources only. Values other than 1.0 will cause the materials to not preserve energy, and global illumination may not converge.
Choose the component(s) affected by bump:
When adding bump to the Edge, you should also change the Edge Detection to Shading Normal.
The toon shader is energy conserving by default. If this is disabled, the Toon shader simply adds base, specular, and transmission. Care should be taken when disabling this option as it will affect indirect illumination with the toon shader.
Edge detection can be controlled using a
STRING type user data called Toon ID. Otherwise, the detected edges will be driven by the object's own name as a toon-specific ID. This allows for grouping of objects, where Toon ID specifies which objects belong together regarding edge detection.