GameForFun

블로그 이미지
by PforPepsi

TAG CLOUD

  • Total hit
  • Today hit
  • Yesterday hit

간단히 그래픽스에서 그려지는 것의 내용에 대해 정리해보기 위해 글을 쓴다.

한 면, 삼각형은 3 점으로 구성된다. 간단하게 생각하기 위하여 삼각형을 화면에 그린다고 생각하자.

삼각형의 3 점은 해당 좌표계에 적절히 배치되어 있을 것이다. Local Space
그런데 우리는 삼각형을 그리기 위해서는 3점을 World Space(월드 좌표계)에 위치시켜줘야 되는데, 이는 이동행렬을 곱해주어 정확한 월드 좌표계에 놓일 수 있도록 해준다. (이동 행렬을 안곱해주면 항상 원점(0,0,0)을 중심으로 3점이 배치가 되어 있을 것이다)
추가로 Scale, Rotate의 행렬을 곱해줘, 정점의 위치를 모두 바꿔준다. 그러나 Rotate 행렬을 해줄때는 Gimble Lock이라는 현상이 발생할 수도 있으므로, 사원수를 사용하여 계산 부담도 덜고, Gimbal Lock 현상도 없애는 이득을 볼 수 있다.

월드 좌표계에 정점의 배치가 끝났으면, 이제 해야 할 것은 바로 카메라의 배치이다. 카메라의 배치 또한 모델 배치와 비슷하며, 더 해줘야 할 것은 바라볼 방향과 UpVector를 설정해 주는 것이다.

이제 카메라도 설치가 완료되었다. 그러면 해줘야 할 것이 바로 화면에 그려주는 것이다
바로 3D -> 2D로 바뀌는 작업인 것이다.
이 방법에는 2가지가 존재하는데
1. 직교투영(평행투영)
2. 원근 투영이 존재한다. 
적절히 계산.

위의 단계를 거치면 어떤 점이 화면에 보여야 되는지에 대한 설정이 끝난다.
이제 마지막으로 해줘야 할 것이 바로, 면에 대한 처리이다.

면을 처리한다는 것은 3점이 이루는 영역에 얼마만큼의 빛이 들어오는 지를 체크하는 것이라 할 수 있다.

자체 색과 빛과의 각도를 계산, 그 외에 반사정도 등등을 설정해주면, 점들이 이루는 영역에 얼만큼의 빛이 존재하는지를 알 수 있고 어떤 색을 띌 지를 알 수 있다.
따라서, 해당 점을 이은 도형의 영역 안에 존재하는 픽셀들의 색을 계산을 통해 얻은 색으로 바꿔주면 되는 것이다.

'프로그래밍' 카테고리의 다른 글

문자 출력하기 구현.  (1) 2012.10.11
RTTI에 대한 글.  (1) 2012.07.20
그래픽스 몇가지 적어놓을 것들.  (0) 2012.07.05
쉐이딩.  (0) 2012.07.05
DX 텍스쳐 관리2.  (0) 2012.04.17
AND

ARTICLE CATEGORY

목록들 (118)
[Unity3D] (39)
그래픽관련 (13)
잉여잉여 (25)
프로그래밍 (27)
노래♬ (3)
Game_Design(기획) (3)

RECENT ARTICLE

RECENT COMMENT

RECENT TRACKBACK

CALENDAR

«   2025/01   »
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

ARCHIVE