작성자 : 박정원 * http://www.jwillust.com
정리 한다 해놓고 넘 시간을 끌었던거 같습니다.
별것 아니지만 반드시 알아야 하고 해야 할 것이 있는데 그것을 몰라 힘들어 하셨던 분들에게 조금이나마 도움이 되길 비는 마음에서 간단히 정리를 해보았습니다.
흔히 SSS 라고 하죠, Sub Surface Scattering의 약자로 피부나 종이, 반투명 물체들의 표면에 빛이 닿아서
투과하지 못하고 산란되면서 이루어지는 현상으로 생각하시면 됩니다. 태양을 손으로 가릴 때 손가락 테두리로 붉게 반투영되는
느낌이라면 딱 맞는 예일거 같네요. 이 효과를 마야에서 Non-Physical 방식으로 보다 빠르게 처리 할수 있도록 해주는
쉐이더가 멘탈레이 쉐이더 중에 있습니다. 이를 이용하여 사람의 얼굴 쉐이딩하는 방법을 정리해 보도록 하겠습니다.
하시는 중에 궁금한점은 언제라도 제게 문의 하시면 되구요, 이 튜토리얼에 대한 저작권과 이미지 사용에 관한 저작권은 모두 저에게 있으므로 사용,또는 게시시 반드시 제게 알려주셔야 합니다.
오늘 최종으로 만들어볼 이미지는 대략 다음과 같이 나올것 입니다.
우선 쉐이더를 적용할 준비된 오브젝트가 있어야 하겠죠? 저는 이것으로 할거구요 UV및 컬러맵,범프맵,스페큘러맵 정도까지 만들어 놓습니다.
SSS쉐이더는 라이트와 카메라 각도와 밀접한 관계가 있습니다.
우선 3점 조명을 기본으로 다음과 같이 셑팅을 하였습니다. 역광에서의 효과를 과장하기 위해서 Back light의 세기를 좀 높게 설정했습니다. 여러분 나름데로의 라이트 셑팅을 꾸미시길^^
지금부터는 직접 SSS쉐이더를 생성하여 오브젝트에 적용하기 까지의 과정을 정리해 보겠습니다.
우선 SSS 쉐이더를 다음과 같이 생성합니다.
생성된 쉐이더의 상위 쉐이딩 그룹의 어트리뷰트를 보면 Mentalray안에 아래그림과 같이 Light Map Shader 탭이
있습니다. 그림처럼 클릭하면 멘탈레이와 관련된 노드들을 선택을 할수가 있는데 그중 misss_fast_lmap_maya를
선택합니다.
Hypershade창에서 아래와 같은 노드가 생성되어 연결된 것을 확인할 수 있습니다.
생성된 misss_fast_lmap_maya 노드의 어트리뷰트를 보면 Lightmap write 에서 그림과 같이 클릭하면 멘탈레이 텍스쳐가 생성되어 연결됩니다.
다시 hypershade창을 보면 아래와 같이 연결이 될겁니다.
다음은 생성된 멘탈레이 텍스쳐를 처음 생성한 SSS쉐이더의 Lightmap으로 연결을 해줘야 합니다. Hypershade창에서
멘탈레이 텍스쳐를 마우스 가운데 버튼 클릭하여 아래와 같이 SSS 쉐이더의 해당 탭으로 가져와 드롭 하면 되죠~
이렇게 함으로써 아래와 같이 SSS 쉐이더의 기본 필수 노드들의 준비가 된 것입니다. 이 과정을 몰라서 처음부터 어려움을 겪으시는 분들이 많으실거라 생각됩니다.
중요 : 전에 생성한 멘탈레이 텍스쳐의 어트리뷰트에서 다음과 같이 설정을 해줍니다. 화일 크기는 렌더링할 이미지의 크기에 따라
다르게 설정하시면 되지만 그리 높게 설정을 안하셔도 될겁니다. 그리고 반드시 File size depth를 32bit로 하시구요.
SSS쉐이더가 적용되어 렌더링시 lightmap을 생성하여 저장을 하게 되는데 image Name탭에서 그 경로와 화일명을 아래와 같은 식으로 지정해주시면 됩니다.
자~ 그럼 이 쉐이더를 준비된 오브젝트에 assign시키고 렌더링을 걸어보겠습니다.
아직 이상하죠^^;; SSS쉐이더에는 아주 많은 옵션들이 있습니다. 그 중 아래와 같이 Subsurface Scattering
Layer 안의 옵션들은 피부의 겉부터 속까지의 설정을 해주는 것이라고 생각하시면 됩니다. 이 부분의 수치들을 변경하여 렌더링을
다시 걸어보겠습니다.
노이즈가 많이 없어졌죠? 그러나 아직 사람의 피부는 아닙니다.
여기의 수치들은 제작한 오브젝트의 사이즈와 관련이 있습니다. 제가 제작한 오브젝트와 여러분께서 하신 오브젝트간의 차이가 분명
있으므로 저 수치들은 결코 적절한 수치가 아닐수가 있습니다. 각 옵션이 뜻하는 것을 잘 파악하여 적절한 수치들을 찾아나가시길
바랍니다.
Subsurface Scattering Layer 아래에 있는 specular와 관련된 옵션들의 수치도 조금 바꿔보겠습니다.
조금 나아졌죠? 그러나 아직 사람의 피부는 아니고 마치 리얼돌?과도 같은 느낌이 나왔네요.
우리는 앞서 미리 제작한 컬러맵등을 사용하여 이미지를 얻을 것이기 때문에 뒤에 몇가지 맵을 적용시킨 후에 다시 수치들을 조절해가며 렌더링을 해서 원하는 이미지를 찾아가도록 하겠습니다.
준비된 범프 이미지를 아래와 같은 노드로 연결해줍니다.
SSS쉐이더에서 직접 범프를 생성하게 되면 bump2d3 노드가 생성이 안되고 직접 화일맵이 연결이 되는 비정상적인 상황이 발생하게 됩니다. 그러기 때문에 반드시 아래의 노드를 생성해서 직접 연결을 하는 방식으로 해줘야 합니다.
렌더링을 하면서 적당한 범프 값을 찾도록 합니다.
다음은 컬러맵과 gammaCorrect, ramp 노드를 이용하여 SSS쉐이더에 필요한 노드들을 구성합니다.
각 칼라에 해당하는 이미지를 포토샵에서 제작하여 따로 연결시켜줘도 상관은 없지만 하나의 화일을 가지고 gammacorrect노드를 사용하면 다양한 칼라값의 노드를 얻을수가 있기 때문에 여러모로 보다 효율성이 있게 됩니다.
gammacorrect노드의 어트리뷰트 입니다. 각각 R G B 의 값에 대응하므로 적절한 값을 찾으시면 됩니다.
위에서 작성한 노드를 SSS쉐이더에 차례대로 연결시켜 줍니다. 포토샵에서 제작한 컬러맵은 피부의 가장 바깥 층인
Epidermal Scatter Color에 연결해주고 gammacorrect노드를 이용하여 그 보다 좀 밝게 만들어준 노드는
Diffuse layer안의 Overall / Diffuse color에, 나머지도 그림과 같이 연결시켜 줍니다.
그런후에 다시 렌더링해 볼까요?
컬러맵을 사용하다보니 예전의 리얼돌과 같은 느낌은 조금 덜어졌지만 그래도 많이 아쉽죠~
이번엔 스페큘러맵도 같은 방법으로 연결시켜 줍니다.
다시 렌더링해 보죠~
아직까진 채도도 높고 scattering도 과도하고 specular도 이상하고,,,,암튼 많은 수치 조절과 많은 렌더링 테스트를 요구합니다.
많은 렌더링을 통한 끈기있는 테스트만이 좋은 결과를 낳게 합니다^^;;
이 튜토리얼을 통해 간단하게나마 SSS쉐이더를 적용키 위한 필수 조건과 개념들을 얻으셨기를 바라면서 짧게나마 글을 마무리 지을까 합니다.
감사합니다^^
|
|
다음은 컬러맵과 gammaCorrect, ramp 노드를 이용하여 SSS쉐이더에 필요한 노드들을 구성합니다.
각 칼라에 해당하는 이미지를 포토샵에서 제작하여 따로 연결시켜줘도 상관은 없지만 하나의 화일을 가지고 gammacorrect노드를 사용하면 다양한 칼라값의 노드를 얻을수가 있기 때문에 여러모로 보다 효율성이 있게 됩니다.
->요기 단락에서 램프 노드를 사용하신다고 했는데여.
램프노드에 어디에다가 연결하는지요. 컬러에다가 상중하로 넣으면 되나요?
좀더 자세하게 알려주셨으면 해서여 ㅜㅜ.