머티리얼 표현식에서(From Material Expression) 셰이딩 모델은 머티리얼 그래프의 로직을 통해 여러 개의 셰이딩 모델을 단일 머티리얼 또는 머티리얼 인스턴스 내부에서 결합할 수 있는 고급 기능입니다.

머티리얼 표현식에서(From Material Expression) 셰이딩 모델을 활성화하면 알파 마스크를 사용한 픽셀 단위를 기준으로, 또는 스위치 표현식(Switch Expressions) 및 If 구문 같은 조건부 로직으로 셰이딩 모델을 블렌딩할 수 있습니다.
사용
단일 머티리얼에서 여러 셰이딩 모델을 사용하려면, 우선 디테일 패널에서 셰이딩 모델 프로퍼티를 머티리얼 표현식에서(From Material Expression) 로 설정해야 합니다.
-
머티리얼 그래프의 백그라운드에서 아무 곳을 클릭하거나 메인 머티리얼 노드를 선택하여 디테일 패널에서 머티리얼 프로퍼티를 표시합니다.
-
디테일 패널(Details Panel) 에서 셰이딩 모델(Shading Model) 드롭다운 메뉴를 사용하여 머티리얼 표현식에서(From Material Expression) 를 선택합니다. 머티리얼 표현식에서(From Material Expression)가 선택되면, 메인 머티리얼 노드의 셰이딩 모델(Shading Model) 핀이 흰색으로 바뀌어 활성화되었음을 알 수 있습니다.
-
머티리얼 그래프를 우클릭 하고 컨텍스트 메뉴에서 '셰이딩 모델'을 검색합니다. 그래프에 셰이딩 모델 머티리얼 표현식을 추가합니다.
-
그래프에서 Shading Model 노드를 선택합니다. 디테일 패널에서 드롭다운 메뉴를 사용하여 사용할 셰이딩 모델을 고릅니다.
-
Shading Model 노드를 메인 머티리얼 노드의 셰이딩 모델(Shading Model) 입력 핀에 연결합니다. 이 머티리얼은 이제 셰이딩 모델 머티리얼 표현식(Shading Model Material Expression) 에서 파생된 클리어 코트(Clear Coat) 셰이딩 모델을 사용합니다.
이 워크플로의 주요 장점은 단일 머티리얼 내에서 여러 셰이딩 모델을 블렌딩할 수 있다는 점입니다. 사용 예시는 아래 섹션을 참고하세요.
머티리얼의 사용된 셰이딩 모델
머티리얼 그래프에서 여러 셰이딩 모델이 사용되었을 때는 디테일(Details) 패널 프로퍼티의 사용된 셰이딩 모델(Used Shading Models) 옆에 보기 편하게 나열됩니다.

이 예시는 기본 라이팅포함(Default Lit) 및 클리어 코트(Clear Coat) 셰이딩 모델을 모두 사용하는 머티리얼을 나타냅니다.
이 목록은 머티리얼 그래프에 설정된 셰이딩 모델을 표시할 뿐이며, 항상 실제로 컴파일된 대상을 나타내지는 않는다는 점에 유의하세요. Switch 노드는 셰이딩 모델을 포함한 그래프의 모든 부분을 지우는 데 사용할 수 있습니다. 이에 대한 예시는 아래의 머티리얼 스위치 노드 섹션을 참조하세요.
여러 셰이딩 모델 블렌딩
다음 섹션에서는 머티리얼에서 셰이딩 모델을 블렌딩하는 세 가지 방법을 소개합니다.
머티리얼 어트리뷰트 블렌딩
서로 다른 두 셰이딩 모델 사이에 픽셀별 블렌드를 생성하는 가장 단순한 방법은 머티리얼 어트리뷰트 설정(Set Material Attributes) 표현식을 사용하여 각 표면을 정의한 다음 BlendMaterialAttributes 노드로 블렌딩하는 것입니다.
이 예시에서는 머티리얼 어트리뷰트(Material Attributes) 워크플로를 사용하여 머티리얼의 실제 어트리뷰트를 정의하는 방법을 어느 정도 알고 있다고 가정합니다. 이 프로세스에 익숙하지 않다면 머티리얼 어트리뷰트 표현식에 관한 문서를 참고하세요.
아래 예시에서는 체커보드 텍스처가 BlendMaterialAttriubtes 노드의 알파(Alpha) 입력에 연결되어 각 머티리얼 어트리뷰트 세트의 기본 라이팅포함(Default Lit) 과 클리어 코트(Clear Coat) 셰이딩 모델 사이를 마스킹합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
머티리얼 구성
다음 단계에 따라 위와 같은 머티리얼을 생성하세요.
-
디테일 패널에서 셰이딩 모델(Shading Model) 을 머티리얼 표현식에서(From Material Expression) 로 설정합니다. 같은 섹션에서 머티리얼 어트리뷰트 사용(Use Material Attributes) 옵션을 활성화합니다. 이 옵션이 체크되면, 메인 머티리얼 노드가 사라지고 Material Attributes 출력 노드로 대체됩니다.
-
SetMaterialAttributes 표현식을 사용하여 두 가지 표면 타입을 각각 정의합니다. 머티리얼 그래프에서 SetMaterialAttributes 노드를 선택한 뒤 디테일 패널에서 엘리먼트 추가(Add Element) 아이콘을 클릭합니다. 셰이딩 모델(Shading Model) 입력 핀을 그래프의 두 SetMaterialAttributes 노드에 모두 추가합니다. 두 머티리얼을 모두 정의한 뒤 BlendMaterialAttributes 노드를 추가하여 두 어트리뷰트 세트를 블렌딩합니다. BlendMaterialAttributes 표현식을 Material Attributes 출력 노드에 연결합니다. 이 프로세스는 아래 영상에서 볼 수 있습니다.
이 예시에 사용된 전체 머티리얼 그래프가 아래에 있습니다. 그래프의 클리어 코트(Clear Coat) 파트에 사용된 탄소 섬유 노멀 맵 텍스처는 듀얼 노멀 클리어 코트 페이지에서 다운로드할 수 있습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
머티리얼이 스태틱 메시에 적용되면, 드로 콜 두 개가 아닌 하나로 두 셰이딩 모델을 모두 렌더링합니다. 알파 마스크가 적용되면, 두 셰이딩 모델이 구체의 다른 영역에 매핑되었음을을 명확히 확인할 수 있습니다.
If 구문
If 머티리얼 표현식을 사용하여 동일한 머티리얼 어트리뷰트 세트 내에서 셰이딩 모델을 블렌딩할 수도 있습니다. If 표현식은 A 및 B 입력에서 플로트 값을 비교하며 A가 B보다 큰지, B와 같은지, B보다 작은지에 따라 다른 결과를 출력합니다. 아래 예시에서는 그래프의 두 셰이딩 모델 중 하나를 선택하는 데 이 로직이 사용되었습니다.

B 에 설정된 값이 없다면, 값은 기본적으로 0 이 됩니다. 디테일(Details) 패널에서 하드코딩된 값으로 설정할 수 있으며, B 입력에 텍스처, 상수, 또는 스칼라 파라미터에서 파생된 또 다른 플로트 값을 사용하여 머티리얼 인스턴스 내에서 제어할 수 있습니다. 이 예시에서는 B 값으로 상수 값 0.5를 사용합니다.
아래 비교에서 If 표현식은 B 의 값을 A 와 비교하여 셰이딩 모델을 기본 라이팅포함(Default Lit) 또는 클리어 코트(Clear Coat) 로 설정합니다. A 의 플로트 값이 B 보다 크면 기본 라이팅포함(Default Lit) 을 사용하고, A 가 B 보다 작으면 클리어 코트(Clear Coat) 를 사용합니다.


스위치 노드
아래와 같은 스위치(Switch) 노드를 사용하여 머티리얼의 함수 기능 및 퀄리티를 제어할 수 있습니다.

- A 셰이딩 패스 스위치(Shading Path Switch) 는 머티리얼 로직의 어느 부분을 렌더 패스로 사용할지 지정하는 데 유용합니다.
- A 퀄리티 스위치(Quality Switch) 는 엔진의 퀄리티 레벨을 사용하여 머티리얼 로직을 제어할 때 유용합니다.
- A 피처 레벨 스위치(Feature Level Switch) 는 머티리얼을 여러 디바이스에서 사용할 수 있도록 구성할 때 유용합니다.
- A 스태틱 스위치(Static Switch) 또는 스태틱 스위치 파라미터(Static Switch Parameter) 는 베이스 머티리얼 내 머티리얼 또는 머티리얼 인스턴스를 통해 제어할 수 있는 머티리얼의 전체 브랜치를 제외하는 데 유용합니다.
아래 그래프에서 비교한 대로 스태틱 스위치(Static Switch) 표현식은 True
일 때 셰이딩 모델을 기본 라이팅포함(Default Lit) 으로 설정하고 False
일 때 클리어 코트(Clear Coat) 로 설정합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.


머티리얼 인스턴싱
머티리얼 인스턴싱이 완전히 지원되어 머티리얼 그래프에서 로직을 구성 및 사용할 수 있습니다. 파라미터와 변수로 어떤 셰이딩 모델을 사용할지 설정 가능합니다.
머티리얼 인스턴스의 셰이딩 모델은 머티리얼 표현식에서(From Material Expression) 로 표시되며, 스태틱 셰이딩 모델에 오버라이드될 수 있다는 점에 유의하세요. 하지만 머티리얼 인스턴스의 셰이딩 모델을 머티리얼 표현식에서(From Material Expression) 로 오버라이드할 수는 없습니다. 오버라이드에 실패한 뒤 어떠한 알림 없이 아무 일도 일어나지 않습니다.
추가 정보
- 셰이딩 모델 입력 항상 표시 활성화됨(Shading Model Input Always Shown Enabled)
- 머티리얼 어트리뷰트 사용(Use Material Attributes) 이 활성화되고 Set, Get, Make, Break 머티리얼 어트리뷰트 노드를 사용한다면, 머티리얼 표현식에서(From Material Expression) 가 셰이딩 모델로 선택되어 있지 않더라도 셰이딩 모델(Shading Model) 입력이 회색 처리되지 않고 항상 활성화된 상태로 표시됩니다. 이 핀은 머티리얼 표현식에서(From Material Expression) 가 머티리얼의 셰이딩 모델로 설정된 것이 아니라면 아무 역할도 하지 않습니다. 디폴트인 Main Material Inputs 노드에 영향을 주지 않습니다.
- 머티리얼 인스턴스 오버라이드(Material Instance Overrides)
- 머티리얼 인스턴스의 셰이딩 모델(Shading Model) 을 오버라이드하면 예상대로 작동하지만, 머티리얼 표현식에서(From Material Expression) 로 설정하면 부모 머티리얼을 사용하지 않는 한 아무런 표시 없이 반영되지 않아 아무 일도 일어나지 않습니다.
- 라이팅제외 셰이딩 모델(Unlit Shading Model)
- 컴파일된 정보가 아주 많으므로 회귀 없이는 셰이딩 경로가 제대로 지원되지 않습니다.