티스토리 뷰
Scenegraph의 scene management에 대해 좀 더 알아보자. Scenegraph를 통한 scene management에는 lights, cameras, meshes (3D models), animations 등 3D scene의 다양한 요소를 구성하고 제어하는 작업이 포함된다. 이는 scene 조작 및 렌더링 프로세스를 간소화하는 Scenegraph의 계층적 구조에 의해 수행된다. 작동 방식은 아래와 같다.
- Transformations and Propagation
: 계층 구조의 부모 노드에 적용된 transformations (예: translation, rotation, scaling)은 모든 자식 노드에 영향을 준다. 예를 들어, 부모 노드인 비행기 모델을 회전하면 모든 부분(날개, 꼬리 등 자식 노드)이 함께 회전한다. 따라서 여러 부분으로 구성된 복잡한 객체를 더 쉽게 조작할 수 있다. - Efficient Rendering
: Scenegraph는 현재 view에서 가시성 또는 관련성에 따라 렌더링해야 하는 요소와 무시(culling) 할 수 있는 요소를 결정할 수 있다. 예를 들어, 카메라 시야에 없는 객체는 렌더링 중에 건너뛰어 performance을 최적화할 수 있다. - Resource Management
: Scenegraph는 textures, shaders, meshes와 같은 리소스를 관리하는 데 도움이 된다. 공유되는 리소스를 중복하지 않고 여러 노드에 연결할 수 있어 메모리 사용량과 로드 시간을 줄일 수 있다. - Lighting and Camera Management
: lights와 caemra도 Scenegraph의 일부다. 이를 통해, scene의 조명 및 보기 방식을 동적으로 제어할 수 있다. 예를 들어, 광원 노드를 이동하면 해당 광원의 영향을 받는 모든 객체의 조명이 변경된다. - Animation Handling
: 애니메이션은 특정 노드에 연결할 수 있다. 노드에 애니메이션이 적요되면 해당 노드의 모든 자식 노드에도 애니메이션이 적용된다. 이는 캐릭터의 몸통을 움직이면 머리와 팔이 자동으로 함께 움직이는 캐릭터 애니메이션에 특히 유용하다. - Simplifying Complex Interactions
: Scenegraph은 계층 구조가 명확하기 때문에 scene의 여러 요소 간의 복잡한 상호작용을 보다 쉽게 관리할 수 있다. 예를 들어, 다양한 객체의 위치와 상태에 따라 충돌을 감지하거나 이벤트를 트리거하는 작업을 더 쉽게 관리할 수 있다.
종합하면, Scenegraph를 통한 scene management는 복잡한 3D scene을 구조적이고 효율적으로 처리할 수 있는 방법을 제공해 컴퓨터 그래픽과 게임 개발에서 렌더링, 리소스 관리, 인터랙션 처리 작업을 매우 간소화한다.
참고
반응형
'기술(Tech, IT) > 컴퓨터 그래픽스 (Computer Graphics)' 카테고리의 다른 글
[CG] Linear-Speed Vertex Cache Optimisation - 2 (0) | 2023.12.01 |
---|---|
[CG] Linear-Speed Vertex Cache Optimisation - 1 (2) | 2023.11.30 |
[CG] Scenegraphs (0) | 2023.11.23 |
[CG] UV mapping vs Normal mapping (0) | 2023.11.08 |
[CG] Tangent space (탄젠트 공간) (0) | 2023.11.07 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- Android
- socket programming
- leetcode
- machine learning
- Computer Graphics
- The Economist
- The Economist Espresso
- min heap
- 이코노미스트
- Python
- 소켓 프로그래밍
- Hash Map
- 티스토리챌린지
- 이코노미스트 에스프레소
- vertex shader
- tf-idf
- 리트코드
- join
- ml
- 오블완
- 안드로이드
- I2C
- defaultdict
- DICTIONARY
- 투 포인터
- 머신 러닝
- java
- 딕셔너리
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
반응형