- Depth채널 설정하기 -

마야에서 AOV랜더링 설정에 'Z'를 체크했다면, depth채널이 랜더링 레이어로 export된다. Nuke에서 depth채널을 활용하려면, blue채널값으로 카메라와의 거리 데이터가 있는 point 패스의 값을 전달해야 한다. 이번 포스팅에서는 Nuke에서 depth채널을 활용하는 방법에 대해 알아보자.


1 『 포인트카메라 패스(point_Pass) 데이터값 추출 』

AOV랜더링으로 생성된 pointCamera 패스값을 viewer로 살펴보면, 빨,노,녹색이 섞여 있다. 빨간색 계열로 갈수록 랜더링 카메라와 가까운 거리에 위치해 있다는 의미로 해석할 수 있고, 반대로 파란색일수록 촬영(랜더링 카메라)카메라와 멀리 떨어져 있다고 볼 수 있다.


잠시 색상환표를 떠올려보자.  


빨간색과 파란색을 섞으면 어떤 색상이 나타나는가? 빨간색에 파란색을 계속 섞으면 점점 녹색으로 변하고, 계속 섞으면 노란색으로 변한다. 아래 viewport에 빨간~노란색을 찾아낸다면, 현재 랜더링 카메라가 신호등 아래에 있음을 알 수 있다. 따라서 아래 사진에 보이는 pointCam 채널에서 노란색 부분은 랜더링 카메라에서 가장 멀리 떨어져 공간이다. 


빨간색, 녹색, 노란색으로 되어 있을 경우, 파란색 지점을 정확하게 알 수 없다. 따라서 invert노드를 아래에 붙여주고, pointCam채널에 마우스 포인터를 올려보자. 


아마도 blue채널값이 계속 변하는 것을 볼 수 있을 것이다. (카메라로부터 멀리 떨어진 거리는 blue값으로 알아낼 수 있다.) 즉, blue채널에 거리 데이터가 저장돼 있다고 기억하자. 위의 사진을 살펴보면, invert노드를 생성해서, pointCam에 붙여줌으로써 가장 멀리 있는 파란색이을 확실하게 찾아내고 있다.


포인트 카메라에는 알파채널이 있다. invert노드에서, 알파값과 premultply를 한다. (알파랑 rgb색이랑 곱하면, 검은색은 모두 빠진다)


2 shuffleCopy노드 생성

shuffleCopy노드를 생성하고, blue채널의 값을 depth채널로 전달한다. (shuffleCopy노드는 지난 포스팅에 자세하게 나온다) shuffleCopy파이프에 물감이 있다고 생각해보자. 만일 전달하고자 하는 물감(채널)이 있다면, 채널칸에 체크하면 된다. 해당 파이프를 통해 물감(채널)이 다음 단계로 전달이 된다.


depth채널의 아무곳에 마우스 포인터를 올리면, pointCam채널의 값에서 받은 blue채널값이 나타난다.(아래사진 참고) 이제 depth채널의 값을 활용할 수 있다. 


depth채널값을 활용하는 방법을 간단하게 요약하자면, "shuffle노드로 depth채널값을 뺀 후에 grade노드로 white, black point수치값을 입력한다"라고 표현할 수 있다. 


여기서 shuffle노드의 활용법을 이해할 겸, 하늘을 제거하는 노드방식에 관하여 알아보자.


shuffle노드는 특정 채널값을 받아서 전달하는 목적으로 이용한다. shuffleCopy와 다른점은 shuffle노드는 특정 채널값을 빼내는 역할을 할뿐 shuffleCopy노드처럼 특정채널과 특정채널을 혼합하는 기능을 하지는 못한다.


아래처럼, shuffle노드를 생성하고, background채널값을 받는다.


merge노드를 생성하고, operation(작동방식)을 from으로 선택한다. from방식에서는 A 파이프의 rgb값을 B파이프의 값에서 빼주는 역할을 한다. (minus와 혼동 X )


위에서는 from방식으로 하늘 배경을 모두 삭제하였다. 만일 하늘을 다시 살리고 싶다면, from방식으로 merge한 이후에 shuffle노드에서 background 채널을 꺼내서 다시 plus방식으로 merge를 하면, 하늘이 다시 나타난다.


from merge방식을 위해서 마야에서 랜더링할 때는 반드시 background레이어를 랜더패스에 넣어주도록 한다.