Light and Shadow Linking
With light linking, lights can be set to affect only specific objects in the scene. Shadow linking additionally gives control over which objects acts as shadow blockers for a light. (ba3f26fac5)
This adds more artistic control for lighting by breaking the laws of physics. For example the environment and characters in a shot might have different light setups. A character could have a dedicated linked rim light to make it stand out, and shadow linking could be used to ensure no objects from the environment block it.
- Select the light or emissive mesh object
- Go to the Object properties, Shading panel
- Create a new light or shadowing linking collection
- Drag & drop objects or collection from the outliner
Links can also be set up in the 3D viewport, with the Link Data operator (Ctrl+L). The active light object is linked to selected receiver or blocker object.
A light or shadow linking collection can be assigned to and shared between multiple light objects. Note that while a scene collection can be directly assigned as a light or shadow linking collection, it is recommended to instead create a dedicated collection and link any scene collection inside it instead. This way it's easy to include or exclude additional objects without affecting the scene layout.
Light receiver objects can be set to be either included or excluded. The behavior is as follows:
- If only included objects are specified, the light only affects those objects.
- If only excluded objects are specified, the light affects all objects in the scene except those specified.
- If both included and excluded objects are specified, the light affects only included objects minus the excluded objects. This can be used to for example set a character collection to be included, and then exclude specific objects part of the character.
The same logic applies to shadow blocker objects.
Sampling for light linking is most efficient with the light tree enabled, where a specialized acceleration structure is built for light linking.
When using shadow linking, renders can be slower and trace additional rays, as direct and indirect lighting take different paths.
In a future version we plan to support linking to the world lighting, and add a more convenient user interface to view and manage all light links in a scene.
Path Guiding now works on glossy surfaces in addition to diffuse surfaces. This can significantly reduce noise on glossy surfaces. (PR #107782)
Multiple Scattering GGX
The Multiscattering GGX implementation was replaced by an approximation based on "Practical multiple scattering compensation for microfacet models" by Emmanuel Turquin. (888bdc1419)
- This removes the performance and noise disadvantage that used to be associated with Multiscattering GGX, making it a safe default pick.
- While the directional distribution is no longer theoretically ideal, which can lead to slight differences in rendered images, the overall effect of the multiscattering correction (preserving energy, avoiding darkening at high roughness, and increasing saturation at high roughness) still applies.
- For highly anisotropic materials, the compensation might not be perfect. This is a limitation of the currently known approximation methods.
Principled Hair BSDF
A new variant called "Huang" is added, based on the paper A Microfacet-based Hair Scattering Model by Weizhen Huang, Matthias B. Hullin and Johannes Hanika (PR #105600). The previous Principled Hair BSDF is now the "Chiang" variant.
- Supports elliptical cross-sections, adding more realism as human hairs are usually elliptical. The orientation of the cross-section is aligned with the curve normal, which can be adjusted using geometry nodes. Default is minimal twist.
- This is a far-field model, as opposed to the near-field Principled Hair BSDF model. The hair is expected to be less noisy, but lower roughness values takes longer to render due to numerical integration along the hair width. The hair also appears to be flat when viewed up-close.
- Gives nicer focused reflection when viewed against the light.
For more detailed comparisons, please refer to the original paper.
Open Shading Language
Most Cycles-specific microfacet closures were removed since they are redundant now that Cycles implements the generic
microfacet() closure of the OSL standard. (888bdc1419)
- Specifically, the
microfacet()closure supports the distributions
0for pure reflection,
1for pure refraction, and
2for both (based on dielectric Fresnel according to the specified IOR).
- Additionally, the three MaterialX microfacet closures
generalized_schlick_bsdf()are provided. These only support
- Two Cycles-specific closures remain, but they are for internal use and should not be relied upon by user-created OSL shaders.