본문 바로가기
Computer Graphics/ShaderLab, HLSL

[ShaderLab] NormalMap

by 진현개발일기 2024. 2. 28.

■ Footage 

 

 

Metalic과 Smoothness 프로퍼티를 추가 및 적용한 뒤 노말맵을 적용한 모습이다.

노말맵은 텍스처의 디테일을 살리기 위해 존재하는 눈속임용 맵이다. 벡터 데이터들로 이루어져있으며 이러한 데이터들은 일반적인 게임용 텍스처 포맷인 DXT1 혹은 DXT5가 아니라 DXTnm의 형식으로 집합되어 있다.

 

위와 같이 다른 이유는 일반적으로 사용하는 포맷을 그대로 가져다 쓴다면 벡터 데이터들의 품질 저하를 일으킬 수 있기 때문에 AG파일 포맷인 DXTnm 포맷을 만들어 사용하게 된 것이다. 이 포맷은 노말맵의 RGB중 R과 G 값의 퀄리티를 최대한 보전하여 A와 G에 개별적으로 넣어 저장한다. R과 G는 X와 Y에 대응되며 Z는 삼각함수를 이용해 수학적으로 추출된다.

 

그러므로 벡터 데이터의 집합인 노말맵을 온전히 생성해내려면 아래와 같이 'UnpackNormal' 함수를 사용해야한다.

 

■ 코드

 

 

728x90