acesFilmicToneMapping
A post-processing node that uses the industry-standard ACES (Academy Color Encoding System) curve to elegantly 'compress' High Dynamic Range (HDR) colors into the Low Dynamic Range (LDR) supported by displays. Its primary purpose is to prevent blown-out highlights while producing rich, cinematic colors and pleasing transitions.
Core Advantages
Effortlessly imparts a film-like visual quality to renders without needing deep knowledge of color science. It handles highlights with exceptional grace, preserving detail in bright areas and avoiding harsh 'clipped white' regions, significantly enhancing realism and artistic appeal.
Common Uses
As the final step in photorealistic rendering (e.g., architecture, product visualization) to ensure final output quality.
Managing high-contrast lighting scenarios (e.g., moving between indoors and outdoors, cyberpunk cityscapes) to balance bright and dark details.
Providing a stable and pleasing color foundation for high-quality stylized art (e.g., animated films, stylized games).
Used in conjunction with HDR effects like Bloom, serving as the basis for their correct display on screen.
How to adjust
Adjust the overall image brightness by modifying the `exposure` input value. This value acts like a camera's exposure compensation: values greater than 1.0 brighten the image, making colors more saturated and energetic; values less than 1.0 darken it, enhancing contrast and mood. An advanced technique is to dynamically animate the `exposure` value over time to simulate the human eye's auto-exposure adaptation when moving from a dark to a bright environment.
Code Examples
1 // Apply ACES Filmic tone mapping for a cinematic look
2 vec3 ldrColor = acesFilmicToneMapping( hdrColor, exposure );