Blender 7일차 - "Mapping"

Min Hyeok·2023년 1월 6일
0

3D

목록 보기
8/15

맨날 컴퓨터로 공부하고, 쉬면 폰보고,, 눈이 아프다.

그래서 어제는 쉬어갔다.(?)

여튼, 일주일차다. 열심히 해보자.

Mapping?

우리는 지금까지 어떤 Object를 만들고 색상을 입히고, 광택을 주거나, Metalic 특성을 넣는 등 재질(Material)을 입혀왔다.

뭐 UV Editor나 Shader Editor 등으로 수정을 해줬는데, 이 때 "매핑"이라는 것에 대해서 더 자세히 보고자 한다.

Shader Editor

Shader Editor를 들어가면, 위와 같이 "Node"들이 몇개 있을거다. (지금 화면은 필자가 재질을 모두 입힌 완성체라서 뭐가 덕지덕지 많은거지, 원래는 Principled BSDF, Material Output밖에 없을 거다.)

Principled BSDF??

Bidirectional Scattering Distribution Function

.. 뭔 소릴까.

일단, 조금 구체적인 개념은 "물체에 빛이 들어왔을 때, 빛이 어떻게 작용하는가를 계산하는 기능"이라고 생각하면 되겠다. 그래서 BSDF node를 Material Output과의 연결을 끊어준다면

이렇게, 빛이 적용이 되지 않는다.

뭐, 쉽게 설명하면

combines multiple layers into a single easy to use node.

출처

Principled BSDf는 쉐이더에서 여러 레이어들을 사용하기 쉽도록 하나의 노드로 합쳐놓은 것이라고 보면 되겠다.

Node

노드의 왼쪽으로 어떤 선들이 이어져있으면, 해당 값들은 Input이 되고, 오른쪽으로 어떤 선들이 이어져 있으면 Output이 된다.

만약 Shift + A 를 누른 후, ~ Texture 를 하나 추가하고 이를 Principled BSDF 의 Base Color의 Input으로 이어준다면 어떤 Texture를 가지고 재질을 만들 수 있다.

만약 Image Texture을 Principled BSDF의 Base Color와 이어준다면, 이미지를 가지고 재질을 만들 수 있는 것이다.

그런데 이렇게 단순하게 Base Color만 이어진다면, 그냥 "객체에 이미지를 겉으로 붙인" 느낌이 될 것이다.

쉽게 말하면, A4용지에 어떤 그림을 복사해서 박스에 붙이는 느낌이라고 보면 되겠다.

But 우리가 원하는 "재질"은 이런게 아니고, 재질의 특성에 맞게 울퉁불퉁하게 보이는걸 원한다.

만약 벽돌무늬 재질을 넣으면, 실제 벽돌처럼 울퉁불퉁하길 원하지, 단순히 그림으로 보이게 하는 것을 원하는게 아니다.

그래서, 재질이 실제로 울퉁불퉁하게 만들어지는 방법들이 몇가지 있다.

Map의 종류

Normal Map

  • 실제 매쉬를 변형하지 않는다.
  • 그림자를 어떻게 표현할 것인가.
  • RGB값 가지고 표현
  • XY값까지 한번에 표현해줄 수 있는 맵 방식

Bump Map

  • 실제 매쉬를 변형하지 않는다.
  • 그림자를 어떻게 표현할 것인가.
  • 흑백값으로 표현
  • 단순한 높낮이 값(Z값)만을 표현

Displacement Map

  • 실제 매쉬를 변형함. 우리가 원하는 "울퉁불퉁한 느낌"과 가장 근접한 표현방식.

=> 이렇게 재질을 우리가 원하는 느낌으로 표현할 수 있는데, 문제는.. "재질 이미지"를 어떻게 구하냐가 또 중요해진다. 우리가 일일히 만들 수는 없는 노릇이니까.

https://polyhaven.com/

이 곳에서 무료로 고화질의 텍스처파일을 얻을 수 있다.

약간 flaticon이나 pixabay같은 사이트라고 생각하면 되겠다.

여기서 아무 텍스처파일이나 일단 받아보면

이런식으로 이미지 하나가 아니라 여러가지의 이미지들이 들어가있다.

엥??

이미지 파일 하나도 아니고, 여러개가 들어있다고 당황하지 말자. 앞서 말했던 Map의 종류와 연관이 있다.

이런 식으로 동그라미 쳐진 부분에 있는 부분을 확인하면 된다.

  1. col (color) OR diff OR diffuse : 컬러가 들어있는 값. 그동안 Base Color에 이미지를 이어주는 데에 사용될 것이다.

  2. height OR disp : Displacement Map에 이어질 것이다. 평면에 높이(깊이) 개념을 추가하여 울퉁불퉁한 느낌을 만들어 줄 것이다.

  3. nor : Normal Map에 이어질 것이다. 그림자의 방향을 조절한다고 보면 된다.

  4. rough : 보는 그대로, Roughness에 이어질 친구다. 빛 반사에 대한 값을 조절해주는 이미지라고 보면 되겠다.

재질 적용

이런 식으로 사용하면 된다.

diff의 경우, Base Color에 이미지를 이어주는 역할이니 그냥 Base Color와 이어주면 된다.

Roughness의 경우도 반사값 표현만 해줄테니 그냥 바로 Roughness와 이어주면 된다.

nor의 경우엔 출력값이 노란색(Color), BSDF의 입력값이 보라색(Normal)이므로, Adapter의 역할을 해줄 Normal Map 노드를 추가해서 이어준다.

disp도 nor과 비슷한 경우이므로 Displacement 노드 하나를 추가하여 Material Output의 Displacement에 이어준다.

그러면 이렇게, 꽤 그럴싸한 텍스처가 적용이 된다.

(Cycle로 렌더링을 해야해서 컴퓨터 사양 이슈로 인해 너무 긴 시간이 걸려,, 일단은 캡처이미지로 대체했다.)


여기까지.

0개의 댓글