Rendering Pipeline In Unity
Introduction to Rendering Pipeline in Unity
Rendering
Rendering is the process of drawing a scene on the computer screen.
Rendering involves a combination of geometry calculations, textures, surface treatments, the viewer’s perspective, and lighting.
The rendering pipeline is the process of transforming all of these data into the virtual environment on the screen.
Rendering Pipeline consists of:
Application (CPU work happening in the background)
In the Application Phase, you are giving instructions for handling Geometry and Rasterization. This phase affects Geometry and Rasterization.
for example, triggering post-processing effects to signal a collision will have Rasterization.
Geometry
Creating 3d and 2d models using the mesh data and simulating the virtual world with its dimensions.
It includes calculations about the position of the camera and transformation, rotation and scaling of the virtual world.
Rasterization or (Rasterisation)
Since our screens are 2D, Rasterization is how the Geometry (3D & 2D) will be drawn on our 2D screen.
Rasterization is where we process the virtual environment several times through different filters then output the result on the screen.
Post-processing effects: Effects that happen to the 2d version of the objects (Screen model) not the 3d model (Geometry Model)
Rendering Processes:
- Geometry
Mesh data are collected (Vertices Array, Normals Array, Triangle Array and UV Array)
2.Illumination (Models are colored and lit)
In the Illumination stage also we add lighting effects to the virtual world
Using different inputs(textures, normal maps … ,etc.) we color objects in the virtual world.
3. Viewer’s Perspective (Camera Input)
Before rendering the environment on the screen we consider the camera input such as (field of view, Projection Mode[Orthographic or Prespective])
4.Clipping
(Remove objects outside of the Camera View)
5. Screen space Projection
(Projection of 3d Environment on the 2d screen model)
6.Adding post-processing effects
Those are the effects we add to the 2D image just before Displaying the final output on the screen
7. Display
Finally, we renderer our scene.
This was a macroscopic look of the rendering line processes in Unity, it provides an inside perspective about the rendering pipeline and the work done by lots of magnificent engineers to help us create better apps and tools.
I am currently looking for a Unity Dev job (Remote or in the Bay Area).
If you know someone who can help, my email is ah1053@stanford.edu