정상 매핑
Normal mapping![]() |
3D 컴퓨터 그래픽, 일반 매핑 또는 Dot3 범프 매핑은 범프 및 덴트의 조명을 조작하는 데 사용되는 텍스처 매핑 기법이다. – 범프 매핑의 구현.폴리곤을 더 사용하지 않고 디테일을 추가할 때 사용한다.이 기법의 일반적인 용도는 높은 다각형 모델이나 높이 지도에서 정상 지도를 생성하여 낮은 다각형 모델의 외관과 디테일을 크게 향상시키는 것이다.
보통 지도는 보통 RGB 구성 요소가 표면 정상의 X, Y, Z 좌표에 각각 해당하는 일반 RGB 영상으로 저장된다.
역사
1978년 짐 블린은 기하학적으로 평평한 얼굴을 만들기 위해 표면의 규범이 어떻게 왜곡될 수 있는지 설명했다.[1] 높은 폴리곤 모델에서 기하학적 디테일을 취하려는 생각은 크리슈나무르시와 레보이의 "매끄러운 표면에서 촘촘한 폴리곤 메쉬로 피팅"에서 소개되었다.NURBS를 통한 변위 지도를 작성하기 위해 이 접근법을 사용했던 SIGGRAPH 1996.[2]1998년에는 코헨 외 연구진이 일반 지도와 함께 높은 폴리곤 메쉬에서 낮은 폴리곤 메쉬로 디테일을 이전하기 위한 핵심 아이디어를 제시한 바 있다.SIGGRAPH 1998,[3] 그리고 Cignoni 외 연구진의 "간단한 메시에 속성 값을 보존하기 위한 일반적인 방법".IEEE 시각화 98.[4]전자는 특정한 제한된 단순화 알고리즘에 의해 낮은 디테일 모델을 생성하도록 요구했지만, 표면 규범을 변위보다는 질감에 직접 저장하는 아이디어를 도입했다.후자는 높은 폴리곤 망사와 낮은 폴리곤 망사를 분리하고, 낮은 디테일 모델이 어떻게 만들어졌는지에 좌우되지 않는 방식으로 하이 디테일 모델(색상, 텍스처 좌표, 변위 등)의 어떤 속성도 재현할 수 있는 단순한 접근법을 제시했다.질감에 노르말 저장과 보다 일반적인 생성 프로세스의 조합은 현재 사용 가능한 대부분의 도구에서 여전히 사용되고 있다.
공간
좌표 축의 방향은 정상 지도가 인코딩된 공간에 따라 달라진다.간단한 구현은 적색, 녹색 및 청색 구성요소가 X, Y, Z 좌표와 직접 일치하도록 객체 공간에서 규범을 인코딩한다.객체 공간에서 좌표계는 일정하다.
그러나 물체 공간 일반 맵은 표면의 방향이 다르기 때문에 여러 모델에서 쉽게 재사용할 수 없다.컬러 텍스처 맵은 자유롭게 재사용할 수 있고, 일반 맵은 특정 텍스처 맵과 일치하는 경향이 있으므로 일반 맵은 동일한 속성을 갖는 것이 아티스트에게 바람직하다.
일반적인 지도 재사용은 접선 공간에 지도를 인코딩함으로써 가능하다.접선 공간은 모델의 표면에 접하는 벡터 공간이다.좌표계는 표면 전체에 걸쳐 부드럽게 변화한다(질감 좌표에 관한 위치의 파생 모델에 기초함).
접선 공간 일반 지도는 표면에서 직접 바깥으로 향하는 벡터에 해당하는 지배적인 보라색으로 식별할 수 있다.아래를 참조하십시오.
접선 공간 계산 중
![]() |
![]() | 이 섹션은 대부분의 독자들이 이해하기에는 너무 기술적일 수 있다.(2022년 1월) (이 를 과 시기 |
정상에서 섭동을 찾으려면 접선 공간을 정확하게 계산해야 한다.[5]보통은 모델과 뷰 매트릭스를 적용한 후 조각 셰이더에 변질되는 경우가 대부분이다.전형적으로 기하학은 정상적이고 접선을 제공한다.접선은 접선 평면의 일부로서 행렬의 선형 부분(상단 3x3)으로 간단하게 변환할 수 있다.그러나, 정상들은 역변환에 의해 변형될 필요가 있다.대부분의 어플리케이션은 변형된 기하학(및 관련 UV)과 일치하는 비탄젠트를 원할 것이다.따라서 이탄젠트를 탄젠트와 수직이 되도록 시행하는 대신에, 일반적으로 탄젠트와 마찬가지로 이탄젠트를 변형시키는 것이 바람직하다.접선, b 비탄젠트, n 정규, M은3x3 모형 행렬의 선형 부분, V는3x3 뷰 행렬의 선형 부분.
계산
표면의 램버트(diffuse) 조명을 계산하기 위해 음영점에서 광원으로 가는 단위 벡터에는 해당 표면에 정상인 단위 벡터가 점점이 찍혀 있고, 그 결과는 해당 표면에서 빛의 세기가 된다.구의 다각형 모델을 상상해 보라 - 당신은 표면의 형태에 근접할 수 있을 뿐이다.모델 전체에 걸쳐 텍스처 처리된 3채널 비트맵을 사용하면 보다 상세한 정상 벡터 정보를 인코딩할 수 있다.비트맵의 각 채널은 공간 차원(X, Y, Z)에 해당한다.이러한 공간 치수는 물체 공간 정규 지도에 대한 상수 좌표계에 상대적이며, 접선 공간 정규 지도에서 (질감 좌표에 관한 위치의 파생 모델에 기초함) 부드럽게 변화하는 좌표계에 상대적이다.이것은 특히 진보된 조명 기법과 함께 모델의 표면에 훨씬 더 세밀함을 더한다.
Unit u,v 텍스처 좌표에 해당하는 Normal 벡터는 정상 맵에 매핑된다.뷰어를 가리키는 벡터(좌측 방향의 경우 z: 0 ~ -1)만 존재하는데, 이는 뷰어를 가리키는 기하학적 벡터는 절대 표시되지 않기 때문이다.매핑은 다음과 같다.
X: -1 ~ +1 : 적색: 0 ~ 255 Y: -1 ~ +1 : 녹색: 0 ~ 255 Z: 0 ~ -1 : 청색: 128 ~ 255
연두색 연두색 짙은 청록색 연두색 연두색 짙은 청록색 연두색 짙은 자홍색 자홍색
- 일반적 포인트가 뷰어(0,0,-1)를 직접 가리키면 (128,128,255)로 매핑된다.따라서 시청자와 직접 마주보는 물체의 부분은 연한 파란색이다.일반 지도에서 가장 일반적인 색상.
- 텍스처의 오른쪽 상단 모서리를 가리키는 일반 포인트가 (255,255,128)로 매핑된다.따라서 물체의 오른쪽 상단 모서리는 보통 연한 노란색이다.컬러맵에서 가장 밝은 부분.
- 텍스처 우측을 가리키는 정상 지점(1,0,0)은 (255,128,128)에 매핑된다.따라서 물체의 오른쪽 가장자리는 보통 옅은 빨간색이다.
- 텍스처 상단(0,1,0)을 가리키는 일반 포인트가 (128,255,128)에 매핑된다.따라서 물체의 상단 가장자리는 보통 연한 녹색이다.
- 질감의 왼쪽(-1,0,0)을 가리키는 일반 포인트가 (0,128,128)로 매핑된다.따라서 물체의 왼쪽 가장자리는 보통 짙은 청록색이다.
- 텍스처 하단을 가리키는 정상(0,-1,0)은 (128,0,128)에 매핑된다.따라서 물체의 아래쪽 가장자리는 대개 어두운 자홍색이다.
- 텍스처의 왼쪽 하단 모서리를 가리키는 일반 포인트가 (-1,-1,0)로 매핑된다.따라서 물체의 왼쪽 하단 모서리는 보통 짙은 파란색이다.색 지도에서 가장 어두운 부분.
확산 조명 계산을 위해 도트 제품 계산에 정규가 사용되므로, {0, 0, –1}이(가) {128, 128, 255}의 값으로 리메이크되어 일반 지도(z) 좌표는 원근(깊이) 좌표와 화면의 RG-xy 평좌표에서 볼 수 있는 그런 종류의 하늘색을 제공한다는 것을 알 수 있다.{0.3, 0.4, –0.866} would be remapped to the ({0.3, 0.4, –0.866}/2+{0.5, 0.5, 0.5})*255={0.15+0.5, 0.2+0.5, -0.433+0.5}*255={0.65, 0.7, 0.067}*255={166, 179, 17} values ().z 좌표(파란색 채널)의 기호는 정상 지도의 정상 벡터와 눈의 정상 벡터(점 또는 카메라) 또는 광 벡터를 일치시키도록 플립해야 한다.음의 z 값은 정점이 카메라 앞(카메라 뒤가 아닌)에 있다는 것을 의미하므로 이 규약은 광 벡터와 일반 벡터가 일치할 때 표면이 정확하게 최대 강도로 빛나도록 보장한다.[6]
비디오 게임의 일반적인 매핑
대화형 정상 지도 렌더링은 원래 노스캐롤라이나 대학교 채플 힐에 있는 PixelFlow에서만 가능했다.[citation needed]이후 멀티패스 렌더링과 프레임 버퍼 작동을[7] 이용한 고급 SGI 워크스테이션이나 일부 트릭을 이용한 로우엔드 PC 하드웨어에서 정상적인 매핑을 수행할 수 있게 되었다.그러나 개인용 컴퓨터와 게임 콘솔에서 쉐이더의 출현으로 2003년 말부터 상용 비디오 게임에서 정상적인 매핑이 널리 쓰이게 되었다.실시간 렌더링에 대한 일반 매핑의 인기는 유사한 효과를 내는 다른 방법 대비 처리 요구사항 비율의 품질이 우수하기 때문이다.이러한 효율의 대부분은 거리 지수화된 상세 스케일링에 의해 가능해진다. 이 기술은 더 먼 표면이 덜 복잡한 조명 시뮬레이션을 덜 필요로 한다는 것을 의미하며, 주어진 질감의 일반 지도(cf. mipmapping)의 상세도를 선택적으로 감소시킨다.많은 저작 파이프라인은 일반 지도로 증강된 게임 내 중저해상도 모델로 구운 고해상도 모델을 사용한다.
기본 일반 매핑은 팔레트화된 질감을 지원하는 모든 하드웨어에서 구현될 수 있다.일반 매핑 하드웨어를 전문으로 갖춘 최초의 게임기는 세가 드림캐스트였다.하지만 마이크로소프트의 엑스박스는 소매 게임에서 그 효과를 널리 사용한 최초의 콘솔이었다.6세대 콘솔[citation needed] 중 플레이스테이션 2 하드웨어의 벡터 유닛을 사용하여 시뮬레이션할 수 있지만 플레이스테이션 2의 GPU만이 기본 제공되는 일반 매핑 지원이 부족하다.Xbox 360과 플레이스테이션 3용 게임은 일반적인 매핑에 크게 의존하고 있으며 시차 매핑을 사용한 최초의 게임 콘솔 세대였다.닌텐도 3DS는 레지던트 이블: 레크루션과 메탈 기어 솔리드: 스네이크 이터가 보여주듯이 정상적인 매핑을 지원하는 것으로 나타났다.
참고 항목
참조
- ^ 블린. 주름진 표면 시뮬레이션, 시그그래프 1978
- ^ 크리슈나무르시와 레보이, 고밀도 폴리곤 메시에 매끄러운 표면 적합, SIGGRAPH 1996
- ^ Cohen 등, 외형 보존 단순화, SIGRAPH 1998(PDF)
- ^ Cignoni 등, 단순화된 메시에 대한 속성 값을 보존하기 위한 일반적인 방법, IEEE 시각화 1998(PDF)
- ^ Mikelsen, 주름 표면 시뮬레이션, 2008년 재방문 (PDF)
- ^ "LearnOpenGL - Normal Mapping". learnopengl.com. Retrieved 2021-10-19.
- ^ Heidrich and Seidel, Realize, Hardware-accelerated Shading and Lighting 2005-01-29 Wayback Machine, SIGGRAP 1999(PDF)
외부 링크
![]() | 위키미디어 커먼즈에는 Normal mapping과 관련된 미디어가 있다. |
- Dot3 정상 매핑 뒤의 일반 지도 자습서 픽셀당 로직
- 브라우저 내부의 NormalMap-Online Free Generator
- sunandblackcat.com의 일반 매핑
- 블렌더 일반 매핑
- Normal Mapping 이전 OpenGL 확장을 사용한 팔레트 텍스처.
- 일반 지도 사진 디지털 사진을 레이어링하여 수동으로 일반 지도 만들기
- 일반 매핑 설명
- Simple Normal Mapper Open Source Normal Map Generator