묻공러
[OpenGL Note] 3D Transform
묻공러
묻지마공부
묻공러
전체
오늘
어제
  • 분류 전체보기 (487)
    • C (54)
      • [코드조선] C 핵심 (35)
      • [언어본색] C 기초 (19)
    • C++ (72)
      • [루키스] C++ (9)
      • [루키스] 콜백함수 (6)
      • [루키스] STL (8)
      • [루키스] Modern C++ (11)
      • [노코프] C++ (10)
      • [노코프] Tips (16)
      • [일지] C++ (12)
    • 자료구조 & 알고리즘 (50)
      • [코드조선] C 자료구조 & 알고리즘 (6)
      • [합격자되기] C++ 코딩테스트 (12)
      • [루키스] C++ 자료구조 & 알고리즘 (32)
    • CS (69)
      • [널널한 개발자] CS 개론 (19)
      • [혼자 공부하는] 컴퓨터 구조 (16)
      • [혼자 공부하는] 운영체제 (18)
      • [널널한 개발자] 네트워크 (16)
    • 게임 그래픽스 (46)
      • [전북대] OpenGL (25)
      • [일지] DirectX (21)
    • 게임 엔진 (124)
      • [코드조선] 언리얼 (53)
      • [코드조선] 언리얼 데디서버 (8)
      • [일지] 언리얼 (59)
      • [일지] 언리얼 (2) (3)
      • 유니티 (1)
    • 게임 서버 (17)
    • 게임 수학 & 물리 (19)
      • 게임 수학 (12)
      • 게임 물리 (7)
    • GIT & GITHUB (4)
    • 영어 (18)
      • [The Outfit] 대본 공부 (11)
      • the others (7)
    • 그 외 (14)
      • In (5)
      • Out (5)
      • Review (4)

인기 글

최근 글

hELLO · Designed By 정상우.
게임 그래픽스/[전북대] OpenGL

[OpenGL Note] 3D Transform

2024. 4. 13. 12:20

3D Scaling

좌표 하나가 추가된 것으로

아래와 같은 연산을 통해 변환을 할 수 있다

 

3D Rotation

어느 축을 기준으로 회전하느냐에 따라 연산이 달라진다

기준 축의 좌표는 변하지 않는 것이 특징이다

회전의 방향 및 각도의 증가는 오른손 법칙(CCW)을 따른다

 

3D Translation

Homogeneous Coordinate를 통해 행렬의 곱셈을 통해 연산한다

 

3D Affine Transform

아핀 변환으로 구성된 행렬을

아무리 많은 변환을 하더라도

그 결과는 L과 T로 구성되고

마지막 행은 (0, 0, 0, 1)로 구성된다


축회전행렬

object space basis를 u, v, n (모두 단위 벡터이다)

world space basis를 e1, e2, e3라고 한다면,

아래와 같은 결과를 통해서

축회전행렬의 각각의 열이

축회전의 좌표에 따라 구분되는 것을 알 수 있다

 

따라서,

축회전행렬을 통해 각각 어떤 축이 얼마나 회전되었는지를 알 수 있고

반대로는

축의 회전한 만큼의 값(u, v, n)을 통해 축회전행렬을 알 수 있다

 

Inverse Translation

이동을 했다면, 다시 돌아오며 복구되는 행렬 결과가 나온다

 

Inverse Scaling

확대/축소를 했다면, 다시 축소/확대하며 복구되는 행렬 결과가 나온다

 

Inverse Rotation

축회전행렬은 단위벡터이고 orthonormal basis이다

이는

u * u = v * v = n * n = 1

u * v = v * n = n * u = 0을 의미한다

따라서,

orthonormal basis로 구성된 회전행렬의 역행렬은 전치행렬과 같다

이처럼 전치행렬을 통해 쉽게 회전을 되돌릴 수 있다

저작자표시 비영리 변경금지 (새창열림)

'게임 그래픽스 > [전북대] OpenGL' 카테고리의 다른 글

[OpenGL Note] View Transform  (0) 2024.04.14
[OpenGL Note] World Transform  (0) 2024.04.14
[OpenGL Note] Affine Transform, Rigid Transform  (0) 2024.04.13
[OpenGL Note] 2D Transform  (0) 2024.04.12
[OpenGL Note] 렌더링 파이프라인  (0) 2024.04.12
'게임 그래픽스/[전북대] OpenGL' 카테고리의 다른 글
  • [OpenGL Note] View Transform
  • [OpenGL Note] World Transform
  • [OpenGL Note] Affine Transform, Rigid Transform
  • [OpenGL Note] 2D Transform
묻공러
묻공러
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.