육면체의 각면에 다른 도형을 넣는 쉐이더

위와 같은 육면체가 있는데 각기 다른 면에 대해 서로 다른 형태의 도형을 넣는 쉐이더 코드는 다음과 같습니다.

처음 코딩을 배웠을 때 책에 인쇄된 코드를 보며 설레였던 기분을 위의 쉐이더 코드를 보면서 다시 느끼게 되었습니다. 레고를 조립하듯 코드를 작성하는 것도 나쁘지 않다 정도가 아니라 현재와 미래에서 매우 중요한 코드 작성 방법 중 하나로 자리잡고 있습니다.

테이블 모델링

테이블의 나무 재질에 대한 쉐이딩은 다음과 같습니다. 아래의 쉐이더 코드에 대한 출처는 이미지를 클릭하면 확인할 수 있습니다.

모델링 한 최종 결과는 다음과 같습니다.

평면(Plane)의 앞면과 뒷면에 서로 다른 텍스쳐 맵핑

먼저 매시에 대한 UV 데이터를 앞면과 뒷면에 대해 서로 다르게 설정해 줘야 함. 위의 화면을 보면 앞면에 대한 UV는 처음부터 기본사용으로 생성된 UVMap이고 뒷면은 Back으로 직접 생성한 경우이다. UVMap을 클릭해 선택하면 UV Editor의 UV 설정값이 앞면에 대한 이미지에 맞춰 있어야 하고 Back을 클릭해 선택하면 UV 설정값이 뒷면에 대한 이미지에 맞춰 있어야 함.

이렇게 UV를 앞면과 뒷면에 대해 설정해 뒀다면 Shader 편집에서 다음처럼 노드를 구성함. 주의해서 봐야할 노드는 Attribute 노드를 통해 직접 사용할 UV 데이터를 지정할 수 있다는 점과 Geometry 노드를 통해 앞면과 뒷면에 대한 구분이 가능하다는 점임.