본문 바로가기
프로그래밍

탄젠트 공간 Tangent Space

by 𝓃𝒶𝓃𝒶。 2015. 6. 23.

Tangent Space의 정의

 

Normal(N), Tangent(T), Binomal(B)

각 버텍스마다 B = N x T로 정의되고 이 세 벡터를 축(axes)으로 갖는 공간을 tangent space라고 한다.

노말맵, 범프맵 등의 텍스쳐는 tangent space를 기준 좌표로 갖고 라이트 벡터 등은 object space를 기준 좌표로 갖기 때문에 같은 공간 기준 좌표로 맞춰 줘야 한다.

 

 

Tangent(Local) Space <==> Object(World) Space

 

Object-to-Tangent Matrix = [ Tx Ty Tz ]

  [ Bx By Bz ]

  [ Nx Ny Nz ]

 

Tangent space를 object space로 변환하기 위해서는 위 행렬의 역행렬이 필요하다. (매 픽셀마다 변환 연산을 해 주어야 함)

그러나 구할 필요가 없다 ==> 하나의 회전 행렬과 같음. 회전 행렬의 역행렬은 transposed matrix인데

전치 행렬도 구할 필요 없다 ==> 행렬을 곱해주는 순서만 바꾸어 주면 된다.

 

 

 

 

http://blog.daum.net/rockeracer/56

 

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

std::pair  (0) 2015.07.01
무게중심좌표 Barycentric Coordinates  (0) 2015.06.26
camelCase vs. underscore_seperated  (0) 2015.06.18
Screen Video Capture on CentOS: gtk-recordmydesktop  (0) 2015.06.17
fileBrowser.mel  (0) 2015.06.15