[자체 엔진] Batch Line Rendering

Batch Line Rendering

1. Batch Line Rendering 이란?

World에는 Grid Line, Axis, AABB 라인 등 Line을 그려하는 경우가 많다.
하지만 이 때 line 하나당 DrawCall 한 번을 호출하게 되면 부하가 매우 심할 것이다.

이를 해결하기 위해서 CPU에서 한 Frame에 Line을 모아서 DrawCall을 한 번만 호출하도록 하는 최적화 기법이다.

2. Batch Line Rendering Flow

ResourceManager.AddBatchedVertices(...) 와 같이 API를 만들어서 사용했다.

위에서 설명한 것 처럼 AABB Line, Grid, World Axis들을 AddBatchedVertices 함수를 사용해서 등록을 시켜주고,

한 틱 당 RenderAllBatchedLines를 한 번 호출해서 Line을 한 번에 그려준다.

3. Batch Line Rendering hlsl

Line.hlsl은 특별할 것 없이. MVP Matrix를 곱해주면 된다.

MVP = World * View * Projection
output.position = mul(float4(input.position, 1.0f), MVP)

'ComputerGraphics > 자체엔진' 카테고리의 다른 글

[자체 엔진] Exponent Height Fog  (0) 2026.03.09
[자체 엔진] FXAA  (0) 2026.03.09
[자체 엔진] Billboard  (0) 2026.03.09
[자체 엔진] Features  (0) 2026.03.09
[자체 엔진] Bgario  (0) 2026.03.09
myoskin