지난주에는 객체의 높이를 따라 그라디언트를 만들기 위해 Color Ramp를 객체의 Z축을 따라 매핑하는 방법을 보여주는 영상을 올렸습니다. 이때는 로컬 모드와 글로벌 모드 모두를 사용했습니다.



영상 자막 텍스트

안녕하세요! 지난주에는 객체의 높이를 따라 그라디언트를 만들기 위해 Color Ramp를 객체의 Z축을 따라 매핑하는 방법을 보여주는 영상을 올렸습니다. 이때는 로컬 모드와 글로벌 모드 모두를 사용했습니다.

이번 튜토리얼에서는 축 기반 매핑 개념을 확장해 색상 그라디언트와 두 Shader를 혼합하는 방법을 소개합니다. 구체적인 예로는 색상 있는 진행 바를 만들 것입니다. 하지만 여기서 보여줄 방법들은 다른 상황에도 응용할 수 있습니다. 특히, 제어용 Empty를 수평으로 이동하면 빨간색에서 노란색을 거쳐 녹색으로 변하는 그라디언트를 가진 바가 진행하는 것을 볼 수 있습니다.

먼저 초기 씬 구성을 보여드리겠습니다. Plane 오브젝트가 있으며, X축을 따라 약간 늘어나도록 스케일이 조정되어 있습니다. 편의를 위해 오브젝트의 Origin은 왼쪽 위 꼭짓점에 두었습니다. 이 오브젝트에는 회전 및 스케일 변환도 적용되어 있으며, 이 Plane은 더 이상 수정되지 않을 것입니다.

씬에 있는 다른 오브젝트는 Empty입니다. Plane의 Origin 위치에 배치되어 있고, 마찬가지로 회전 및 스케일 변환이 적용되어 있습니다. 이 Empty는 바의 진행 상황을 제어하게 되며, Plane의 Material만으로 구현될 것입니다. Plane의 지오메트리는 수정되지 않습니다.

Plane의 Material에는 두 가지 요소가 필요합니다. 먼저, Plane의 X축을 따라 그라디언트를 정의해야 합니다. 이것이 완료되면, Empty의 오른쪽 부분은 투명하게, 왼쪽 부분은 우리가 정의한 그라디언트로 색칠되도록 해야 합니다.

오브젝트 전체에 색상 그라디언트를 적용하는 것부터 시작합시다. 지난 튜토리얼과 마찬가지로 Texture Coordinate 노드, Separate XYZ 노드, Color Ramp 노드가 순차적으로 연결되어야 합니다.

Plane의 자체적인 크기를 기준으로 하기 때문에 Texture Coordinate 노드의 Generated 출력을 사용합니다. Separate XYZ 노드에서는 Plane의 로컬 수평 축을 나타내는 X 출력을 사용합니다.

이제 Color Ramp를 Emission 노드에 연결해야 합니다. 우리는 Material이 항상 보이고 조명에 영향을 받지 않도록 하길 원하기 때문입니다. 따라서 기본 Principled 노드를 Emission 노드로 교체합니다.

이제 Color Ramp는 원하는 대로 커스터마이즈할 수 있습니다. 제 경우에는 왼쪽에 빨간색, 중앙에 노란색, 오른쪽에 초록색 마커를 배치하고, Ease 보간을 사용하여 빨강과 초록이 양 끝에만 제한되지 않도록 설정했습니다.

Empty의 왼쪽 부분만 색칠하고 오른쪽은 투명하게 만들기 위해, 먼저 Shader 노드 두 개를 추가해야 합니다. 구체적으로, Transparent 노드와 Mix Shader 노드입니다. 꼭 Shader Mix 노드를 선택하고, Color Mix 노드와 혼동하지 않도록 주의하세요!

그런 다음, Emission 노드를 Mix Shader 노드의 첫 번째 Shader 입력에 연결합니다. Transparent 노드를, 완전한 흰색으로 설정한 후, Mix Shader 노드의 두 번째 Shader 입력에 연결합니다.

Mix Shader 노드의 출력을 Material Output 노드의 Surface 입력에 연결합니다. 이제 빨강에서 노랑을 거쳐 초록으로 이어지는 그라디언트를 가진 반투명 Material이 만들어졌습니다.

Mix 노드에서는 Color든 Shader든 간에 두 번째 입력이 완전히 적용되려면 Factor 값이 1이어야 합니다. 따라서 Empty의 위치 기준으로 오른쪽에서 Factor가 1이 되도록 만드는 방법이 필요합니다.

이를 위해 Texture Coordinate 노드와 Separate XYZ 노드를 추가하고, Separate XYZ 노드의 X 출력을 Mix Shader 노드의 Factor 입력에 연결합니다.

하지만 이번에는 Texture Coordinate 노드의 Object 출력을 사용하고, 해당 노드의 Object 필드에 Empty를 지정합니다.

이제 결과로 생성된 Material은 Empty의 오른쪽에서는 투명하고, 왼쪽에서는 색이 입혀진 상태가 됩니다. 하지만 Material이 Empty의 위치를 훨씬 지난 영역에서도 반투명하게 남아 있는 것을 볼 수 있습니다.

Emission 노드로의 전환이 Empty의 위치에서 뚜렷하게 일어나도록 하기 위해, Separate X와 Mix Shader 노드 사이에 Math 노드를 삽입합니다. 이 노드는 Greater Than 모드로 설정하고 Threshold 값을 0으로 지정합니다.

이렇게 하면 Greater Than 노드는 Empty의 X 좌표를 가져와, 그보다 큰 모든 값에 대해 1을 출력합니다. 그러면 Mix Shader 노드는 두 번째 Shader, 즉 Transparent 노드로 급격히 전환됩니다.

마지막으로 Empty를 Plane에 부모-자식 관계로 연결할 수 있습니다. 이렇게 하면 Plane을 씬의 어디로든 이동시켜도 Empty가 함께 따라가고, Empty는 여전히 독립적으로 이동하거나 애니메이션을 줄 수 있습니다.

이번 튜토리얼은 여기까지입니다! 대부분의 다른 영상 튜토리얼과는 달리, 이번 영상의 PDF 버전은 현재 다운로드할 수 없습니다. 하지만 설명란에 있는 링크를 통해 다른 여러 튜토리얼의 PDF 버전이 있는 페이지를 확인하실 수 있습니다. 어쨌든 지금이 채널을 구독하고 알림을 켜두기에 아주 좋은 타이밍입니다! 곧 다시 만나요!

튜토리얼 검색

검색 문구 또는 여러 개의 키워드를 쉼표로 구분해 입력하세요.

Francesco Milanese의 3D 모델, 튜토리얼 및 컴퓨터 그래픽 자료를 제공합니다. 3D 모델의 사용 라이선스는 각 모델 페이지에 링크된 외부 스토어에서 구매할 수 있으며, 해당 라이선스 약관이 적용됩니다. Francesco Milanese — 이탈리아 부가가치세 번호: 06321250877. 문의: info@francescomilanese.com


확장된 개인정보 및 쿠키 사용 정책