학습 연습으로 지연 렌더링 엔진을 작성했습니다. 이제이 엔진에 장면 그래프를 추가하고 싶지만이 작업을 수행하는 방법이 약간 당황 스럽습니다.
일반적인 (포워드 렌더링 엔진)에서는 장면 그래프 너비를 먼저 이동하고 어디서나 Draw ()를 호출하는 것보다 모든 항목 (모든 구현 IDrawable 및 IUpdateAble)을 장면 그래프에 추가합니다.
그러나 지연 렌더링 엔진에서는 그리기 호출을 분리해야합니다. 먼저 지오메트리, 그림자 캐스터, 라이트 (모두 다른 렌더 타겟)를 그려야합니다. 따라서이 경우에는 씬 그래프 위를지나 가기 만하면됩니다. 내가 보는 방식으로 전체 장면 그래프를 3 번 이동하여 그려야하는 객체의 종류를 확인하거나 어떻게 든 서로 연결된 3 개의 별도 장면 그래프를 만들어야합니다. 이 두 가지 모두 나쁜 해결책 인 것처럼 보입니다. 씬 객체를보다 투명하게 처리하고 싶습니다.
내가 생각한 다른 솔루션은 장면 그래프를 정상적으로 여행하고 3 개의 별도 목록에 항목을 추가하고 기하학, 그림자 캐스터 및 조명을 분리 한 다음이 목록을 반복하여 올바른 물건을 그리는 것이 더 낫습니다. 매 프레임마다 3 개의 목록을 다시 채우는 것이 현명한가?