본문 바로가기

블렌더/모델링 스킬

[Blender] 머테리얼 베이크 (3) - 노멀맵 베이크 (Normal Map Bake)

반응형

노멀맵이란?

어떤 물체의 표면을 나타낼 때 색상정보는 Diffuse(혹은 Albedo)로 나타낸다. 그런데 색상 정보만 있는 오브젝트는 무언가 허전하고 입체감이 없다. 왜냐면 Albedo Map은 물체의 질감은 나타내지 않기 때문이다. 그렇다면 이러한 질감표현은 어떻게 할 수 있을까?

 

물체의 질감을 나타내는 정보중 가장 큰 역할을 하는것이 노멀맵이다. (이 외에도 Roughness, Metallic 등이 필요하다.) 

노멀맵이 빛에 따른 재질의 표현을 나타내기 때문이다.

 

노멀맵이 어떻게 재질을 표현할 수 있을까? 노멀맵은 광원에 따른 그림자 표현 방법을 2D 텍스쳐로 갖고있다. '빛이 어떤 방향에 있을 때 그림자는 어떻게 생긴다'라는 공식을 이미지 형태로 갖고 있는 것이다. (텍스쳐 형태로 갖고 있기 때문에 가볍다. 그래서 리얼타임 게임엔진에서 사용된다.)

 

Normal Map

 

광원 각도에 따른 3차원 높이정보를 3개의 차원(R, G, B)로 나타내기 때문에 하이트 맵과는 다르게 흑백이 아니다.

 

이번 포스팅에서는 이전 알베도 맵 베이킹에 이어 노멀맵을 베이크 하는 방법에 대해 작성하였다.


블렌더에서 노멀맵 베이크 방법

이전에 이어 작성된 포스팅이므로 노드를 그대로 활용하였다.

 

노멀맵을 적용하기 위해서는 어떤 노드를 노멀맵으로 적용시킬것인가에 대해 먼저 생각해보아야 한다.

 

최종 결과 노드를 바로 노멀맵으로 사용해도 되긴 하지만, 일반적으로 재질을 나타내는 부분과 색상을 나타내는 부분은 다르기 때문이다. 예를 들어, 어떤 옷의 질감을 표현하고자 한다면 단추가 있는 부분은 상대적으로 노멀맵이 강하게 적용되어 튀어나와 보이도록 해야 한다.

 

이는 하이트맵과 마찬가지로, 더욱 볼록한 부분은 1에 가까운 하얀색으로, 그렇지 않은 부분은 0에 가까운 검은색으로 지정하면 된다.

 

셰이딩에서 노드 연결

예시의 경우 옷의 질감을 나타낼 수 있는 노드에서 Normal Map을 생성하기로 한다.

 

 

Normal Map으로 나타내고자 하는 노드를 정했다면 해당 노드에서 Bump 노드를 생성하여 연결한다.

그레이 스케일 형태의 셰이더를 높이값을 가진 Bump로 변환하고 이를 Normal에 연결해주어야 한다.

 

Bump Map 이전의 노드(그레이 스케일) Bump Map 이후의 노드(RGB)

 

블렌더 설정

Albedo Map을 Bake 할 때와 마찬가지로 같은 세팅값으로 맞춰준다.

 

Render / Scene

 

Render Engine이 Cycles로 되어있는지 확인하여 Bake가 가능하도록 한다.

 

Bake에서는 Type을 Normal로 변경해 주면 된다.

 

Render / Bake

 

다시 셰이딩 탭에서 이미지 에디터를 열어주고 새로운 이미지를 생성한다.

아래처럼 New로 이미지 텍스처를 생성하고 텍스처 맵의 크기도 원하는 대로 지정해 준다. (필자의 경우 4K)

 

Image Editor

 

Node의 경우도 Image Texture 노드를 추가한 다음 방금 만들어 주었던 이미지를 넣는다.

 

 

이제 Bake를 눌러서 노멀맵을 생성하고 이미지 형태로 저장하면 된다.

 

생성된 Normal Map


유니티에서 Normal Map 사용

생성한 노멀맵 이미지를 유니티로 임포트 한다.

이때 아래처럼 최대 사이즈와 밉맵등은 최적화와 퀄리티 사이를 잘 조절하여 목적에 맞게 설정한다.

Texture Type은 반드시 Normal Map으로 되어있어야 한다.

 

Import Setting

 

Albedo Map과 마찬가지로 머테리얼에 Normal Map을 넣어주면 모든 준비는 끝이다.

 

 

노멀맵의 세기는 수치를 변경하면 된다.

아래는 Normal Map의 유무에 따른 재질 변화이다.

 

Normal Map 미적용 (좌) Normal Map 적용 (우)

 

 

반응형