CRYENGINE 5.6 Preview - Rendering

#1
Check out some of the rendering advancements that are coming to CRYENGINE 5.6.
We’re getting closer to the release of CRYENGINE 5.6 which includes over 1,000 changes across the engine, giving you more power and making game development quicker and easier. Today we’re speaking to Marcel Schindler, Junior Rendering Engineer, and Shlomi Steinberg, Rendering Engineer, to find out about some of the rendering improvements coming to the engine.

Hey guys! Which feature are you most looking forward to in CRYENGINE 5.6?

Shlomi: We’re really looking forward to the big step forward that comes with our multilayered materials feature which will advance the visual reproduction of metals, and give more artistic control over the creation of a range of materials. This new feature serves as an extension to the well-known microfacet theory commonly used for specular BRDFs in production. Instead of singular surfaces, we now describe materials as a stack of layers of varying thicknesses, each with different optical properties. This allows for greater expression in the material system to model more complicated materials, specifically those materials where single-layered BRDFs would give an inadequate approximation.

The new system extends upon the current single-layered system in a couple of ways. We now describe a material as a series of dielectric (non-conductive, translucent) layers. And we can now set a conductive (metallic) base layer, with special optical properties unique to conductors, in materials. While each of those layers is quite simple, together they give rise to complex appearances in a physically plausible manner. It will be easy, for instance, to model a wet surface by adding a slightly absorptive layer on top, and spatially or temporally varying the thickness of that layer to model a wetter or drier surface.

Image
Where will this feature make a difference in production?

Shlomi: Think about lacquers or polished layers, different kinds of paints, wet and oily surfaces, and so on. For instance, shallow oil films or metallic oxide layers are thin enough that wave-interference effects become apparent. This kind of visual phenomena can be seen in colorful iridescence patterns on soap bubbles, oil streaks floating on top of water, or as the color shifts at different reflection angles on metals due to the oxide layers that naturally form on most metals when exposed to oxygen. Those thin layers are modeled as thin dielectric layers, and our system accurately captures the iridescent visual phenomena. Metals incur an additional degree of complexity, as a conductor also induces a phase-shift on the reflected light wave, which also depends on the polarization of the incident light. This is why conductors require additional optical properties so they can be modeled accurately. Those highly complex interactions are the reason why reproducing the look and feel of metals in production has always been difficult. However, with a multilayered framework, it only requires a pair of simple layers.

How will this technology evolve in the future?

Shlomi: There are some simple improvements to a few aspects of the current implementation that I'd like to make, like better handling of interference on rough surfaces. But I feel the most important focus should be on ease of use and artist friendliness. With greater artistic expression comes greater complexity, particularly with conductive layers. Standard practice in the game and film industry is to express the refractive index of a medium by a value known as "reflectivity." However, that no longer works for conductors that have a complex refractive index. Some remappings exist for metals, like the "reflectivity" and "edge tint" parameters, but they could be more intuitive and they suffer from other problems (see "Fresnel equations considered harmful," in Eurographics Workshop on Material Appearance Modeling 2019.) This is an area of active research, and plenty of working hours are dedicated to ensuring that the artist will not have to suffer by using refractive indices directly. Soon hopefully, a better solution will be developed, in-house, or otherwise.

Marcel, you’ve been working on area lights. How do area lights play a role in photorealistic rendering?

Marcel: To understand area lights, we need to understand that the light sources we traditionally use in real-time rendering are crude simplifications of what's actually happening in real life. Imagine a desk lamp with a light bulb. A light bulb is an object with a certain amount of area and volume, which in turn influences the visual appearance of its environment. Correctly recreating this appearance is computationally very expensive. As a result, in real-time rendering, light sources are often approximated by infinitesimally small points in space. And that's precisely where area lights come into play. This type of light is explicitly modeled as an area with a specific shape, resulting in far more realism than traditional punctual light sources. Area lights deliver a better representation of how light behaves.

Image
How will area lights advance in CRYENGINE 5.6?

Marcel: Our new implementation makes use of pre-computed textures, which will far more accurately calculate and model area lights. It also allows for more flexibility when defining different kinds of light shapes. CRYENGINE 5.6 exposes rectangular and disc shapes in the form of presets, but more shapes can be added in the future. And users can make use of custom, pre-blurred mip-textures to shape the appearance of area lights in the environment and, for example, in volumetric fog.

What should CRYENGINE users be aware of when adding these improved area lights to their projects?

Marcel: As of right now, the area lights are a part of the PointLightComponent, so if you have point lights in your scene, you can easily change them to area lights. However, most of the features from the previous implementation were reworked, so it's advisable to take a look at the parameters in case you were using area lights before. The cvar r_DeferredShadingAreaLights is now obsolete, as area lights are enabled by default. One last thing to note is that since the emitted energy is distributed over the entire area of the light, highlights will appear less bright than their point light counterparts. To match the brightness of highlights, users may thus have to tweak the area light intensity.

How will area lights evolve in the future?

Marcel: There are a couple of improvements I can think of. I think the most important thing for us right now is to integrate area lights consistently with the rest of our lighting system, which means, for example, full support for casting shadows. We might even be able to use real-time ray tracing to achieve realistic looking soft shadows for area lights in the future. Another cool thing I want to look into is a UI-driven process of adding custom light shapes via the Sandbox.

Thanks, guys!

Stay tuned for more interviews with the team ahead of the launch of CRYENGINE 5.6. ICYMI, check out our CRYENGINE 5.6 interview with physics programmer Anton Knyazyev, our preview of the changes coming to the launcher and sandbox and our preview of audio advancements. Which features are you looking forward to most? Let us know here, or via Facebook and Twitter, or join the community and our CRYENGINE development team over on our official CRYENGINE Discord channel. If you find a bug in the engine, please report it directly on GitHub which helps us to process the issue quickly and efficiently.

Are you looking for your next career move? At Crytek, we value diversity and actively encourage people from all kinds of backgrounds and experience levels to apply to our open positions, so join us over at LinkedIn and check out our careers page.

- Your CRYENGINE Team

Re: CRYENGINE 5.6 Preview - Rendering

#2
I can’t wait to try out new materials! But there are a couple of questions. Is Layer Materials a common system for all types of shaders? For example, does this all work with the Glass shader? And I am also very interested in reflections on glossy surfaces, if now in the materials to reduce roughness the reflection will completely blur across the entire surface, but this should work differently, the closer the object to the reflecting surface, the sharper the reflection, the farther the reflection is more blurred. Has it somehow changed?

Who is online

Users browsing this forum: No registered users and 2 guests