상세 컨텐츠

본문 제목

개념 3D 이해 2.위치

프로그래밍/3D

by ∫2tdt=t²+c 2008. 11. 13. 12:37

본문

3차원 상에서 물체를 표현하는 방법을 전에 설명했다. 그럼 이것을 실제로 나타내보자.
(여기 나오는 코드들은 그냥 이해를 쉽게 하기 위한 코드이며 실제로 써먹을 일은 없다!)
먼저 점을 나타낼수 있는 구조체를 만들어본다.
typedef struct _Dot
{
float x,y,z;
}Dot;
3차원 상의 점이므로 점의 위치를 표현하는데에는 3개의 좌표가 필요하다. 그리고 위치를 표현하기에는 정수형 보다는 실수형 자료가 낫다. 정수형을 쓰면 나타내기가 불가능한 좌표가 너무 많기 때문.

그럼 이제 삼각형을 나타내는 구조체
typedef struct _Triangle
{
Dot dot[3];
}Triangle;

이제 삼각형의 배열로 3차원 물체를 나타낼수 있겠다. 그런데 3차원 물체를 화면에 어떻게 그려야할까?
화면의 4끝을 다음과 같이 설정하고서
(  0,  0,  0) (640,  0,  0)
(  0,480,  0) (640,480,0)
그 사이의 삼각형들을 그려줘야할까?

이건 뭔가 아니다. 전혀 3차원 답지도 않다.
진짜 3차원 같으려면 보는 물체를 바라보는 위치에 따라서 물체의 모습이 바뀌어야 한다.
그렇다면 3차원 세계 안에 카메라를 넣고 카메라에서 물체를 보는 모습을 화면에 그려주는게 낫겠다.

카메라에서 물체를 바라보는 것을 어떻게 표현하지?
이것을 위한 수학이 다음 편에서 기다리고 있다.

미리 알아보면 좋은것
행렬 변환, 선형대수학

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

Direct3D에 FreeType로 폰트 출력하기  (4) 2013.04.06
개념 3D 이해 6.월드 변환  (0) 2008.12.30
개념 3D 이해 5.프로젝션 변환  (0) 2008.11.17
개념 3D 이해 4.뷰 변환  (0) 2008.11.13
개념 3D 이해 3.변환  (0) 2008.11.13
개념 3D 이해 1.삼각형  (0) 2008.11.13

관련글 더보기

댓글 영역