Hierarchical Modeling
Parent part에 대해서 subpart를 group으로 묶어서 tree 구조를 형성한다.
각 part는 자신의 reference frame(local frame)을 가지고 있다.
각 부분의 움직임은 parent reference frame에 대한 움직임으로 표현한다.
Child part(subpart)를 group으로 묶어서 한꺼번에 transformation 할 수 있다.
Articulated Body (다관절체)
= kinematic chain, linkage
Hierarchical model로 구성된 구조를 articulated body라고 한다.
Body가 여러개 있고 각 body들은 chain으로 연결되어 있다.
- joint
- 두 object의 연결
- 연결된 child는 parent의 움직임을 따라간다.
- link (= body) : joint 사이의 rigid object
- end effector : kinematic chain의 맨 끝단
Articulated body는 graph structure, 특히 tree structure로 표현된다.
각 node는 parent node의 frame에 대한 상대적인 transformation 으로 표현된다.
Scene Graph
Scene 전체를 표현할 때도 hierarchical model이 사용된다.
[OpenGL] Matrix Stack
OpenGL은 hierarchical structure의 object를 렌더링 하는 방법으로 matrix stack을 제공한다.
Current transformation matrix를 stack에 push한다.
Object들을 그린 후에 pop을 통해 다시 restore 될 수 있다.
Pop을 통해 parent의 transformation matrix를 복구할 수 있다.
Child의 sibling을 parent에 대해 표현할 수 있는 것이다.
함수
Current matrix는 stack의 top에 있는 matrix이다.
<pre>glPushMatrix()</pre>와 <pre>glPopMatrix()</pre>를 이용한다.
glPushMatrix가 호출된 횟수와 glPopMatrix가 호출된 횟수는 반드시 같아야 한다.
- glPushMatrix() : current matrix를 stack에 push한다.
- glPopMatrix() : stack에서 matrix를 pop한다.
예시
참고
본 포스트는 한양대학교 이윤상 교수님의 수업을 정리한 내용입니다.
출처: 한양대학교 이윤상 교수님 컴퓨터그래픽스 강의 강의자료 - https://cgrhyu.github.io/courses/2022-spring-cg.html
'Computer Science > Computer Graphics' 카테고리의 다른 글
3D Orientation Interpolation (0) | 2021.06.01 |
---|---|
Orientation, Rotation (0) | 2021.06.01 |
Affine Transformation Matrix, Transformation의 해석 (0) | 2021.05.31 |
[OpenGL] Lighting, Shading (0) | 2021.05.31 |
Shading (0) | 2021.05.31 |
댓글