FK anim 구현.
- OS: Windows
- Language: C++
- IDE: Visual Studio
- freeglut : https://www.transmissionzero.co.uk/software/freeglut-devel/
- glew : http://glew.sourceforge.net/
HierarchicalModeling/
ㄴ-- HierarchicalModeling/
| ㄴ-- main.cpp // 프로그램 진입점, OpenGL window/callback 설정
| ㄴ-- HierarchicalModeling.h // HierarchicalModeling 클래스 선언
| ㄴ-- HierarchicalModeling.cpp // HierarchicalModeling 클래스 구현
ㄴ-- Assignment1_HierarchicalModel_keyframe.gif //영상
ㄴ-- HierarchicalModeling.slnx // Visual Studio 솔루션 구성 파일
부모 좌표계의 변환 × 자식 좌표계의 변환 = 자식의 월드 좌표계 변환.
Hierarchical modeling에서 각 관절의 local angle만 저장.
실제 화면에 그릴 때는 부모 변환들을 전부 곱해서 global position/orientation을 계산.
Base //바닥에 놓인 원기둥 받침대
ㄴ-- Neck Joint
ㄴ-- Neck Link //Base 위에서 시작되는 세로 원기둥 링크
ㄴ-- Arm Joint
ㄴ-- Arm Link //Neck 끝 관절에서 회전하는 팔 형태의 원기둥 링크
ㄴ-- Lamp Head Joint
ㄴ-- Lamp Head //Arm 끝 관절에 연결된원뿔 형태의 조명 갓
전체 변환은 부모에서 자식 방향으로 누적.
T_head = T_base *T_neck_joint *T_neck_link *T_arm_joint *T_arm_link *T_head_joint *T_head_link
AlignYAxisToVector : local y축 방향으로 만들어진 primitive를 실제 링크 방향으로 정렬.
DrawCylinderY :항상 자신의 local y축 방향으로 원긷우 생성.
DrawFloorGrid :3D 공간감을 확인하기 위한 바닥 격자.
DrawFrustumBetween :y축 방향으로 절두원뿔을 만들고 T_frustum = Trans(p_start) dot R(e_y -> v_hat)수핼
DrawCylinderBetween : y축 방향으로 원기둥 만들고 Local-to-world transform 수행
DrawStandLamp() : 루트부터 현재 노드까지의 local transform을 순서대로 곱해서 각 노드의 최종 월드 변환.

