노멀 맵은 왜 파란색과 보라색입니까?


11

일반 매핑에 대해 배우고 있습니다. RGB 값이 XYZ로 변환된다는 것을 이해했지만 내 질문은 어떻게 변환되며 노멀 맵이 파란색과 자주색 인 이유는 무엇입니까?

답변:


12

노멀 맵은 -1에서 1까지의 벡터를 포함하기 때문에이 범위를 0-> 1로 늘려 RGB 범위 내에 맞출 수 있습니다.

따라서 보통 법선에 변형을 적용하여 볼 수있는 것으로 변환합니다.

vec3 colour = vec3(0.5) + normal * 0.5;

파란 색은 노멀 맵이 기본 (0,0,1) 방향으로 프리미티브 (삼각형 등) 노멀을 기준으로 사용되어 삼각형 노멀과의 편차가 없음을 나타 내기 때문입니다. 일반적으로 프래그먼트 셰이더는 런타임시 현재 픽셀 당 법선과 관련하여이 법선을 회전시켜야합니다.


이 코드 vec3 colour = vec3(0.5) + normal * 0.5;는 RGB를 XYZ로 변환합니까?
Abhinay Singh Negi

1
@AbhinaySInghNegi 아니요, 색상은 RGB이고 일반은 XYZ이므로 XYZ를 RGB로 변환합니다. RGB를 XYZ로 사용하려면 다음을 사용하십시오.vec3 normal = (colour - vec3(0.5)) * 2.0;
bram0101

20

탄젠트 공간 노멀 맵만 주로 파란색입니다. 이는 파란색이 (0,0,1)의 법선을 나타 내기 때문에 삼각형이 평면 x 및 y에있을 때, 즉 표면에 수직 일 때 변하지 않는 법선이 될 것입니다. 접선, x 및 접선, y (이중 법선이라고도 함)는 빨강 및 녹색 채널로 인코딩되며 이러한 형식은 삼각형 표면의 점에 대한 접선 공간 법선을 만듭니다.

접선 공간 법선 맵이 빨간색 (1.0, 0.0, 0.0)으로 만 색상을 인코딩하는 경우 삼각형 표면에 평행 한 접선 공간 법선이 생성됩니다. 이것은 삼각형이 표면에서 90도 정도만 켜지고 삼각형을 볼 수없는 시점에서 뷰 벡터에서만 빛을 내야한다는 것을 의미하기 때문에 결코 보이지 않습니다.

월드 공간 노멀 맵은 구를 통해 단위 노멀을 인코딩하므로 채널당 [-1, 1]에서 [0, 1]까지 인코딩되면 주로 다른 색상이 될 수 있습니다.

여기에서 비교를 볼 수 있습니다.

여기에 이미지 설명을 입력하십시오

실제로 노멀 맵은 일반적으로 BC5 와 같은 2 채널 형식으로 인코딩되어 실제로는 x와 y 만 저장합니다. z는 단위 벡터라는 것을 알고 있습니다. 이를 통해 파일 크기를 늘리지 않고도 더 많은 비트로 더 높은 정밀도를 유지할 수 있습니다.


탄젠트 공간은 고유하게 매개 변수화되지 않지만 탄젠트 공간 주변의 메쉬 + 법선 맵이 많이 있습니다. 탄젠트 공간 기준을 정의하는 일반적인 방법이 있습니까?
Alec Jacobson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.