Render
🕹️

Render

태그
materials
PBR
Deferred Rendering
설명
PBR based rendering pipeline

Easily replaceable materials

notion image
CSEngine's materials can be easily customized and replaced. You can custom swap between forward rendering and deferred rendering, as well as even the light pass stage of deferred rendering.

PBR Shading

DGGX, SchlickGGX, HDR Enabled PBR
DGGX, SchlickGGX, HDR Enabled PBR
DGGX, SchlickGGX, HDR, Shadow Enabled PBR
DGGX, SchlickGGX, HDR, Shadow Enabled PBR
PBR is basically composed of Albedo, Roughness, Metallic, and AO for rendering. Because the principle of operation is used as it is with the existing PBR formula, the rendering result is also rendered as desired.
The PBR shader is set as the engine default shader. Non-PBR shaders can be specified in forward rendering, but PBR shaders are unconditionally specified in deferred rendering.

Deferred Rendering (except Android)

notion image
Deferred rendering looks like it consists of 4 textures in the image above, but it is a G-buffer that only consists of 2 textures after optimization. For this configuration, an objectized framebuffer was applied to create a class dedicated to G-buffer, and through this, deferred rendering was set to be implemented normally in the sub-framebuffer.
Deferred rendering and forward rendering are designed to be rendered at the same time naturally through depth values.
Currently, deferred rendering is not implemented normally on Android. Deferred rendering of Android devices is not allowed because the size and number of framebuffers allowed by Android devices vary too much.

Hybrid Rendering (Deferred + Forward with RenderGroup)

CSEngine hybrid rendering demo (deferred + forward rendering)
A RenderGroup attempts to implement object-oriented rendering by grouping various rendering processes together.
This allows multiple renderings to be implemented all in one render pass. (G-buffer is an exception as it is not a render pass)
List of rendering processes implemented via RenderGroup:
▫️
UI RenderGroup (in progress)

Rendering Diagram (Korean)

The corresponding rendering-specific class diagram describes how the rendering pipeline is reached.
The corresponding rendering-specific class diagram describes how the rendering pipeline is reached.