구글 2

filament 렌더링 엔진 여행기 #3 - RenderPass (1)

이전에 FRenderer 코드를 보면서 filament의 렌더링이 RenderPass라는 객체 단위로 동작한다는 것을 추론할 수 있었다. 물론 모든 코드를 다 본 것은 아니기엔 예외는 존재할 수 있으나 RenderPass가 적어도 filament 렌더링 동작의 핵심적인 역할을 하는 클래스인 것까진 틀림없을 것이다. filament의 RenderPass는 그럼 어떻게 동작할까? 코드를 보기 전 클래스 다이어그램부터 보자 위 클래스 다이어그램이 RenderPass와 관련된 클래스 다이어그램이다. 클래스 간의 관계까지 표현해두진 않았다. 그리고 당연하지만 모든 멤버가 포함된 다이어그램은 아니다. 거기에 처음보는 클래스도 꽤 있는데... 이런 부분은 당장 알아야할 건 아니므로 넘어가자. 디자인 패턴에 대..

Graphics/filament 2025.04.28

filament 렌더링 엔진 여행기 #2 - Renderer와 RenderPass

렌더링 엔진에서 가장 중요한 요소 하나를 꼽으라면 뭘 꼽아야 할까? 실질적인 렌더링 파이프라인을 시작시키는 Draw Call? 아니면 메쉬 렌더링을 위한 기본 중의 기본인 Vertex Buffer? 혹은 메쉬의 표면에 대해 정의하는 Material? 아마 모두 중요할 것이다. 그래픽스를 공부한 사람이라면 뭐 하나 빠져선 안 되는 중요한 개념들이고, 렌더링 품질과 성능 모두를 만족하기 위해선 무엇보다 잘 이해하고 있어야할 개념들일 것이다. 그러나 렌더링 엔진을 처음 뜯어보고자 하는 상황에서 가장 먼저 살펴볼만한 게 있다면 그건 뭘까? 필자의 의견을 말해보자면 렌더러가 아닐까 생각한다. 렌더러에선 렌더링할 데이터들을 받아 쉐이더 프로그램을 설정하고, 리소스 바인딩을 진행하며 드로우 콜을 호출하는....

Graphics/filament 2025.04.21