본문 바로가기
컴퓨터 그래픽스/Rasterization

Rasterization(5) - 위성 만들기

by SL123 2024. 7. 20.

DirectX CPU에서 연산하는 것이 아닌 GPU에서 연산합니다.
그러므로 CPU의 vertices, indices, colors 같은 기하 정보들을
나중에 GPU 버퍼에 넘겨줘야 한다.(GPU 연산이 더 빠르기 때문)
그래픽 연산은 매우 단순한 행렬 연산이고 단순한 작업에 GPU가
특화 되어있기  때문에 GPU에서 연산처리를 수행하는 것이 옳습니다.
처음 시작할 때 CPU->GPU 복사를 하고 반복적으로 사용합니다.
(CPU->GPU 복사 느림)

기본적으로 위성을 구성하는 태양, 지구, 달 위성의 원을 만들어보죠.
태양은 돌지않기 때문에 지구와 달의 각속도와 공전 각도를 정해주고
태양과 지구의 거리, 지구와 달의 거리도 구해줍니다.


자전과 달리 공전을 할때에는 이동을 먼저 한 후 회전을 구해줍니다.
태양에 위치에서 지구를 움직인 뒤 회전을 수행하면 됩니다.

달을 구할 때는 달의 위치를 움직이고 회전을 수행합니다.
이동한 거리와 회전된 위치를 바탕으로 태양과 지구의 거리만큼 움직이고
회전을 수행합니다.

이렇게 하면 2차원에서 위성을 구할 수 있습니다.