기술(Tech, IT)/컴퓨터 그래픽스 (Computer Graphics)

[CG] Scene Graph - 재정리

Daniel803 2024. 4. 10. 06:11

Scene Graph는 컴퓨터 그래픽, 게임 개발, 가상 현실 애플리케이션에서 graphic scene의 논리적이고 종종 공간적인 표현을 관리하고 구성하기 위해 일반적으로 사용되는 데이터의 구조다. 이를 통해 개발자는 오브젝트, 조명, 카메라 등 많은 요소가 포함된 복잡한 장면을 구조화된 방식으로 처리할 수 있다.

 

Scene Graph의 핵심 개념은 scene의 오브젝트를 그래프의 노드로 표현하는 것으로, 각 노드는 여러 개의 자식을 가질 수 있지만 일반적으로 하나의 부모만 가질 수 있다. 이러한 계층적 구조를 통해 오브젝트와 그 속성은 물론 오브젝트 간의 관계를 효율적으로 관리할 수 있다. 예를 들어, 부모 노드에 적용된 변환(이동, 회전, 크기 조정 등)은 모든 자식에 자동으로 영향을 미치므로 캐릭터나 기계와 같이 복잡하고 관절이 있는 구조를 모델링하는 데 특히 유용하다.

 

Scene Graph를 사용하면 카메라 시야 밖에 있는 오브젝트를 효율적으로 컬링(culling)하여 렌더링 성능을 개선하고, 카메라와의 거리에 따라 오브젝트 렌더링의 세부 수준(LOD, levels of detail)을 관리하며, 충돌 감지 및 물리 시뮬레이션을 용이하게 할 수 있다.

 

기본적으로 Scene Graph는 scene의 수 많은 오브젝트 관리의 복잡성을 추상화(abstract)해 개발자가 애플리케이션 내의 높은 수준의 디자인과 상호 작용에 집중할 수 있도록 해준다. 실시간 그래픽 애플리케이션을 위한 조직적 이점과 성능 최적화를 모두 제공하는 강력한 툴이다.