3D 컴퓨터그래픽스 #8 - 씬 그래프

in #kr-series6 years ago (edited)

공이나 큐브, 원뿔 같은 단순한 오브젝트가 아닌 대부분의 3D 오브젝트는 복잡한 구조를 지녔습니다. 특별히, 자동차나 기계장치 같은 복잡한 오브젝트는 여러개의 컴퍼넌트로 구성이 되지요. 이렇게 여러가지 구성요소를 가진 오브젝트를 3D 공간에서 움직일 때는, 일종의 계층 구조(hierarchical system)가 사용되는데요. 3D 공간 상에서 이런 계층 구조를 보통 씬 그래프(scene graph)라고 부릅니다.



http://ryansgameenginesblog.blogspot.com/2013/12/scene-graphs.html

위의 그림은 Star가 하나가 있고, 그 Star 주위를 회전하는 Planet 1, Planet 2가 있으며, 각각의 Planet 주위를 회전하는 Moon A, B, C, D가 있는 구조를 일종의 씬 그래프로 나타낸 건데요. (실제로는 사각형으로 그려진 노드들만 있고, 동그라미쳐진 Rotation은 이해를 위해 더해진 것 같습니다.) 이런 식의 계층 구조가 있을 때에 Star라는 부모(parent) 오브젝트를 3D 공간 상에서 움직이면 그 자식(children)인 Planet 1, Planet2도 따라서 움직이고, 그들의 자식인 Moon A, B, C, D도 따라서 움직여야 되겠지요? 바로 "3D 컴퓨터그래픽스 #5 - 매트릭스"편에서 말씀 드린 변환행렬의 곱셈을 통해서 구현됩니다. 부모의 변환행렬을 자식에게 곱해주면 자식이 부모를 따라 움직이게 되는 거죠.


articulated-upper.jpg
http://ryansgameenginesblog.blogspot.com/2013/12/scene-graphs.html

이런 씬 그래프와 계층 구조에 따른 움직임이 왜 중요하냐면 바로 캐릭터 애니메이션의 기본이 되기 때문입니다. 캐릭터는 위의 그림과 같이 몸이 움직이면 머리, 팔, 다리가 같이 움직여야 하거든요 ㅎㅎ 팔 윗부분을 움직이면 팔 아래부분과 손도 따라와야 하구요.

다음 글에서는 이 캐릭터 애니메이션의 원리에 대해 좀더 알아보겠습니다.

©2018 @gyedo

Sort:  

아항.. 설명이 어려워요~~ ㅋㅋ 더 쉽게 해주세요....
엔지니어적 설명입니다. :) 한개도 못 알아먹겠어용.. 꺄~

ㅋㅋ 농담이예요~ 설명이 훅 뛴듯해서~
고생하셨어요~ ㅎㅎ

예전에 flash로 개발할때

태양계를 표현할 때 비슷하게 처리한거 같았는데....

태양을 중심으로 행성이 돌고...

여튼 다른 분들이 만든 api로처리하긴 했지만 ㅋ

아직도 이해는 잘 안되는거 같아요

Flash도 하셨군요! ㅎㅎ

이것저것 개발하다 보니... ㅋ

flash 하다 flex로 넘어갔는데 요즘은 뭐

byebye죠 ^^;

flex 아쉽죠 ㅎㅎ

You received 0.44 % upvote as a reward From round 1 on 2018.05.17. Congrats!

Congratulations @gyedo! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

짱짱맨 호출에 출동했습니다!!

감사합니다!!

짱짱맨 호출로 왔습니다.

감사합니다.

Coin Marketplace

STEEM 0.26
TRX 0.11
JST 0.033
BTC 64678.67
ETH 3086.68
USDT 1.00
SBD 3.87