This tutorial explains how to create complex 3D shapes inside volumetric shaders. Signed Distance Functions (often referred to as Fields) are mathematical tools used to describe geometrical shapes such as spheres, boxes and tori. Compared to traditional 3D models made out of triangles, signed distance functions provide virtually infinite resolution, and are amenable to geometric manipulation. The following animation, from formulanimation tutorial :: making a snail, shows how a snail can be created using simpler shapes:
This third instalment on Volumetric Rendering will explain how to shade volumes in a realistic fashion. This essential step is what gives three-dimensionality to the flat, unlit shapes that have been generated so far with raymarching.
This is the first part of a Unity tutorial dedicated to Volumetric Rendering, raymarching and signed distance fields. These techniques allow us to overcome the biggest limitation of modern 3D engines, which only let us render the outer shell of an object. Volumetric rendering enables the creation of realistic materials that interact with light in a complex way, such as fog, smoke, water and glass. Beautifully crafted effects such as NMZ‘s Plasma Globe (below) would simply be impossible without volumetric rendering.
These techniques are not complicated, but require a lot of steps in order to replicate the aforementioned effects. This tutorial has got you covered.
Part 1: Volumetric Rendering| An introduction to what rendering volume means, and how it can be done in Unity;
Part 2: Raymarching | Focuses on the implementation of distance-aided raymarching, the de-fact standard technique to render volumes;
Part 3: Surface Shading| A comprehensive guide on how to shade volumes realistically;
Part 4: Signed Distance Functions | An in-depth discussion of the mathematical tools that allow us to generate and combine arbitrary volumes;
Part 5: Ambient Occlusion | How to implement realistic and efficient ambient occlusion in your volumes;