에픽게임즈가 언리얼 엔진 4.25에서 셰이딩 모델을 개선한 방법

에픽게임즈 렌더링 팀
언리얼 엔진 4.25가 출시되며 적절한 애니소트로피(Anisotropy) 입력, 새로운 물리 기반 반투명 셰이딩 모델, 클리어 코트 모델 업데이트 등 일부 머티리얼 시스템 영역이 크게 개선되었습니다. 
자동차, 제조, 건축 업계에 계신 분 들은 프로젝트를 정확히 표현하기 위해 오랫동안 노력해 왔습니다. 향상된 셰이더는 지나치게 복잡한 머티리얼 로직이나 요령 없이도 원하는 룩을 구현할 수 있도록 이러한 유형의 머티리얼을 구성하는 데 복잡도를 줄일 수 있는 방안을 제시합니다. 

이제 여러분의 씬에 최근 업데이트된 무료 자동차 머티리얼 팩과 함께 사용할 수 있는 물리적으로 정확한 머티리얼을 그 어느 때보다 쉽게 추가할 수 있습니다. 아래에서 이러한 개선사항에 대한 자세한 내용을 읽어보시고, 프로젝트의 룩 앤 필(look and feel)에 어떤 영향을 주는지 알아보세요.
 

향상된 클리어 코트

언리얼 엔진은 오랫동안 클리어 코트 머티리얼을 시뮬레이션하고 기존 모델을 개선하여 보다 정확한 결과를 구현하는 멀티레이어 셰이더를 지원해 왔습니다. 복잡한 현실 재질을 정확하게 구현할 수 있는 기술은 특정 산업과 프로젝트에서 매우 중요합니다. 예를 들어, 자동차 페인트 재질은 일반적으로 관련된 각종 노멀 및 러프니스 프로퍼티와 그 표면 아래 디테일을 살린 얇은 반투명 표면의 대표적인 예시입니다.
 
왼쪽은 언리얼 엔진 4.24의 자동차 도색, 오른쪽은 언리얼 엔진 4.25의 자동차 도색입니다.
예전 클리어 코트 모델은 환경 라이팅과 잘 어울렸습니다. 즉, 하늘과 태양의 디렉셔널 라이팅을 이용한 넓은 실외 환경과 짝을 이룰 때 가장 효과적이었습니다. 이번 버전은 방향성 라이트의 감쇠와 프레넬이 가장 두드러지는 규칙적 라이트(포인트 라이트, 스포트라이트, 디렉셔널 라이트)에 대해 올바른 방향 반응을 보여줍니다. 

클리어 코트 모델이 자동차 도색 유형 머티리얼과 관련될 때가 많지만, 이에 국한되지 않습니다. 일반 머티리얼 위에 얇은 반투명 표면이 겹쳐진 모든 멀티 레이어드 머티리얼 시뮬레이션에 사용할 수 있으며, 금속 표면과 비금속 표면 둘 다에 잘 어울립니다.

클리어 코트 모델을 제대로 개선하기 위해 에디터 내 패스 트레이서(Path Tracer)로 모델을 구현하기 시작했습니다. 이를 통해 클리어 코트 모델로 비교 기준 레퍼런스를 생성함으로써 기존 래스터 및 레이 트레이싱 렌더링 경로 전체에서 이를 개선하는 데 사용할 물리적으로 정확한 비교 기준 표현을 생성할 수 있게 되었습니다. 

머티리얼의 디테일(Details) 패널로 이동하여 셰이딩 모델(Shading Model)클리어 코트(Clear Coat)로 바꾸면 자신만의 클리어 코트 머티리얼을 설정하고 사용할 수 있습니다. 메인 머티리얼 노드에는 클리어 코트(Clear Coat)클리어 코트 러프니스(Clear Coat Roughness), 두 개의 입력을 사용할 수 있습니다.
 
노멀 입력(Normal input)은 최상단 레이어의 표면 텍스처를 제어하는 데 사용됩니다. 클리어 코트 아래의 최하단 레이어를 설정하고 제어하려면, 엔진/렌더링/머티리얼(Engine/Rendering/Material) 세팅에 있는 클리어 코트 2차 노멀 활성화(Clear Coat Enable Second Normal)의 프로젝트 세팅을 활성화해야 합니다.
 
2차 노멀을 활성화한 상태에서 머티리얼 그래프의 클리어 코트 하단 노멀(Clear Coat Bottom Normal) 출력 표현식을 사용하여 클리어 코트 서피스 레이어 아래의 노멀 맵 디테일을 설정하고 제어합니다. 
하단 노멀은 아래 탄소 섬유나 자동차 도색의 반사 얼룩처럼 기하학적 표면이나 반사 표면이 상단 클리어 코트 레이어와는 다른 복잡한 머티리얼을 더 정확히 표현합니다. 이러한 머티리얼 설정의 추가 예제는 자동차 머티리얼 팩에서 확인할 수 있습니다.
왼쪽은 클리어 코트 하단 노멀을 활성화한 상태고, 오른쪽은 클리어 코트 하단 노멀을 비활성화한 상태입니다.

애니소트로픽 머티리얼 추가 지원

UE 4.25 출시 전에는 머티리얼에 흉내 내는 효과를 더하지 않고서는 잘 구현된 애니소트로픽 반응을 보이는 브러시드 메탈이나 기타 유사 유형의 머티리얼을 표현할 수 없었습니다. 이번 4.25 버전 에는 물리적으로 정확한 라이팅 반응을 보이는 애니소트로피 설정 및 제어를 위한 베타 지원 기능이 추가되었습니다. 즉, 복잡한 흉내를 내지 않고서도 간단히 머티리얼 입력으로 라이트 방향을 실시간으로 제어할 수 있게 되었습니다. 

예를 들어, 이 자동차 바퀴의 로터는 새로운 애니소트로피 입력과 탄젠트 머티리얼 입력을 사용한 최소한의 설정으로 라이트에 자연스럽게 반응합니다.
왼쪽은 일반적인 아이소트로픽 반응, 오른쪽은 잘 구현된 애니소트로픽 반응입니다.
우리의 애니소트로픽 모델은 GGX 애니소트로픽 공식을 사용하여 규칙적 라이트, 스카이라이트용 이미지 기반 라이팅(IBL), 레이 트레이싱을 이용한 반사 또는 클리어 코트와 디폴트 릿 셰이딩 모델을 통한 리플렉션 캡처 프로브를 지원합니다. 이번 버전 에서는 일부 제한된 유형의 라이트만 지원하지만, 이후 엔진 버전 에서는 디렉셔널 라이트와 렉트 라이트도 지원할 예정입니다. 현재로서는 애니소트로픽 프로퍼티를 사용하는 머티리얼을 통해 아이소트로픽 반응을 사용합니다.

프로젝트 세팅 플래그 애니소트로픽 BRDF 사용 (베타)(Use anisotropic BRDF (Beta))을 활성화하면 머티리얼 에디터의 메인 머티리얼 노드에서 애니소트로피 입력과 탄젠트 입력이 열립니다.  
프로젝트 세팅은 머티리얼 에디터의 메인 머티리얼 노드에서 애니소트로피 입력과 탄젠트 입력을 엽니다. 애니소트로피 입력은 러프니스 입력값이 0보다 클 때 애니소트로픽 반응의 양성 또는 음성 러프니스를 제어합니다.
탄젠트(Tangent) 입력은 적용된 텍스처의 라이트 방향을 지정하는 데 유용합니다. 위의 예에서는 이를 수행하기 위해 브러시드 메탈 탄젠트 맵을 사용합니다. 애니소트로피(Anisotropy) 입력은 애니소트로픽 반응의 러프니스를 제어합니다. 아래의 예에서는 이 값이 0(애니소트로픽 반응 없음)에서 1(양성 애니소트로픽 반응 )로 바뀝니다. 애니소트로픽 반응에 -1에서 1 사이의 값을 사용할 수 있다는 점을 주목하세요.
0~1의 값을 사용하는 애니소트로피가 최대 양성 애니소트로픽 반응에 대한 아이소트로픽 반응을 보여줍니다.
탄젠트 입력은 직접 값을 입력하거나 탄젠트 텍스처 맵을 사용하여 라이트 방향을 지정하는 데 유용합니다. 노멀 텍스처만 사용하는 경우, 라이트 방향은 아이소트로픽 반응을 제공합니다. 하지만 탄젠트 맵과 결합하면, 라이트 방향에 완전한 애니소트로픽 반응을 제공합니다.
왼쪽은 노멀과 탄젠트 맵이 있는 애니소트로픽 반응, 중간은 노멀 맵만 있는 애니소트로픽 반응, 오른쪽은 탄젠트 맵만 있는 애니소트로픽 반응입니다.

물리 기반 반투명 개선

착색 유리나 우윳빛 유리 등 실제 유리의 성질을 정확하게 표현하는 특정 유형의 투명 머티리얼을 제작하는 것은 쉽지 않습니다. 그래서 특별한 방법이나 복잡한 설정을 거쳐야 했습니다. 하지만 이제 이러한 유리의 성질을 쉽게 표현할 수 있도록 완전히 새로운 셰이딩 모델이 추가됐습니다. 얇은 반투명(Thin Translucent)이라는 모델로, 공기에서 유리로, 유리에서 공기로 반사광을 처리하는 물리 기반 셰이더를 통해 흰색 스페큘러 하이라이트와 배경 오브젝트를 싱글 패스로 렌더링합니다. 그리고 이와 함께 반투명 머티리얼을 이전 방법보다 더 나아진 퀄리티와 성능으로 처리합니다. 
 
착색유리 같은 머티리얼이나 반투명하게 채색된 머티리얼을 생성할 때는 흰색 스페큘러 하이라이트를 추가하고 머티리얼을 통해 보이는 배경도 채색해야 합니다. 언리얼 엔진 구버전에서는 하나는 흰색 스페큘러 하이라이트를, 다른 하나는 배경 채색을 담당하는 별개의 오브젝트와 머티리얼로 이런 유형의 효과를 흉내 내서 만들어야 했습니다. 거기에 더해 이러한 설정의 복잡성 때문에 각각을 올바른 순서로 혼합해야 했습니다. 

얇은 반투명 셰이딩 모델은 머티리얼의 물리 기반 셰이더를 통한 싱글 패스로 이러한 종류의 문제를 해결합니다. 또한, 지나치게 복잡한 해결 방법이나 워크플로 없이 해결합니다. 
얇은 반투명 머티리얼은 싱글 패스에서 배경을 적절하게 채색하면서 흰색 스페큘러 하이라이트를 정확하게 표현합니다.
이러한 새 셰이딩 모델을 사용하려면, 다음과 같은 설정에 따라 머티리얼 디테일 패널 안에서 이를 활성화합니다:
  • 반투명(Translucent) 블렌드 모드
  • 얇은 반투명(Thin Translucent) 셰이딩 모델
  • 서피스 포워드셰이딩(Surface ForwardShading) 라이팅 모드
머티리얼 그래프에서 얇은 반투명 머티리얼(Thin Translucent Material) 출력 표현식을 추가하여 머티리얼의 투과율 색상을 표현합니다. 아래 예제 그래프는 아주 간단한 반투명 머티리얼입니다. 투과 색상(TransmittanceColor)은 머티리얼을 투과하는 색상을 연출합니다. 메인 머티리얼 노드의 오파시티 입력은 머티리얼을 투과하는 라이트의 양을 제어합니다. 디폴트 릿 반투명 머티리얼과는 달리 오파시티가 0으로 설정되어도 머티리얼이 보이기는 하지만, 머티리얼을 투과하는 라이트를 차단하지는 않습니다. 
아래의 예에서 디폴트 릿(Default Lit) 반투명 머티리얼과 새로운 반투명 모델을 비교해 보면 그 차이를 확실히 알 수 있습니다. 기존 모델은 머티리얼 바로 뒤에 있는 오브젝트에 적절하게 반응하지 못하는 뎁스 버퍼에 의존합니다. 또한, 그늘진 지역이 제대로 표현되지 않아 색상이 있는 투명 머티리얼이 그냥 무색의 투명 머티리얼처럼 보입니다. 

새로운 반투명 모델은 흰색 스페큘러 하이라이트와 적절하게 채색된 배경을 표현함으로써 이러한 문제를 해결합니다.
TechBlog_ShadingModelImprovements_image4.pngTechBlog_ShadingModelImprovements_image16.png

보너스! 프로젝트를 위한 무료 콘텐츠 팩을 제공합니다!

엔진 기능이 계속 개발됨에 따라, 신규 업데이트와 신기능을 시연할 콘텐츠도 필요합니다. 에픽 내부 팀에서는 이러한 기능 일부를 보여주는 콘텐츠를 매우 정교하게 만들었는데, 언리얼 엔진 마켓플레이스에서 모두 무료로 다운받아 프로젝트에 사용할 수 있습니다!
 
자동차 머티리얼 팩(Automotive Materials Pack)은 150개 이상의 머티리얼과 텍스처로 구성된 고퀄리티 자동차 테마 팩으로, 바로 프로젝트에 사용할 수 있습니다. 자동차 도색, 금속, 반사, 가죽 등 광범위한 유형의 머티리얼을 제공합니다. 이 팩에 대한 자세한 정보는 블로그에서 확인할 수 있습니다.
자동차 해변 신(Automotive Beach Scene)은 최신 자동차 디자인이나 제품 디자인을 위한 완벽한 쇼케이스입니다. 이 씬은 퀵셀 메가스캔 라이브러리에서 가져온 매우 디테일한 에셋, 머티리얼, 텍스처로 구성되어 있습니다. 영화 같은 카메라 워크와 실사 같은 그래픽을 위해 설계된 씬으로, 레이 트레이싱 기능 덕분에 라이팅이 실감 나게 표현되어 있습니다. 이 씬에 대한 자세한 정보는 블로그에서 확인할 수 있습니다.

    지금 언리얼 엔진을 다운로드하세요 !

    세계에서 가장 개방적이고 진보된 창작 툴을 받아보세요. 
    모든 기능과 무료 소스 코드 액세스를 제공하는 언리얼 엔진은 제작에 바로 사용할 수 있습니다.