-
Chapter 9.2 Normal Mapping3차원 그래픽스/Mapping 2018. 6. 7. 23:01
이 문서는 개인 공부용으로 쓰였습니다.
- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현)
Chapter 9.2 Normal mapping
0. 정의
- 눈속임의 기술인 노멀 맵핑은 법선 벡터의 값을 사용하여 입체감 및 질감을 구현하는 방법.
노멀맵은 RGB 색상 대신 노멀 벡터를 저장하고 있는 텍스처를 말한다.
1. 노멀맵
- 노멀을 계산하기 위해서는 편미분 식이 필요한데, (x, y)에 인접한 네 개의 좌표
{(x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)} 의 높이 값을 이용해 계산한다.
계산된 노멀은 하이트 필드 표면의 바깥쪽을 가리킨다.
각 텍셀에 색상 대신 노멀이 저장된 노멀맵의 개념, 일반적으로 노멀맵은 하이트맵과 동일한 해상도를 갖는다.
출처 : http://faculty.ycp.edu/~dbabcock/PastCourses/cs470/labs/lab18.html
RGB 각 채널을 8비트 정수로 표현하는 텍스처에서 각 색상 요소는 [0, 255] 범위에 있다.
정수 RGB 텍스처에 노멀을 저장하기 위해서는 정규화된 노멀을 이용해야한다. [-1, 1]
각 노멀의 x와 y값은 z값에 비해 매우 작기에
계산된 R, G, B 중 B 값이 가장 크게 된다.
따라서 결국 노멀맵을 이미지 텍스처로 취급하여 그리게 되면 전체적으로 파란 색조를 띄게 된다.
출처 : https://learnopengl.com/Advanced-Lighting/Normal-Mapping
'3차원 그래픽스 > Mapping' 카테고리의 다른 글
Chapter 9.5 Parallax mapping (0) 2018.06.11 Chapter 9.4 Object space Normal mapping (0) 2018.06.09 Chapter 9.3 Tangent space Normal mapping (0) 2018.06.08 Chapter 9.1 Height field (0) 2018.06.06 Chapter 9.0 Bump mapping (0) 2018.06.06