머티리얼 표현식에서

머티리얼 표현식에서 셰이딩 모델을 사용하여 단일 머티리얼에서 여러 셰이딩 모델을 결합합니다.

Choose your operating system:

Windows

macOS

Linux

추가 참고

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

머티리얼 표현식에서

머티리얼 표현식에서(From Material Expression) 셰이딩 모델을 활성화하면 알파 마스크를 사용한 픽셀 단위를 기준으로, 또는 스위치 표현식(Switch Expressions)If 구문 같은 조건부 로직으로 셰이딩 모델을 블렌딩할 수 있습니다.

사용

단일 머티리얼에서 여러 셰이딩 모델을 사용하려면, 우선 디테일 패널에서 셰이딩 모델 프로퍼티를 머티리얼 표현식에서(From Material Expression) 로 설정해야 합니다.

  1. 머티리얼 그래프의 백그라운드에서 아무 곳을 클릭하거나 메인 머티리얼 노드를 선택하여 디테일 패널에서 머티리얼 프로퍼티를 표시합니다.

  2. 디테일 패널(Details Panel) 에서 셰이딩 모델(Shading Model) 드롭다운 메뉴를 사용하여 머티리얼 표현식에서(From Material Expression) 를 선택합니다. 머티리얼 표현식에서(From Material Expression)가 선택되면, 메인 머티리얼 노드의 셰이딩 모델(Shading Model) 핀이 흰색으로 바뀌어 활성화되었음을 알 수 있습니다.

    머티리얼 표현식에서 셰이딩 모델

  3. 머티리얼 그래프를 우클릭 하고 컨텍스트 메뉴에서 ‘셰이딩 모델'을 검색합니다. 그래프에 셰이딩 모델 머티리얼 표현식을 추가합니다.

    셰이딩 모델 머티리얼 표현식

  4. 그래프에서 Shading Model 노드를 선택합니다. 디테일 패널에서 드롭다운 메뉴를 사용하여 사용할 셰이딩 모델을 고릅니다.

    노드에서 셰이딩 모델 선택

  5. Shading Model 노드를 메인 머티리얼 노드의 셰이딩 모델(Shading Model) 입력 핀에 연결합니다. 이 머티리얼은 이제 셰이딩 모델 머티리얼 표현식(Shading Model Material Expression) 에서 파생된 클리어 코트(Clear Coat) 셰이딩 모델을 사용합니다.

    Shading Model 노드를 입력에 연결

이 워크플로의 주요 장점은 단일 머티리얼 내에서 여러 셰이딩 모델을 블렌딩할 수 있다는 점입니다. 사용 예시는 아래 섹션을 참고하세요.

머티리얼의 사용된 셰이딩 모델

머티리얼 그래프에서 여러 셰이딩 모델이 사용되었을 때는 디테일(Details) 패널 프로퍼티의 사용된 셰이딩 모델(Used Shading Models) 옆에 보기 편하게 나열됩니다.

사용된 셰이딩 모델

이 예시는 기본 라이팅포함(Default Lit)클리어 코트(Clear Coat) 셰이딩 모델을 모두 사용하는 머티리얼을 나타냅니다.

이 목록은 머티리얼 그래프에 설정된 셰이딩 모델을 표시할 뿐이며, 항상 실제로 컴파일된 대상을 나타내지는 않는다는 점에 유의하세요. Switch 노드는 셰이딩 모델을 포함한 그래프의 모든 부분을 지우는 데 사용할 수 있습니다. 이에 대한 예시는 아래의 머티리얼 스위치 노드 섹션을 참조하세요.

여러 셰이딩 모델 블렌딩

다음 섹션에서는 머티리얼에서 셰이딩 모델을 블렌딩하는 세 가지 방법을 소개합니다.

머티리얼 어트리뷰트 블렌딩

서로 다른 두 셰이딩 모델 사이에 픽셀별 블렌드를 생성하는 가장 단순한 방법은 머티리얼 어트리뷰트 설정(Set Material Attributes) 표현식을 사용하여 각 표면을 정의한 다음 BlendMaterialAttributes 노드로 블렌딩하는 것입니다.

이 예시에서는 머티리얼 어트리뷰트(Material Attributes) 워크플로를 사용하여 머티리얼의 실제 어트리뷰트를 정의하는 방법을 어느 정도 알고 있다고 가정합니다. 이 프로세스에 익숙하지 않다면 머티리얼 어트리뷰트 표현식에 관한 문서를 참고하세요.

아래 예시에서는 체커보드 텍스처가 BlendMaterialAttriubtes 노드의 알파(Alpha) 입력에 연결되어 각 머티리얼 어트리뷰트 세트의 기본 라이팅포함(Default Lit)클리어 코트(Clear Coat) 셰이딩 모델 사이를 마스킹합니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

머티리얼 구성

다음 단계에 따라 위와 같은 머티리얼을 생성하세요.

  1. 디테일 패널에서 셰이딩 모델(Shading Model)머티리얼 표현식에서(From Material Expression) 로 설정합니다. 같은 섹션에서 머티리얼 어트리뷰트 사용(Use Material Attributes) 옵션을 활성화합니다. 이 옵션이 체크되면, 메인 머티리얼 노드가 사라지고 Material Attributes 출력 노드로 대체됩니다.

    머티리얼 프로퍼티 세팅

  2. SetMaterialAttributes 표현식을 사용하여 두 가지 표면 타입을 각각 정의합니다. 머티리얼 그래프에서 SetMaterialAttributes 노드를 선택한 뒤 디테일 패널에서 엘리먼트 추가(Add Element) 아이콘을 클릭합니다. 셰이딩 모델(Shading Model) 입력 핀을 그래프의 두 SetMaterialAttributes 노드에 모두 추가합니다. 두 머티리얼을 모두 정의한 뒤 BlendMaterialAttributes 노드를 추가하여 두 어트리뷰트 세트를 블렌딩합니다. BlendMaterialAttributes 표현식을 Material Attributes 출력 노드에 연결합니다. 이 프로세스는 아래 영상에서 볼 수 있습니다.

이 예시에 사용된 전체 머티리얼 그래프가 아래에 있습니다. 그래프의 클리어 코트(Clear Coat) 파트에 사용된 탄소 섬유 노멀 맵 텍스처는 듀얼 노멀 클리어 코트 페이지에서 다운로드할 수 있습니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

머티리얼이 스태틱 메시에 적용되면, 드로 콜 두 개가 아닌 하나로 두 셰이딩 모델을 모두 렌더링합니다. 알파 마스크가 적용되면, 두 셰이딩 모델이 구체의 다른 영역에 매핑되었음을을 명확히 확인할 수 있습니다.

If 구문

If 머티리얼 표현식을 사용하여 동일한 머티리얼 어트리뷰트 세트 내에서 셰이딩 모델을 블렌딩할 수도 있습니다. If 표현식은 A 및 B 입력에서 플로트 값을 비교하며 A가 B보다 큰지, B와 같은지, B보다 작은지에 따라 다른 결과를 출력합니다. 아래 예시에서는 그래프의 두 셰이딩 모델 중 하나를 선택하는 데 이 로직이 사용되었습니다.

If 표현식을 통한 픽셀별 블렌딩

B 에 설정된 값이 없다면, 값은 기본적으로 0 이 됩니다. 디테일(Details) 패널에서 하드코딩된 값으로 설정할 수 있으며, B 입력에 텍스처, 상수, 또는 스칼라 파라미터에서 파생된 또 다른 플로트 값을 사용하여 머티리얼 인스턴스 내에서 제어할 수 있습니다. 이 예시에서는 B 값으로 상수 값 0.5를 사용합니다.

아래 비교에서 If 표현식은 B 의 값을 A 와 비교하여 셰이딩 모델을 기본 라이팅포함(Default Lit) 또는 클리어 코트(Clear Coat) 로 설정합니다. A 의 플로트 값이 B 보다 크면 기본 라이팅포함(Default Lit) 을 사용하고, AB 보다 작으면 클리어 코트(Clear Coat) 를 사용합니다.

A > B: 기본 라이팅포함 사용 | B = 0.0

A <= B: 클리어 코트 사용 | B = 0.5

스위치 노드

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

Mat_Switches.png

  • 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) 로 설정합니다.

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

스태틱 스위치 = True | 기본 라이팅포함 셰이딩 모델

스태틱 스위치 = False | 클리어 코트 셰이딩 모델

머티리얼 인스턴싱

머티리얼 인스턴싱이 완전히 지원되어 머티리얼 그래프에서 로직을 구성 및 사용할 수 있습니다. 파라미터와 변수로 어떤 셰이딩 모델을 사용할지 설정 가능합니다.

머티리얼 인스턴스의 셰이딩 모델은 머티리얼 표현식에서(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)

    • 컴파일된 정보가 아주 많으므로 회귀 없이는 셰이딩 경로가 제대로 지원되지 않습니다.