Common rendering pipeline finishing

Forward Rendering

The most common rendering, so-called forward rendering, is to string objects into a queue and render them one after the other. The light source can be the main loop or the object can be the main loop.

The disadvantage is that it is inefficient when there are many objects or light sources, and there will be more repeated calculations.

Deferred Rendering

The rendering is divided into two stages. The first stage processes the data required for lighting calculation and stores them in GBuffer. These data include fragment position, diffuse reflection map, normal map, specular reflection intensity map, etc.

Its advantage is that it has high efficiency when there are many objects and light sources. The disadvantage is that it requires a large bandwidth, MSAA is not applicable, and it is difficult to handle transparent mixing.

Tiled Deferred Shading

Due to bandwidth limitations, it is difficult to achieve conventional deferred rendering on the mobile side. One solution is to divide the screen into multiple areas and render them separately.

Tiled Fowrad Rendering

Divide the screen space into multiple blocks, calculate the range it can cover for each light source, and remove it if it has no effect on a certain screen area.

Clustered Forward Rendering

Forward+ is to divide Tile in the screen space for light source filtering to reduce consumption. This division is carried out on the XY 2D plane, while Clustered Forward Rendering is a further step on this basis. It also performs a division in the Depth direction, further Reduce the impact range of lighting and reduce the waste of lighting calculations. Because the result of division is 3D Frustum, each Frustum is called a Cluster, which is the origin of Cluster.

Guess you like

Origin blog.csdn.net/qq_43533956/article/details/125186111
Recommended