Directx9를 이용한 3D GAME 프로그래밍 입문 – part1 수학적 준비 (벡터)

Part. 1

수학적 준비

 

컴퓨터 그래픽스의 이론에 필요한 수학 (벡터,행렬, 변환)에 대해서 설명하는 파트.

 

 

(개인적인 공부를 위해, 책을 읽고 모르는 부분 혹은 중요하다고 생각되는 부분만 적었습니다.)

 

 

 

 

 

스칼라란?

방향이 없는 힘의 크기만을 표현하는 수학적 개념.

벡터란?

힘의 크기와 방향을 표현하는 수학적 개념. 벡터를 이용하여, 물리적인 양을 모델링한다.

 

벡터의 특징

다른 위치에 있는 벡터가 '방향과 크기가 같다면 그 두 벡터는 같은 벡터이다.'

 

왼손 좌표계 vs. 오른손 좌표계

 

기저 벡터 : X, Y, Z축을 따라서 진행하고, 모두 1의 크기를 가지는 벡터

    Ex) (1,0,0) / (0,1,0) / (0,0,1)

 

벡터의 크기 계산

공식 : ||u|| = √(X² + Y² + z²)

벡터의 정규화

벡터의 크기를 1로 만들어서 단위벡터로 만드는 작업

※단위 벡터란 벡터의 크기가 1인 벡터를 말한다. 단위 벡터는 많은 곳에서 쓰이니 이 공식과 개념은 꼭 기억해두자.

U∧ = U/||U|| = (Ux, Uy, Uz) / ||U||

 

벡터의 덧셈

연산된 벡터의 표준점과 끝점을 기억해둘 것

 

벡터의 뺄셈

연산된 벡터의 표준점과 끝점, 방향을 기억해둘 것

 

 

벡터의 곱셈

벡터의 곱셈을 벡터의 합처럼 단순히 성분의 곱으로 정의한다면, 유용하지 않다. 그래서 실제로 쓸수 있는 유용한 벡터의 곱셈을 가지기위해 색다른 벡터곱(내적과 외적)을 정의했다.

 

벡터의 내적이란?

  1. 벡터간의 두 곱셈중 하나이다.
  2. 두 벡터의 '크기'와 '두 벡터 사이 각의 코사인을 곱한 스칼라' 값이다.
  3. 벡터 A, B의 내적 결과…
    1. A ㆍ B = 0 이라면, A는 B에 수직한다.
    2. A ㆍ B > 0 이라면, 두 벡터간의 각도는 예각이다.
    3. A ㆍ B < 0 이라면, 두 벡터간의 각도는 둔각이다.
  4. 내적을 이용하여 두 벡터간의 각도의 정확한 값을 알수 있다.

 

벡터의 공식

A ㆍ B = Ax * Bx + Ay * By + Az * Bz

A ㆍ B = ||A|| * ||B|| * cos(θ );

 

 

 

 

 

 

 

벡터의 외적이란?

  1. 벡터간의 두 곱셉중 하나이다.
  2. 두 벡터에 수직하는 벡터를 구하는 곱셈이다.

 

벡터 외적의 공식

  1. A X B = {(Ay * Bz – Az * By), (Az * Bx – Ax * Bz), (Ax * By – Ay * Bx)}

 

'프로그래밍 > DirectX9' 카테고리의 다른 글

LOD (Level Of Detail)  (0) 2014.08.04
쿼드트리 컬링  (0) 2014.08.04
Quadtree  (0) 2014.07.25
절두체 컬링  (0) 2014.07.24
Terrain - 높이맵과 텍스처링  (0) 2014.07.23
더보기

댓글,

Lowpoly

게임 서버 프로그래머 지망생