Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

Typing diary

3D 그래픽 Projection(투영) 본문

그래픽스, 게임 수학

3D 그래픽 Projection(투영)

Jcon 2022. 8. 21. 13:55

 2019. 1. 13

이번 학기에 SDL로 게임 프레임워크를 만드는 수업이 있었는데 3D도 같이 공부할 겸 SDL로 3D게임을 만들기로 결정하였다. 이곳저곳에서 코드를 끌어와서 한 학기 동안 힘들게 만든 보람이 아까워 군대가기 전에 정리라도 해놔야 겠다 ..

Projection(투영)

간단하게 3D좌표를 모니터상의 2D좌표로 투영시키는 과정. (x,y,z) → (x,y)

https://blog.naver.com/ansankdh/221194019271

 

작년1학기때 연구했던 1인칭 3D그래픽 구현 정리

우리는 3차원 세상에 살고 있지만 우리의 눈은 이 세상을 2차원의 화면을 통해서 인식합니다. 그래서 저는 ...

blog.naver.com

 

사실 이분의 글을 보고 3D도 할만 하겠다 싶어서 3D게임을 만들기로 결심한 터라 투영 부분은 이분의 글과 많이 곂치는 부분이 있을것이다...

일단 우리가 사는 세상은 3차원 공간이다. 기본적으로 우리의 두 눈은 3차원 공간을 보고있다.

요런 식으로 말이다..

빛이 물체에 반사되어 빨간 선의 경로를 따라 우리 눈에 도달하면 눈에 상이 맺히게 된다.

컴퓨터 3D그래픽은 가상 공간에 있는 3차원 물체를 모니터를 통해 보여주게 된다.

따라서

예상되는 빛의 경로와 모니터의 화면의 접점을 따라 화면에 출력하면 마치 모니터 안에 3차원 물체가 있는것 처럼 보이게 된다.

위 그림을 위에서 바라보면

요런 모습이다. 우리는 파란점에 해당하는 좌표값을 구하여 모니터에 출력해주면 되는것이다.

이제 파란점의 좌표를 구해보자.

구해야 할 값은 A,B의 좌표이다.

(n은 관찰자와 화면사이의 거리)

x:A = z : n

Az = nx

A = nx/z

(B의 값은 관찰자와 화면사이의 거리)

같은 원리로 B또한

B = ny/z

이 된다.

고로 3차원 공간의 좌표(x,y,z)를 이용해

화면상의 (nx/z,ny/z)에 점을 찍으면

3차원 상의 좌표가 모니터 화면으로 투영되어 나타나게 된다.

'그래픽스, 게임 수학' 카테고리의 다른 글

LU 분해  (0) 2022.08.21
확장 행렬과 가우스-조던 소거법  (0) 2022.08.21
벡터 방정식  (0) 2022.08.21
Dot Product ( 스칼라 곱)  (0) 2022.08.21
콘솔 창 Double buffering 구현하기 (C++)  (0) 2022.08.21