일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Windows Build
- 3d
- Cell Shader
- 게임 수학
- 가상 바이트
- Cartoon Rendering
- VR
- Toon Shader
- Specular
- 프로그래밍 기초
- working set
- Virtual Byte
- URP로 변경
- ASW(Application SpaceWarp)
- C언어
- Private Bytes
- OculusMotionVectorPass
- 작업 집합
- 벡터
- ColorGradingLutPass
- 개인 바이트
- Cell Look
- URP
- 메모리 누수
- Three(Two) Tone Shading
- AppSW
- Rim Light
- Today
- Total
WinCNT
Transform(변환) 1 본문
렌더링 파이프라인에서 중요한 부분을 차지하는 것이 변환(Transform)이다
선수요목
좌표계(Coordinate)
주로 3차원 데카르트 좌표계를 사용함
좌표 공간(Coordinate space)
왼손 좌표계, 오른속 좌표계가 존재한다
유니티가 특이하게 Y-Up을 사용함
X는 빨간색
Y는 녹색
Z는 파란색
벡터(Vector)
행렬과 더불어 3D 그래픽스에서 필수적인 과목
행렬(Matrix)
학문 자체는 깊다...
하지만 게임 제작에 필요한 내용은 그다지 많지 않을 수 있다
사원수(Quaternion)
오일러 각의 문제점(짐벌락 현상)을 해결하기 위해 도입한 체계
직관적인 이해가 어려워서 악명이 높다
간단히 말해 기존의 X축 회전 => Y축 회전 => Z축 회전 등의 방식이 아닌,
따로 X, Y, Z의 축에 대한 각도를 가지고 회전을 하는 방식이다(오해의 소지 있음)
오일러 각과 사원수는 서로 변환할 수 있으며
내용을 이해 못 해도 변환을 구현할 수 있으면 사용할 수는 있다
Transform(변환)
오브젝트의 로컬 좌표계(Local Space)가 존재
로컬 좌표계 X 월드 행렬 = 월드 좌표계(World Space)
월드 좌표계 X 카메라 행렬 = 좌표계(Space)
좌표계 X 행렬 = 월드 좌표계(Space)
모든 걸 월드 좌표계로 보낸다
그 다음에는 카메라 입장에서 보기에 어디에 있는지를 변환한다
그 다음에는 직교/원근 투영을 위해서 다시 한 번 변환한다
로컬 좌표계의 점 하나를 투영 후 좌표계의 점 하나로 변환하기 위해서는
(x, y, z, 1) X World TM X View TM X Projection TM = (x', y', z', w)
World TM
로컬 좌표계를 월드 좌표계로 변환
각각의 오브젝트는 각각의 월드 좌표계를 가지고 있다
계층도(Hierarchy)
자식은 부모을 원점으로 보고 변환(Transform)이 된다
월드의 원점이 최상위 부모, 즉 로컬과 월드의 변환 행렬이 같다
공간 변환
물체의 변환과 공간의 변환은 같다
관점의 차이일 뿐...
공간에 있는 물체를 이동시키는 것과 물체는 두고 공간을 이동시키는 것은
결과적으로 인간이 인지하기에는 같다
Etc.
DirectX는 벡터 * 행렬의 순서로 연산한다
(수학은 보통 행렬 * 벡터의 순서)
벡터와 행렬의 순서를 바꾸려면 전치를 해야 한다
선으로 직육면체를 만들자!!
버텍스 버퍼 --> 버텍스가 들어가 있는 배열
인덱스 버퍼 --> 어떠한 버텍스로 Face(삼각형)로 만들 것인지 지정하는 버퍼
앞면을 반시계로 하면 표면이 앞으로 나온다
SSS
'게임 프로그래밍(학습 내용 정리) > 3D Game Programming' 카테고리의 다른 글
Primitive (0) | 2022.03.25 |
---|---|
렌더링 파이프라인 (0) | 2022.03.24 |
Transform(변환) 3 (0) | 2022.03.23 |
Direct3D 11의 초기화 (0) | 2022.03.12 |
Direct3D 11의 초기화하기 전에 알아야 할 기본 지식 (0) | 2022.03.10 |