[Graphics Study] 변환 - 3D

2022. 11. 9. 14:31·CS/Computer Graphics

- Scaling

2차원의 축소확대인자 Sx, Sy에 Z좌표 개념 Sz를 추가해준다.

Sx * X, Sy * Y를 했던 것처럼 Sz * Z를 해주면 된다.

3D에서의 폴리건메쉬를 구성하는 모든 정점에 변환을 적용해주기만 하면 된다.

 

- Rotation

2차원에서 회전은 '점'을 중심으로 이루어 졌다.

3차원에서는 '축'을 중심으로 한다.(x, y, z축)

 

+ 축 중심의 회전에서는 해당 축이 나를 가리킨다고 생각하고 정면으로 바라본다고 상상하면 편하다.

예를 들어 x축 회전은 x축이 내 눈앞에서 나를 가리키고있고, 저 뒤편에 y, z가 반시계 방향으로 회전한다고 생각하면 쉽다.

 

* Z축을 중심으로 회전, Rz(θ)

z축을 기준으로 회전하면 x좌표는 당연히 그대로이고 x, y 만 이동할 것이다.

즉 z' = z이고 x, y의 경우 점을 기준으로 회전한 거랑 다를 바 없으니 2D에서 점을 기준으로 회전한 것처럼

x' = xcosθ - ysinθ

y' = xsinθ + ycosθ

 

* X축을 중심으로 회전, Rx(θ)

역시나 x축을 기준으로 회전했으니 x' = x일 것이다. 

y, z 의 경우 z축 중심의 회전에서와 아이디어는 동일하다. z축 중심 회전에서 x->y로 회전했다면, x축 중심에서 y->z로 회전할 때 역할만 바뀌었을 뿐이기 때문이다.

즉, x', y'을 구하던 식에서 x를 y로, y를 z로 바꿔주기만 하면 된다.

y' = ycosθ - zsinθ

z' = ysinθ + zcosθ

 

* Y축을 중심으로 회전, Ry(θ)

x축 회전의 개념과 동일

 

+ 점 중심 회전에서 회전값θ는 반시계방향 회전 기준이었다. 시계방향은 -θ를 대입해야 했었다.

3D에서의 축 중심 회전도 마찬가지로 시계 방향의 회전은 음수각도 -θ를 써야 한다.

 

- Translation

2D에서 3x3 단위 벡터를 사용해 표현하고 연산했다면, 3D에서는 4x4 단위벡터(I)행렬로 표현한다.

'CS > Computer Graphics' 카테고리의 다른 글

그래픽 장치의 종류와 차이점(래스터, 벡터) + 래스터화  (0) 2023.04.23
그래픽스 구성요소, 그래픽 시스템  (0) 2023.04.23
[Graphics Study] 변환 - 2D  (0) 2022.11.09
[Graphics Study] 모델링  (0) 2022.10.17
[Graphics Study] 수학 기초  (0) 2022.10.17
'CS/Computer Graphics' 카테고리의 다른 글
  • 그래픽 장치의 종류와 차이점(래스터, 벡터) + 래스터화
  • 그래픽스 구성요소, 그래픽 시스템
  • [Graphics Study] 변환 - 2D
  • [Graphics Study] 모델링
LOGPOSE 로그포스
LOGPOSE 로그포스
다음 섬으로 향하고자 이번 섬을 기록하는 특수한 나침반
  • LOGPOSE 로그포스
    LOGPOSE
    LOGPOSE 로그포스
  • 전체
    오늘
    어제
    • 분류 전체보기 (135) N
      • [Unity] Projects & Study (27)
        • VR 멀티 항만 시뮬레이션 게임 (1)
        • HandiLab - AR 과학 실험 (10)
        • 우물 속에서 - VR 공포 게임 (2)
        • Loop - Interactive Movie (8)
        • Simple Platformer Game (4)
      • CS (67)
        • Algorithm & Data Structure (23)
        • Design Pattern (3)
        • Computer Graphics (23)
        • OS (16)
      • Java (9)
      • Cloud (3)
      • Docker (4)
      • Spring (2)
      • AWS (3)
      • LLM (3)
      • Kubernetes (6)
      • Programming Paradigm (1) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    함수형 프로그래밍
    Unity AR
    game
    함수형
    선언형 프로그래밍
    AR
    프로그래밍 패러다임
    Photon
    VR
    VR게임
    2D
    VR멀티게임
    개발
    ovr
    함수형 패러다임
    Unity
    Unity앱개발
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
LOGPOSE 로그포스
[Graphics Study] 변환 - 3D
상단으로

티스토리툴바