-
Chapter 9.3 Tangent space Normal mapping3차원 그래픽스/Mapping 2018. 6. 8. 21:13
이 문서는 개인 공부용으로 쓰였습니다.
- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현)
Chapter 9.3 Tangent space Normal mapping
0. 정의
- 텍스처링은 텍스처를 물체의 표면에 펴 바르는 작업이므로 2차원 평면에서 탄젠트 공간의 정보를 갖는다는 의미를 갖고 있다.
즉, 노멀맵의 노멀 각각은 그 노멀이 적용될 표면 점의 탄젠트 공간에서 정의 된 것이다.
출처 : http://media.cgland.com/media/r09media_news_view.html?no=3858&news_page=3
1. 탄젠트 공간
- 물체의 표면을 기준으로 법선 벡터 방향을 Z축으로 놓는 공간.
* T : Tangent vector(접선 벡터)
* B : Bitangent vector(종법선 벡터)
* N : Normal vector(법선 벡터)
출처 : http://dolphin.ivyro.net/file/shader9.0/tutorial04.html Bi-normal 은 잘못된 명칭
폴리곤 메쉬의 표면 노멀은 일반적으로 모델링 단게에서 정점별로 계산된다.
탄젠트 공간 역시 정점별로 정의된다.
그림에서의 Binormal으로 옳지 않은 명칭이 이용되었는데.
B는 Bitangent로 표면에 수직이 아닌 접하기에 binormal은 부적절한 명칭이다. (곡선에서 사용됨)
2. 탄젠트 공간 노멀 매핑 알고리즘
- 빛 벡터 l을 탄젠트 공간으로 변환 (퐁 모델의 디퓨즈항의 월드 공간 벡터)
- TBN은 전처리 단계에서 정점별로 계산되고 정점 버퍼에 저장되어 정점 쉐이더로 넘겨진다.
- 이후 TBN을 행으로 가지는 3X3 회전 행렬을 구성한다.
출처 : http://apprize.info/programming/opengl_1/14.html
월드 공간의 벡터를 탄젠트 공간으로 변환하는 기저 이전 행렬
- 빛 벡터 l은 위의 행렬에 의해 변환되어, 탄젠트 공간의 벡터가 된다.
- 정점별 탄젠트 공간으로 변환된 빛 벡터는 래스터라이저에서 보간되어 프래그먼트별 및 벡터가 생성된다.
3. 장 단점- 장점 : 스키닝 되어도 적용가능, 재사용이 가능, 훌륭한 결과- 단점 : 탄젠트 공간으로 변환하는데 비용 소모, 노멀 맵핑은 표면을 흉내내는 것이기에 완벽하지 않음'3차원 그래픽스 > Mapping' 카테고리의 다른 글
Chapter 9.5 Parallax mapping (0) 2018.06.11 Chapter 9.4 Object space Normal mapping (0) 2018.06.09 Chapter 9.2 Normal Mapping (0) 2018.06.07 Chapter 9.1 Height field (0) 2018.06.06 Chapter 9.0 Bump mapping (0) 2018.06.06