카테고리 없음

Metal by Example | 선형대수학과 그래픽스 프로그래밍

61315 2021. 5. 25. 17:26

Metal by Example | 선형대수학🤗과 그래픽스 프로그래밍

14 SEP 2014 | 수학, 🤗

들어가면서

이번 포스트에서는 3D 그래픽스 프로그래밍을 위한 기본적인 수학 지식에 대해 알아볼 것입니다. 수학에 관한 내용은 고민끝에 하나의 독립된 포스트로 유지하기로 했습니다. 애초에 절대적인 양이 많은 동시에, 튜토리얼 포스트에 처음보는 수학적인 개념을 함께 욱여넣는 일은 포스트를 쓰는 사람과 읽는 사람 모두 힘들 거라고 생각했기때문입니다. 그래픽스를 위한 수학에 대해 충분히 이해하고 있는 경우 이 포스트를 건너뛰어도 좋습니다. 그렇지만 앞으로 작성할 포스트에서 사용할 용어나 기본 개념은 이 포스트에서 작성한 내용을 토대로 함을 알립니다.

이 포스트는 자주 수정될 것임을 미리 알려드립니다. 앞으로 몇 달 간의 포스트에 걸쳐 완성해나갈 것입니다. 이해를 돕는 예나 수식, 그래프 등이 추가될 것입니다.

이 포스트를 스킵하려면 적어도 학부 수준에서 컴퓨터 그래픽스를 수강하시거나, 아니라면 learnopengl이나 안성호 선생님 사이트에 다녀오셔야 합니다!

latexjs 테스트?? 폰트가 너무 작음!

$ R_u = \begin{bmatrix} cos\theta + u_x^2(1-cos\theta) & u_x u_y (1 - cos\theta) - u_z sin\theta & u_x u_z (1 - cos\theta) + u_y sin\theta \\ u_y u_x (1 - cos\theta) + u_z sin\theta & cos\theta + u_y^2 (1-cos\theta) & u_y u_z (1 - cos\theta) - u_x sin\theta \\ u_z u_x (1 - cos\theta) - u_y sin\theta & u_z u_y (1 - cos\theta) + u_x sin\theta & cos\theta + u_z^2 (1 - cos\theta) \end{bmatrix} $ $ S = \begin{bmatrix} s_x & 0 & 0\\ 0 & s_y & 0\\ 0 & 0 & s_z \end{bmatrix} $

2 차원에서 3 차원으로

데카르트 좌표계

Cartesian, 카ㄹ티시언

Handedness

트랜스포메이션이란?

리니어 트랜스포매이션

아이덴티티 트랜스포메이션

스케일

로테이션

Z 축 상에서의 로테이션

아무 축 상에서의 로테이션

Shear

Affine Geometry

트랜슬레이션

4D에서 Shear로서의 트랜슬레이션

Affine 트랜스포메이션

트랜스포메이션 합성

프로젝션

View Frustum

클립 스페이스와 NDC(Normalized Device Coordinates)

프로젝션 매트릭스

참고

SIMD 라이브러리의 존재

매트릭스를 담을 때