머티리얼에 서브서피스 프로파일 사용법

머티리얼에 서브서피스 프로파일을 구성하여 피부나 밀랍같은 표면 렌더링을 개선시키는 방법입니다.

Windows
MacOS
Linux

현실적인 사람 피부 렌더링 능력은 요즘의 비디오 게임 엔진에 있어서 없어서는 안될 기능입니다. 그를 위해 언리얼 엔진 4 (UE4) 에는 Subsurface Profile (서브서피스 프로파일)이라는, 피부나 밀랍같은 표면에 특화된 셰이딩 메서드를 제공합니다. 서브서피스 프로파일 셰이딩 모델의 속성은 Subsurface (서브서피스) 셰이딩 모델과 비슷하나, 렌더링 방식에 큰 차이가 있습니다. 서브서피스 프로파일은 스크린 스페이스에 기반한 렌더링 접근법을 사용하는데, 후방산란처럼 사람 피부 중 귀와 같은 곳에서만 보이는 미묘한 피하 효과를 더욱 잘 표현하기 때문입니다.

머티리얼에 서브서피스 프로파일 활성화시키기

머티리얼이 서브서피스 프로파일을 사용할 수 있도록 하는 방법은 다음과 같습니다.

  1. 먼저 콘텐츠 브라우저우클릭 한 다음 기본 애셋 생성 아래 머티리얼 을 선택하여 새 머티리얼을 만듭니다. 생성된 이후 머티리얼 이름을 짓습니다. 이 예제에서는 MAT_Subsurface_Profile_00 라 합니다. 완료된 콘텐츠 브라우저 모습은 다음과 같을 것입니다.

    SSP_Create_New_Material.png

  2. 다음, 콘텐츠 브라우저 에서 머티리얼에 더블클릭 하여 엽니다.

  3. 머티리얼이 열렸으면, 머티리얼의 Shading Model (셰이딩 모델) 을 Default Lit (기본 라이팅포함)에서 Subsurface Profile (서브서피스 프로파일)로 변경해 줘야 합니다.

  4. 이 시점에서 디테일 패널의 Subsurface Profile 섹션에 Subsurface Profile 을 입력하는 것으로 할당해 줄 수 있습니다.

    SSP_Apply_SSP.png

  5. 이제 머티리얼을 서브서피스 프로파일과 사용할 준비가 되었습니다.

서브서피스 프로파일 만들기

서브서피스 프로파일을 만드는 방법은 다음과 같습니다.

  1. 먼저 콘텐츠 브라우저우클릭 한 다음 머티리얼 & 텍스처 옵션에서 서브서피스 프로파일 옵션을 선택합니다.

    2.png

  2. 서브서피스 프로파일을 선택하고 생성한 이후에는 이름을 지으면 됩니다. 이 예제에서는 SSP_00 이라 하겠습니다. 완료되면 다음과 같은 모습일 것입니다.

    SSP_Creating_Naming_SSP.png

서브서피스 프로파일을 사용하는 머티리얼 만들기

머티리얼과 서브서피스 프로파일이 생성되었으니, 데이터를 채워줄 차례입니다. 여기서는 서브서피스 프로파일을 활용하는 머티리얼과 머티리얼 인스턴스를 만들겠습니다.

  1. 먼저 위에서 만든 서브서피스 머티리얼이 열렸는지 확인해 줘야 합니다. 머티리얼이 열렸다면 다음 단계로 넘어갑니다. 열려있지 않다면, 머티리얼을 엽니다. 먼저 콘텐츠 브라우저 에서 찾은 다음 더블클릭 하면 됩니다. 완료되면 화면에 다음과 같이 나타날 것입니다.

  2. 머티리얼이 열렸으면, 머티리얼 표현식 노드를 몇 개 배치할 차례입니다. 이 튜토리얼에서 활용할 노드는 다음과 같습니다.

    • Vector Parameter x 1

    • Scalar Parameter x 2

    SSP_Material_Nodes.png

  3. 머티리얼 표현식 노드를 그래프에 추가했으면, 이름을 짓고 기본값을 채워줘야 합니다. 이 예제에서 사용한 노드의 이름과 기본값은 다음과 같습니다.

    프로퍼티 이름

    Base_Color

    R: 1.0 G: 1.0 B: 1.0

    Roughness

    0.35

    Subsurface_Amount

    0.5

    모든 것을 채운 이후의 셰이더 그래프 모습은 다음과 같을 것입니다.

    SSP_Named_Value_Nodes.png

  4. 머티리얼 표현식 노드 구성이 완료되었으니, 전부 메인 머티리얼 노드에 연결해 줄 차례입니다. 노드를 메인 머티리얼 노드에 연결하려면, 노드 오른편 에 있는 흰색 원좌클릭 유지하고 오른쪽 으로 끌면 선이 나타납니다. 그 상태에서 메인 머티리얼 노드의 사용하고자 하는 입력에까지 끌어옵니다. 사용하고자 하는 입력 위에서 마우스 왼쪽 버튼 을 놓으면 선이 연결됩니다.

  5. 모두 연결되었으니, 이제 서브서피스 프로파일을 머티리얼에 추가해 주면 됩니다. 그 방법은 디테일 패널의 Material 섹션에서 Subsurface Profile 입력을 찾습니다. 그런 다음 None (없음)이라 된 부분을 좌클릭 합니다. 그러면 이전 단계에서 생성된 서브서피스 프로파일이 보일 것입니다. 클릭해서 그 프로파일을 선택합니다.

    서브서피스 프로파일을 제공해 주지 않으면 기본값이 사용됩니다. 기본값은 백인 피부를 추정한 것입니다.

  6. 서브서피스 프로파일을 적용하고 머티리얼 표현식을 메인 머티리얼 노드에 연결했으면, 셰이더를 컴파일하고 그 머티리얼에서 머티리얼 인스턴스를 만들 차례입니다. 머티리얼 작업이 완료되면 이런 모습일 것입니다.

머티리얼 인스턴스에서 서브서피스 프로파일 사용하기

  1. 머티리얼을 생성하고 컴파일했으면, 파라미터 조정을 빠르게 하기 위해 머티리얼 인스턴스를 만들어 줄 차례입니다. 머티리얼에서 머티리얼 인스턴스를 만들려면, 먼저 콘텐츠 브라우저 에서 머티리얼을 찾은 다음 우클릭 한 뒤 머티리얼 인스턴스 생성 옵션을 선택합니다. 완료된 콘텐츠 브라우저 모습은 다음과 같을 것입니다.

    SSP_Create_New_Material_Instance.png

  2. 머티리얼 인스턴스가 생성되었으면, 콘텐츠 브라우저 에서 더블클릭 하여 열어줍니다. 다음과 같은 화면이 보일 것입니다.

  3. 머티리얼 인스턴스의 서브서피스 프로파일을 변경하려면, 먼저 Override Subsurface Profile (서브서피스 프로파일 덮어쓰기) 옵션이 켜졌다 확인한 다음, Subsurface Profile 입력을 좌클릭 하여 사용하고자 하는 서브서피스 프로파일을 제공해 줍니다. 입력에 클릭하면 사용할 수 있는 서브서피스 프로파일이 표시되며, 거기서 선택하면 됩니다.

    마스터 머티리얼에 서브서피스 프로파일을 이미 제공한 경우, 머티리얼 인스턴스에서 덮어쓸 필요가 없습니다. 이미 사용중인 서브서피스 프로파일과 다른 것을 사용하고자 할 때만 해 주면 됩니다.

서브서피스 프로파일 머티리얼 적용하기

  1. 머티리얼 인스턴스가 생성되었으니, 새 머티리얼을 테스트할 차례입니다. 그러기 위해 메인 메뉴의 파일 아래 새 레벨 옵션을 선택하여 작업할 기본 레벨을 먼저 만들어 줘야 합니다. 어떤 유형의 레벨을 선택할 것인지 물어오면, 기본 레벨 을 선택합니다.

  2. 새 레벨이 생성되었으면, 서브서피스 머티리얼의 모습을 확인할 수 있도록 라이트를 조금 추가해 줘야 합니다. 첫 번째로 추가할 라이트는 포인트 라이트 입니다. 씬에 포인트 라이트를 추가하려면, 먼저 모드 메뉴의 라이트 옵션 아래 있는 포인트 라이트를 찾아야 합니다. 포인트 라이트를 찾았으면, 먼저 포인트 라이트를 좌클릭 한 상태로 씬에 끌어온 다음 마우스 왼쪽 버튼 을 놓으면 추가됩니다. 씬에 추가한 이후에는, 라이트를 좌클릭 하여 선택합니다. 그리고 다음 값을 입력합니다.

    프로퍼티 이름

    위치:

    X:230, Y: -67, Z:79

    Intensity:

    128

    다음 스포트 라이트 를 추가해 주겠습니다. 스포트 라이트는 모드 패널의 라이트 섹션에서 포인트 라이트 바로 아래 있습니다. 포인트 라이트와 마찬가지 방식으로 화면에 스포트 라이트를 추가합니다. 됐으면 다음 값을 입력합니다.

    프로퍼티 이름

    위치:

    X:-320, Y: 100, Z:-270

    회전:

    X:0, Y:50, Z:0

    Intensity:

    39764

    완료되면 다음과 같은 모습일 것입니다.

  3. 라이트를 전부 추가했으면, 테스트할 스태틱 메시를 추가하면 됩니다. 이 예제에서 사용할 메시는 다음과 같습니다.

    StaticMesh'/Game/StarterContent/Props/SM_Chair.SM_Chair'

    SM_Chair 메시를 찾을 수 없다면, 프로젝트에 시작용 콘텐츠를 포함시키지 않았기 때문일 수 있습니다. 시작용 콘텐츠 관련 자세한 내용은 시작용 콘텐츠 문서를 참고하세요.

    메시를 찾았으면 콘텐츠 브라우저 에서 끌어 레벨에 놓습니다. 레벨에 배치했으면 그 위치를 월드의 0,0,0 으로 설정합니다. 완료된 레벨 뷰포트는 다음과 같은 모습입니다.

    SSM_Adding_Meshes.png

  4. 레벨에 스태틱 메시가 배치되었으면, 이제 서브서피스 머티리얼을 적용해 주면 됩니다. 그러기 위해서는 먼저 콘텐츠 브라우저 에서 서브서피스 머티리얼을 찾습니다. 머티리얼을 찾았으면, 콘텐츠 브라우저 에서 끌어 적용하려는 메시 위에 놓습니다.

서브서피스 프로파일 조절하기

  1. 머티리얼 인스턴스를 의자에 적용했으면, 서브서피스 프로파일 세팅을 조절해 줄 차례입니다. 그러기 위해 먼저 콘텐츠 브라우저 안에서 서브서피스 프로파일을 찾아 더블클릭 하여 열어줍니다. 그러면 다음과 같은 화면이 나타날 것입니다.

    SSP_Subsurface_Profile.png

    편집하고자 하는 프로퍼티에 좌클릭 하여 색 선택 툴을 띄우는 것으로 서브서피스 프로파일 프로퍼티를 조절할 수 있습니다.

    • Scatter Radius: 산란 반경 - 산란되는 월드 스페이스 유닛 거리입니다.

    • Subsurface Color: 서브서피스 컬러 - 서브서피스 이펙트의 마스크 또는 웨이트(가중치)로 사용할 수 있습니다. 검정은 서브서피스 스캐터링이 없다는 뜻입니다. 하양은 머티리얼에 들어온 모든 빛이 산란된다는 뜻입니다. 회색조 이외의 값을 입력하면 표면에 들어온 색 공헌에 대한 보다 미세한 제어를 통해 표면에 좀 더 복잡한 모양의 셰이딩이 가능합니다.

    • Falloff Color: 감쇠 색 - 머티리얼에 빛이 들어오면 산란되는 색을 정의합니다. 산란이 보이는 영역 전반적으로 좀 더 복잡해 보이는 셰이딩 변화를 이뤄내려면 선명한 원색 사용은 피해야 할 것입니다.

  2. 아래에서 보시듯이 서브서피스 프로파일의 파라미터는 실시간 조정할 수 있다는 점 유념하세요.

팁과 정보

서브서피스 프로파일 렌더링 방식으로 인해 최대한의 활용을 위한 몇 가지 팁과 정보가 있습니다.

산란 반경

서브서피스 프로파일의 Scatter Radius 수치를 정말 크게 설정하면 다음 그림에서와 같은 렌더링 오류가 생깁니다. SSP_Big_Small_Scatter_Radius.png

왼쪽 그림은 산란 반경이 50 으로 설정된 것입니다. 표면에 중복 이미지같아 보이는 것이 보입니다. 이제 오른쪽 그림을 살펴봅시다. 산란 반경이 5.0 으로 설정되었습니다. 이미지가 더욱 부드럽고 자연스러워 보이는데, 보통 이런 효과를 내고 싶을 것입니다.

머티리얼 인스턴스와 서브서피스 프로파일 같이 쓰기

머티리얼 인스턴스와 서브서피스 프로파일을 같이 쓰면 여러가지 이유로 결과물을 최대한 조절하기에 매우 좋은 방법이 됩니다.

  • 머티리얼 인스턴스는 값의 실시간 조정이 가능하여 결과를 훨씬 빨리 확인할 수 있습니다.

  • 오파시티 입력을 사용하여 표면에 대한 서브서피스 공헌을 약화시킬 수 있습니다. 하지만 이 값은 1 로 놔두고 서브서피스 프로파일 안의 파라미터를 조정할 것을 추천합니다. 이 값은 그것만으로 원하는 결과를 낼 수 없었을 때만 조정하시기 바랍니다.

  • 각 색 선택 툴의 Value (값) 슬라이더로 서브서피스 이펙트의 영향력을 조절합니다. 이 값이 하양쪽에 가깝게 설정될 수록, 이펙트가 더욱 도드라집니다. 반면 검정에 가깝게 설정할 수록, 이펙트가 잘 보이지 않게 됩니다.

태그
Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼