Foliage는 UE5에서 제공하는 기능 중 하나입니다.
Foliage를 사용해보고 느낀 점은, 이전에 DirectX11 팀 포폴에서 구현했던 Instancing 기능과 유사하다는 것입니다.
Instancing은 여러 개의 물체를 동시에 그릴 때 성능 면에서 이점이 있습니다.
실제로 포폴을 진행하며 맵의 물체가 기하급수적으로 늘어날 때, 이 기능을 구현해서 어느정도 프레임 방어가 되었던 기억이 있습니다.
원리는 Input Assembly 단계에서 데이터를 CPU -> GPU로 넘겨줄 때 그려질 물체의 정점들과, 다수 물체들의 Transform 정보들을 같이 넘겨주어, 한번의 Draw Call에서 동시에 그려지게 하는 것입니다.
Rendering Pipeline에서 물체가 결국 화면에 그려지는 것은 Vertex Shader에서 해당 정점과 위치 정보를 이용하여 그려질 위치를 결정하고, Pixel Shader 단계에서 그려지기 때문에 이 같은 기술이 가능하다고 생각합니다.
(물론 물체의 수가 늘어날 수록 프레임이 아예 변동이 없는 것은 아니기 때문에 동시라는 표현이 적절한지는 모르겠지만,
실제 Graphics Debugging 화면에서는 드로우콜이 지난 후 동시에 그려지는 것처럼 보이기에 다들 그런 표현을 사용한다고 생각합니다.)
이 과정을 거치면 CPU에서 그 많은 물체 하나하나가 Update -> Render를 도는 과정이 생략되고 GPU에서 그려지게 되어 더 도드라져보이는 것입니다.
'게임 개발 > [UE5_Portfolio] UE5 OpenWorld RPG 포트폴리오' 카테고리의 다른 글
7. 잠시 중단 (0) | 2024.09.25 |
---|---|
6. Post Processing (1) | 2024.09.25 |
4. 지형 제작 Ing... (0) | 2024.09.23 |
3. 지형 배치 (0) | 2024.09.23 |
2. 라이트 배치 (0) | 2024.09.22 |
댓글