게임의 보라색 그림은 물감이 아니다…빛의 방향 담은 ‘노멀맵’

Unity가 공개한 셰이더와 재질 표현 시연의 3D 바위·눈 지형. 산의 윤곽 전체를 노멀맵만으로 만들었다는 예시는 아니다Unity Technologies · Rinaldo Tjan의 2021년 공식 셰이더·재질 시연1920×1080 원본 · 지형 전체가 노멀맵만의 결과라는 뜻 아님 · 보도 인용(허가 취득 아님)
Unity가 공개한 셰이더와 재질 표현 시연의 3D 바위·눈 지형. 산의 윤곽 전체를 노멀맵만으로 만들었다는 예시는 아니다

게임 속 돌벽의 틈과 굴곡이 뚜렷한데, 옆에서 보면 표면은 평평할 수 있다. 실제 돌을 모두 튀어나오게 만든 것이 아니라 ‘노멀맵’으로 빛이 닿는 방향을 달리 계산했기 때문이다. 원본 그림이 푸르스름한 보라색인 것도 돌에 그 색을 칠하려는 뜻이 아니다.

색칠할 정보와 빛을 계산할 정보는 다르다

Unity의 공식 설명에서 일반 색상 텍스처는 표면의 색을 맡는다. 노멀맵은 각 지점의 표면이 어느 방향을 향하는 것처럼 계산할지 기록한다. RGB의 빨강·초록·파랑 성분을 방향의 세 성분으로 읽어, 같은 평면에서도 어떤 부분은 빛을 받고 다른 부분은 어둡게 보이도록 만드는 방식이다.

금속판의 볼록한 리벳·흠집 표현과 그에 대응하는 보라색 노멀맵을 함께 보여주는 Unity 공식 예시
Unity 공식 기술 문서의 금속판 예시. 오른쪽 보라색 노멀맵에는 리벳과 흠집의 방향 정보가 담겨 있고, 왼쪽에서는 그 정보가 표면 조명에 반영된다. / Unity Technologies · 공식 노멀맵 문서의 금속판·텍스처 예시842×404 원본 · 확대 없음 · 보도 인용(허가 취득 아님)

따라서 노멀맵 파일을 그대로 열었을 때 보이는 보라색과 청록색을 완성 화면의 물감으로 해석하면 엉뚱한 답이 된다. Unity 문서의 평평한 부분 예시인 #8080FF는 표면 방향을 바꾸지 않는 값에 해당한다. 다른 색은 그 지점의 조명 계산에 쓸 방향이 다르다는 정보다.

빛을 받는 모양은 달라져도 윤곽까지 생기지는 않는다

이 방식만으로 기본 모델의 다각형이 실제로 솟거나 패이지는 않는다. 정면에서는 양각 문자나 울퉁불퉁한 돌처럼 보이다가 비스듬한 각도에서는 평평한 표면이 드러날 수 있다. ‘디테일이 보인다’와 ‘그 모양의 입체 구조가 있다’는 서로 다른 말이다. 큰 산의 외곽선까지 노멀맵 하나가 새로 만드는 기법이라는 뜻은 아니다.

높이맵과도 저장하는 정보가 다르다. Unity가 비교한 높이맵은 밝기로 높낮이를 표현하지만, 노멀맵은 방향 정보를 담는다. 3D 에셋에서 보라색 그림을 발견했다면 색이 깨졌다고 판단하기 전에, 표면 색용 그림인지 노멀맵용 그림인지부터 구분하면 된다.

출처로 확인한 내용

5건

노멀맵의 RGB 성분은 표면 방향 정보를 저장한다.

노멀맵은 표면 조명 계산을 바꾸며 기본 메시 구조 자체를 바꾸지 않는다.

공식 문서의 #8080FF 예시는 표면 방향 변경이 없는 값이다.

비스듬한 시점에서는 실제 평평한 표면이 드러날 수 있다.

높이맵의 밝기 기반 높낮이 정보와 노멀맵의 방향 정보는 구분된다.

출처 1곳

비슷한 주제

모두 보기