So I've been analyzing the game's engine ever since the game launched, and have made quite a few surprising discoveries, particularly with respect to how modern the rendering pipeline is compared to other Nintendo games. With the sheer amount of details there are to discuss, I felt that this topic needed its own thread.

Mario Odyssey doesn't just look good because of its art and animations (though that certainly takes it to another level), there is quite a lot happening under the hood, and this thread will be used to uncover what's going on behind the scenes.

Since someone has already started a Twitter thread providing evidence of their findings, I figured that linking those tweets to this thread would be a good place to start, as I have contributed to the Twitter thread with my own findings as well.

























So as a summary of the important features:

- Game uses PBR (with real Fresnel) for materials
- Cubemaps + IBL for reflections, even splashes
- Displacement mapping for particle system
- Ice crystals truly refract, everything else cheats
- BRDF lighting model with depth buffer
- Lots of normal mapping tricks to fake effects

More details regarding the features of the engine are forthcoming. If you'd like to share your findings here as well, you're welcome to do so.

Update:















UPDATE #2

By brainchild Go To PostAlright, so after many light probe and light bounce tests (conducted by measuring light falloff, color comparisons between adjacent materials, changes in ambient color within a given space, etc.) I'm pretty confident in saying that this game definitely uses global illumination. However, I don't think any light goes beyond a tertiary bounce, as far as I can tell.

My best guess as to how they do it would be spherical harmonics simply because of how localized the radiosity is.

I posted some of my experiments on Twitter:















It's a miracle that this game runs at 60fps!


By brainchild Go To PostIf anyone would like to know more about Odyssey's lighting model (BSDF, which encompasses BRDF and BTDF), I highly recommend these educational videos on the topic.





Clear, concise, and to the point.

UPDATE #3: Term Definitions

Here are some definitions for the more technical terms used in the analysis.

PBR = Physically based rendering. This is a 3D graphics engine rendering pipeline. This allows developers to have all of the materials (surfaces of the objects in the game) to behave as they would in real life in terms of light interacting with it. Before PBR, developers would have to design each texture map in a way that would conform to their understanding of how a texture should look under certain lighting conditions, manually. This was a painstakingly laborious process because if you wanted a variety of surfaces in a game with dynamic lighting conditions, you'd have to have artists and programmers working together to get individual textures to look right. With PBR, you define parameters for materials, and they dynamically change with lighting conditions, accurately (glass looks and reflects like glass, metal looks and reflects like metal, cotton looks and diffuses like cotton, etc).

- Fresnel. The Fresnel (pronounced 'fruh-NELL') coefficient is a factor based on real world light physics that's used in 3D graphics rendering to help determine the reflectivity of materials. At grazing angles (where light is nearly parallel to the surface it's 'grazing', from the perspective of the observer) all materials achieve a reflectivity of 100% (though clarity of this reflectivity can be impeded if a surface is particularly rough). At this angle, the light source and whatever color information it's carrying can be seen as a specular reflection (mirror-like image) as opposed to diffused reflection (light that has been evenly spread out in all directions).

- Cubemaps. 6 textures images that are combined to represent a 3 dimensional space in all directions (up, down, left, right, forward, back).

- IBL = Image-based lighting. This lighting technique uses an omnidirectional image that is normally acquired by recording said image from an omnidirectional camera in the real world and then mapping it onto a spherical environment in a 3D graphics engine. Then, the real world's lighting information can be calculated from the image and that data can be used to Illuminate the game. However, an alternative to using a real world HDRI omnidirectional image is to use a cubemap of the environment. It won't be as realistic as a real HDRI image if the cubemap's textures were generated from 3D graphics, but it'll still allow to store data needed for any materials that may need to produce reflections.

- Displacement Mapping. Also know as vertex displacement, this technique combines polygon meshes with invisible surfaces known as displacement maps, which define how the original polygon meshes should transform their geometry. The logistics of this process relies on information stored in heightmaps, which store variations in surface elevation data.

- Refraction. Light rays pass from one medium to another (air, water, ice, glass, etc.), resulting in a change in direction of its waveform. The effect of this result is that images that you see pass from one medium to another appear distort, or light patterns change in color.

- BRDF = Bi-Directional Reflectance Distribution Function. This lighting model determines how effectively light can reflect from a surface (strongly, weakly). Related models determine the effectiveness of light's other interactions with materials, like transmitting through a material (BTDF) or scattering inside of a material (BSSDF).

- Normal Mapping. A texture mapping technique using shaders to give the illusion of depth to an image, without needed to use extra geometry.

- Volumetric Lighting. When light rays are contrasted with shade in an alternating or mixed pattern, they appear as shafts. Lots of games fake this, but when a game allows light shafts to interact with geometry and transform accordingly, this is called Volumetric Lighting, as the light appears to have volume.

- Emissive materials. Materials that provide their own light source, usually as an area light (light source formed from the shape of the object itself).

- Global Illumination. Also known as diffuse interreflection, this technique (using various methods and levels of accuracy, like lighting probing with spherical harmonics) allows 3D games to approximate a real world phenomenon where light will bounce from surface to surface, changing colors as it bounces along different surfaces and mixing those new colors with the colors of the surfaces it bounces onto next.

- 3D Caustics. Highly refracted light visible within a 3D space.
Top