-실사 쉐이딩 (디스맵 포함일때) -


인테리어 쉐이딩의 필수코스, '실사 쉐이딩'에 관해 알아보자. 실사 느낌을 내기 위해서는 Specular 맵과 범퍼나 디스맵을 효과적으로 사용해야 한다. 가장 강력한 실사느낌을 내려면, 모델링을 예술적으로 하면 된다. 가령, 금이 간 부분까지 아주 세밀하게 모델링으로 대체하겠다고 결심했다면, 굳이 텍스처로 실사 느낌을 자아낼 필요가 없다.


하지만 어떤 분야건, 고수는 움직임이 적은 법이다. 나무토막 장식재 하나를 실사로 하겠다고, 10만 폴리곤 면수를 만들고 있다면? CG로 먹고 살수가 없다. 그건 그냥 예술이다.

대중적인 CG작업에서는 '최소'를 지향한다. 프로그래밍에서도 반복 코드를 하지 말라는 '룰'이 있듯, CG역시 최소 폴리곤 면을 통해 'Specular' + '디스맵' + '라이팅' 으로 실사느낌을 표현해야만, 진정한 장인의 경지에 올라갈 수 있다.


결국 시청자들이 원하는 건, 랜더링 이미지와 함께 전달되는 메시지가 아니겠는가?

1:: 『 맵 준비 』

실사 쉐이딩을 만들기 위해서는 3가지 종류의 맵을 준비해야 한다. 


 '실사 텍스처'   ' Roughness 맵'  'Occlusion 맵' 


실사 텍스처는 일단 기본이다. Roughness맵은, Specular로 들어오는 빛의 값을 실제 사진의 광택으로 표현할 때 사용한다. (멘탈레이나 기존의 specular 맵이라 생각하면 된다)

Occlusion맵은, 명암의 정도를 뚜렷하게 표현해주는 맵이다. (Specular 색에 사용) 


2:: 『 Base칼라 만들기 』

Base의 색상값으로는 위에서 열심히 준비한 실사 텍스처를 삽입한다. (아래사진 참고)


3:: Specular -> roughness에 Roughness맵 삽입

 roughness맵은 포토샵에서 '이미지 조정 => graystyle' 기능을 활용해서 만들자. 채도값을 줄여서 밝기를 나타낸 맵 정도로 해석하면 되겠다. roughness맵을 삽입하면, specular 반사광이 실사처럼 조절된다. 


4:: 『 Occlusion 노드 만들기  』 

4-1) file 노드 생성하기

-> 하이퍼쉐이드에서 탭키를 눌러서 file을 검색하면, file texture노드가 나타난다. 

-> file 텍스처 노트에서 occlusion맵을 선택한다. occulusion맵은 포토샵에서 만들수 있다. (구글링 참고)


4-2) ramp노드 생성하기

-> 하이퍼쉐이드에서 탭키로 'ramp'를 검색하면 ramp 텍스처가 나온다.

-> ramp 텍스처 설정을 아래처럼 한다.


4-3) multiply 노드 생성

-> 역시 하이파쉐이드에서 'mult'까지 검색하면, multiply-divide 노드가 나타난다.

-> occlusion맵이 들어간 file텍스처 노드의 outcolor노드와 ramp텍스처의 outcolor 노드를 multiply-divide노드의 input1, input2번에 연결한다. 


4-4) Specular 노드 연결

-> 아래 사진처럼, Specular Color값에 multiply-divide노드를 연결한다. 


5:: 『IOR 맵 넣기  

목재 같은 경우, 빛의 난반사 굴절이 크지 않고, 어둡다. 따라서 IOR맵은 아래와 같이 포토샵에서 만들어서 넣어준다. 만일 밝은 실사쉐이더라면 흰색의 IOR을 넣거나 밝기 값을 올린다.




6:: 『디스맵 설정하기 

 디스맵은 하이퍼쉐이드에서, 해당 쉐이더를 클릭하면 연결된 'Shading Group'노드에 넣어준다. 아래 사진에서는, 가장 우측에 있는 SG노드이다. 쉐이딩 그룹 노드의 displacement map 설정창에 파일을 클릭하고, dismap을 넣어준다. 


** 디스맵은 높낮이를 나타내주는 맵이다. (흰색은 튀어나온 부분을 나타내고, 검은색으로 갈수록 아래로 들어가는 부분으로 프로그램이 해석한다)


위와 같은 디스맵을 두고, height맵이라고도 한다. 대부분, 디스맵은 color space설정을 'raw'로 한다.


* 디스맵 값 설정하기

바닥 폴리곤을 선택하면, Attribute 창에 Arnold 매뉴가 있다. Arnold 매뉴에서는 subdivision 탭이 있는데, Displacement Attribute 설정을 할 수 있다. subdivision의 iteration값을 높이면, 값만큼 더 계산을 한다. (정교한 값 나옴, 속도 느려짐)


subdivision은 말 그대로 잘게 잘게 분해한다는 의미이므로, 모델링 면수가 적어도 그만큼 한것처럼 늘려서 계산을 해준다는 의미다.


중요한 부분은 아래 사진의 Height값이다. Height값을 어떻게 설정하느냐에 따라, 바닥재가 담요를 뚫고 올라올 수도 있다. (입체감이 표현) 아래에서는 Height값을 계속 조절하고 있는 상황이다.


* 디스맵 Height 수치를 조절한 최종 아웃풋

디스맵 Height값과 기타 subdivision값을 조절해서 랜더링을 하다보면,  한 두시간이 그냥  훌쩍 지나가는 경우가 발생한다. 따라서 수치결과값을 기록했다가, 향후 사용할 default값을 사전에 저장해둔다면, '영리한 작업자'가 될 수 있다.