#아드리

Unity HDRP Version 10의 새로운 기능! 본문

Unity

Unity HDRP Version 10의 새로운 기능!

아두리두리 2021. 1. 4. 18:26

Unity HDRP Template: Sample Scene 

이번 글에서는 What's new in version 10에 있는 내용을 베이스로 합니다. 계속 업데이트 될 예정이니 많은 도움되면 좋겠습니다. 

 

*HDRP를 배우시는 분들이 보면 좋을 HDRP For Artist

 

Unity 2020.2 Update 영상도 참고해주세요 :D 

 

Features

다음은 HDRP 10.0 에 추가된 기능 목록입니다. 각 항목에는 기능에 대한 요약과 관련 문서에 대한 링크가 포함됩니다. 

IES Profiles and light cookies

HDRP는 이제 광원의 빛의 분포를 설명하기 위해 IES(Illunimating Engineering Society) 파일 형식을 지원합니다. HDRP는 Poist, Spot(Cone Pyrimid, and Box) 및 Area 조명에 대한 IES 프로파일을 지원합니다. 또한 IES 프로파일을 Cookies와 섞을 수 있고, 가벼운 Lightmap Baking에도 적용 가능합니다.  

 

Exposure(노출)

Histogram Exposure

HDRP의 노출 구현에서는 이제 이미지의 히스토그람을 계산할 수 있습니다. 이미지에서 너무 높은 값이나 낮은 값을 삭제할 수 있게 합니다. 그림자나 하이라이트의 보통 범주를 벗어나는 값 / 튀는 값들을 제거해 보다 안정적인 노출을 계산하는데 도움이 됩니다. 

 

Exposure: Automatic Histogram

이 기능에 대한 자세한 내용은 Exposure을 참조하십시오.

 

New Metering Mode

HDRP의 노출 구현에는 이제 Metering Mask가 포함되므로 전체 스크린을을 자동 노출 알고리즘의 입력으로 간주하지 않는것이 가장 좋습니다. Metering Mode에는 텍스처 기반 마스크와 Procedural(절차) 모드가 새롭게 포함되었습니다. 

 

Debug Mode

이제 HDRP에는 씬(scene)에 대한 올바른 노출을 설정하는 데 도움이 되는 새로운 디버그 모드가 포함되어 있습니다.

*Window > Render Pipeline > Render Pipeline Debug > Lighting 

 

Scalability Settings 

새로운 HDRP 버전에는 안개 및 Subsurface Scattering 대한 확장성 설정을 포함하고 있습니다. 이러한 설정을 통해 Volumetirc Lighting의 성능과 품질을 보다 효과적으로 제어할 수 있습니다.

 

Screen-Space Global Illumination 

 

이번 HDRP 버전은 Screeen-Space Global Illumination(SSGI)를 도입합니다. 이는 환경이 생성하는 Indirect Diffuse Lighting(간접 확산 조명)에 액세스하는 알고리즘 입니다. 화면의 깊이와 색상 버퍼를 사용하여 Diffuse Light의 반동을 계산하는 기능입니다. 이것은 Ray Marching을 사용하여 결과를 계산한다는 점에서 Screen Space Reflection과 동일한 방식으로 작동합니다. * Ray Tracing을 사용할때 쓸 수 있습니다.   

 

자세한 내용은 Screen Space Reflection을 참조하세요.

 

Custom Pass AOV Export

이 기능을 사용하면 HDRP에서 AOV(Arbitrary Ouput Variables) API 확장을 사용하여 사용자 지정 패스 주입 지점에서 임의 데이터를 내보낼 수 있습니다. 예를 들어, 사용자 정의 패스로 렌더링되는 "Object ID"를 내보낼 수 있습니다. 기능 및 예제 스크립트에 대한 자세한 내용은 AOV 설명서를 참조하세요.

Debug Modes

Light Debug View

 

Scene에서 조명을 디버그하는 데 도움이 되도록 HDRP에는 이제 조명의 다양한 구성 요소를 여러 부분으로 분리할 수 있는 다양한 조명 디버그 보기 모드가 포함되어 있습니다. 이러한 디버그 모드는 AOV API에서도 사용할 수 있어 레코더가 내보낼 수 있습니다. 새로운 조명 디버그 모드는 다음과 같습니다.

 

  • Diffuse
  • Specular
  • Direct diffuse
  • Direct specular
  • Indirect diffuse
  • Reflection
  • Refraction

Light Layer debug mode

 

HDRP는 이제 각 게임 객체에 할당된 Light Layer를 표시하거나 특정 Light Layer와 일치하는 게임 객체를 강조 표시할 수 있는 새로운 Light Layer 디버그 모드를 포함합니다.

자세한 내용은 HDRP Debug Window의 Lighting Panel 섹션을 참조하세요.

 

Volume Debug Mode

 

이제 렌더 파이프라인 디버그 창에는 특정 카메라에 영향을 미치는 Volume 구성 요소를 시각화하는 데 사용할 수 있는 새 Volume Panel이 있습니다. 최종 보간 값에 기여하는 각 Volume에 대해 이 패널에는 각 속성의 값과 재정의 여부가 표시됩니다. 또한 Volume의 무게와 혼합 거리를 사용하여 볼륨의 영향 비율을 계산합니다. 자세한 내용은 HDRP 디버그 창의 Volume Panel 섹션을 참조하세요.

 

Quad Overdraw and Vertex Density

 

Scene에서 LOD가 필요한 GameObject를 쉽게 찾을 수 있도록, HDRP에서는두 개의 새로운 전체 화면 렌더링 디버그 모드가 포함되어 있습니다. 멀리 있거나 너무 많은 세부 정보가 포함된 메쉬를 쉽게 찾을 수 있습니다.  

Quad Doverdraw: 주로 작은 삼각형 또는 얇은 삼각형으로 인해 발생하는 여러 조각 셰이더를 실행하는 GPU 쿼드를 강조 표시합니다. (Metal 및 PS4에서는 지원되지 않음)


Vertex Density: 여러 정점 셰이더를 실행하는 픽셀을 표시합니다(Metal에서는 지원되지 않음).

Alpha to Mask 

이 HDRP 버전은 모든 HDRP 및 Shader Graph 셰이더에 Alpha to Mask (또는 Alpha to Coverage) 지원을 추가합니다. 

자세한 내용은 Alpha Clipping의 Alpha to Mask 속성을 참조하십시오.

 

Range Attenuation for Box-Shaped Spotlights

이 HDRP 버전은 Box 모양 Spotlights에 Range Attenuation이 추가되어 전체 범위에 걸쳐 조명이 균일하게 빛납니다.

* Emission 옆에 톱니바퀴 모양 아이콘을 누르면 Range Attenuation을 확인 할 수 있습니다. 

 

Box 모양의 Spotlight: Lux 100 Range Attenuation Off (왼쪽) Ragne Attenuation On (오른쪽)

더 많은 정보를 위해서, Light Component Documentation을 참고하세요.

 

Parallax Occulusion Mapping for Emssive Maps

이 HDRP 버전은 Parallax Occulusion Mapping이 있는 Emmisive Map에 대한 지원을 추가합니다.

Screen-space reflection on transparent materials

HDRP의 Screen-space reflection (SSR) 솔루션은 이제 투명한 메테리얼를 지원합니다. 이는 창문이나 물과 같은 투명한 표면에 유용하게 사용될 것 입니다.

Fabirc, Hair, and Eye Material Example

이제 HDRP는 직물과 헤어 소재를 포함하는 새로운 샘플을 포함하고 있습니다. 이 재료들을 참고 자료로 사용하여 응용 프로그램을 위한 직물 및 헤어 재료를 보다 신속하게 개발할 수 있습니다. 이제 HDRP에는 현실적인 눈 재료를 만드는 데 사용할 수 있는  Eye Shader Graph도 포함되어 있습니다. 또한 이 Eye Shader Graph를 더 쉽게 사용자 지정할 수 있는 새로운 HDRP 전용 셰이더 그래프 노드가 있습니다.

 

* 예제는 Window > Pacakage Manager > HDRP > Samples 에서 다운받아 보실 수 있습니다.

 

Material Sample에 있는 Eye Material 

Decal Layers and Decal angle fading 

이 HDRP 버전은 레이어별로 어떤 재료에 영향을 미치는지 지정할 수 있는 Decal Layer 를 소개합니다. Decal 계층에 대한 자세한 내용은 Decal 설명서를 참조하세요. 이 버전은 Decal Layer가 활성화된 경우 Decal 에 대한 각도 기반 페이딩의 지원도 소개합니다.

*HDRP Assets 에서 Decal > Layer 에서 찾을수 있습니다.  

 

Input System package support 

이 버전의 HDRP는 Input System Package에 대한 지원을 도입했습니다. 이 버전 이전에는, Input System Pacakge를 활성화하고 기본 제공 입력 시스템을 비활성화했을 경우 경우 HDRP가 제공하는 디버그 메뉴 및 카메라 제어 스크립트가 더 이상 작동하지 않았습니다. 이제 Input System Package를 단독으로 활성화하면 디버그 메뉴와 카메라 제어 스크립트가 모두 작동합니다.

 

HDRI Flowmap

HDRI Sky override에는 이제  flowmap을 sky cubemap에 적용할 수 있는 새 속성이 포함됩니다.

자세한 내용은 HDR Sky 설명서를 참조하세요.

Graphic Compositor

Graphics Compositator를 사용하면 3D 컨텐츠, Static(정적인) 이미지 및 비디오 레이어 간에 실시간 합성 작업을 수행할 수 있습니다.

 

이 툴은 세 가지 유형의 합성 기법을 지원합니다.

 

  • 쉐이더 그래프에서 안내되는 그래프 기반 구성입니다

  • 여러 대의 카메라가 동일한 렌더링 대상으로 렌더링되는 카메라 스택 구성. 그 결과를 그래프 기반 구성에 사용할 수 있습니다.

  • 3D 합성 - 3D 장면에 합성 레이어를 삽입하여 3D GameObject에서 합성 레이어 간의 반사/굴절과 같은 효과를 얻을 수 있습니다.

이 도구를 사용하면 외부 합성 도구 없이도 Unity 내에서 실시간으로 3D 컨텐츠와 이미지와 비디오를 혼합하여 최종 프레임을 구성할 수 있습니다.기능에 대한 자세한 내용은 HDRP Compositor 설명서를 참조하세요

Path Tracing

Path-Traced depth of field

 

이 HDRP 버전에는 고품질 Defocuse blur Path-traced 이미지를 생성하기 위한 새로운 Depth of field 모드가 포함되어 있습니다. Post-process depth of field와 비교하여 이 모드는 여러 투명 계층에서 올바르게 작동하며 경로 추적 영상에서 일반적인 노이즈(샘플 수를 늘리거나 외부 노이즈 제거 도구를 사용하여 완화할 수 있음)와는 별도로 아티팩트를 생성하지 않습니다. 

 

* Path Tracing을 활성화 하고 Focus Mode를 Physical Camera로 할 경우 HDRP는 후처리 효과가 아닌 Path Tracing으로 Depth of Field를 계산합니다. 

 

이 기능에 대한 자세한 내용은 Depth of Field를 참조하세요.

 

Accumulation motion blur and path tracer convergence APIs

 

이제 HDRP에는 고품질 accumulation motion blur 및 통합 path-traced 이미지와 같은 효과를 렌더링하는 데 사용할 수 있는 Recording API가 포함되어 있습니다. 이러한 기술은 여러 중간 서브프레임의 정보를 결합하여 최종 "통합" 프레임을 만듭니다. 새로운 API를 사용하면 스크립트에서 적절한 통합 최종 프레임을 추출하여 추가 처리를 수행하거나 디스크에 저장할 수 있습니다.

이 기능과 일부 스크립트 예제는 Multiframe rendering 및 accumulation 설명서를 참조하십시오.

 

Path-traced sub-surface scattering

 

Path Tracing은 이제 무작위 보행 접근법을 사용하여 Subsurface Scattering(SSS)을 지원합니다. 이 툴을 사용하려면 Path Tracing을 활성화하고 HDRP material와 동일한 방식으로 SSS를 설정하십시오.

HDRP의 SSS에 대한 자세한 내용은 Subsurface Scattering을 참조하십시오.

 

Path-traced fog

 

이제 Path Tracing이 안개 흡수를 지원합니다. SSS와 마찬가지로 이 기능을 사용하려면 Path-Trace를 활셩화하고 HDRP 표준 Fog와 동일한 방식으로 Fog를 설정하세요. 

 

HDRP의 안개에 대한 자세한 내용은 안개를 참조하세요.

 

Support for shader graph in path tracing

 

Path Tracing은 이제 Light 및 Unlit Shader Graph 노드를 지원합니다. 그래프에는 Screen-space differentials(ddx, ddy)에 의존하는 노드가 없어야 합니다. 현재 픽셀과 인접 픽셀 간의 차이를 계산하는 노드는 Ray-Tracing을 사용할 때 올바르게 계산되지 않습니다.

 

Improvements

다음은 Unity가 버전 10.0에서 High Definition Render Pipeline에 대해 수행한 개선 사항 목록입니다. 각 항목에는 개선 사항 요약 및 관련 문서에 대한 링크가 포함됩니다.

Scene view Camera properties

안티앨리어싱 모드 및 stop NaN과 같은 HDRP 전용 Scene view Camera 속성은 더 이상 기본 설정 창에 없고 대신 Scene view Camera 설정 메뉴에 있습니다.

 


HDRP의 Scene view Camera 속성에 대한 자세한 내용은 Scene view Camera를 참조하십시오.

Shadow caching system

이 HDRP 버전은 Shadow atlas 및 shadow caching 관리 기능이 향상되었습니다. 이제 각 계단식 그림자를 개별적으로 업데이트할 수 있습니다. 캐시된 그림자(OnEnable을 사용하는 그림자)는 Main View에서 독립적으로 볼 수 있는 모든 것을 렌더링합니다. 또한 이 버전에는 캐시된 그림자를 보다 정교하게 제어하는 데 사용할 수 있는 더 많은 API가 도입되었습니다. 자세한 내용은 그림자를 참조하세요. 

Custom post-processing: new injection point

이 HDRP 버전은 Custom Post-processing을 위한 새로운 injection point을 도입합니다. 이제 Temporal anti-aliasing pass를 수행하기 전에 Custom Post-processing을 주입할 수 있습니다.

Compute shaders now use multi-compile

HDRP는 첨단 현대 렌더러로서 많은 컴퓨팅 셰이더 패스를 포함하고 있습니다. 지금까지 일부 컴퓨팅 셰이더의 변형을 정의하기 위해 HDRP는 각 변종에 대해 새로운 커널을 수동으로 선언해야 했습니다. 이 버전에서 HDRP의 모든 컴퓨팅 쉐이더는 Unity의 멀티 컴파일 API를 사용하여 유지보수를 용이하게 하지만 더 중요한 것은 HDRP가 컴파일 시간을 단축할 필요가 없는 셰이더를 벗겨낼 수 있다는 점입니다.

Screen Space Reflection

HDRP는 새로운 구현 'PBR Accumulation'을 제공하여 Screen Space Reflection를 개선합니다.

Planar reflection probe filtering

Planar Reflection Probe Filtering은 평면 반사 및 표면 평활도(surface smoothness)의 결과를 결합한 프로세스입니다. 이 버전까지 Planer Reflection Probe Filtering을 구현한 결과 항상 환상적인 품질의 결과가 나오지는 않았습니다. 이 HDRP 버전에는 물리적 기반에 더 가깝고 이미지 품질을 크게 향상시키는 새로운 구현이 포함되어 있습니다.

Fake distance based roughness for reflection probe

이제 Reflection Probe는 물체로부터 거리를 두고 표면 반사의 점증하는 선입견 흐림(preceive bluriness)을 왜곡할 수 있습니다. 이 옵션은 기본적으로 비활성화되어 있으므로 Reflection Probe에서 활성화해야 합니다.

Screen Space Reflection

Screen Space Relfection 효과는 항상 Before Refraction Transparent Pass를 수행한 후 생성되는 컬러 피라미드를 사용합니다. 따라서 색상 버퍼에는 Before Refraction Rendering Pass를 사용하는 투명한 GameObject만 포함됩니다.

Distortion

Distortion 효과는 기본적으로 비활성화된 대략적인 왜곡을 지원합니다. Rough Distortion을 비활성화하면 효과가 컬러 피라미드를 생성하지 않고 대신 화면 복사본을 사용하기 때문에 리소스가 절약됩니다.

Platform stability

과거에 HDRP는 DirectX12, Vulkan, Metal, Linux에서 안정성 문제를 경험했습니다. 이 버전에는 이러한 플랫폼의 안정성 향상 기능이 포함되어 있습니다.

Lightloop optimization

성능 측면에서 HDRP의 가장 리소스 집약적인 작업 중 하나는 GPU로 램프를 보내기 전에 램프를 처리하는 것입니다. 장면에 많은 조명이 포함된 많은 하이엔드 프로젝트의 경우 특히 문제가 됩니다. 이 버전의 HDRP는 대부분의 경우 CPU 성능을 획기적으로 향상시키는 라이트 루프의 리소스 집약도를 최대 80%까지 줄이는 최적화를 도입했습니다.

Decal improvement

Deferred Lit Mode에서 decal를 활성화하면 HDRP가 더 이상 full depth pre-pass를 강제하지 않습니다. pre-pass에서 Receive Decal 속성을 가진 재료만 렌더링을 사용할 수 있습니다. Decal Shader Code가 개선되어 이제 더 적은 수의 셰이더 변형을 생성하며 decal이 영향을 주는 재료 속성을 제어하기 위한 더 나은 UI를 포함합니다. 마지막으로 Decal Shader Graph가 이제 메테리얼의 플래그 컨트롤에 영향을 미칩니다.

Constant buffer setup optimization

성능 측면에서 셰이더 데이터를 준비하고 GPU로 전송하는 작업은 리소스 집약적입니다. HDRP는 이제 새로운 C# 상수 버퍼 API를 사용하여 여러 개의 쉐이더 유니폼이 아닌 single call로 다양한 쉐이더 유니폼을 설정할 수 있게 되었다.

Temporal anti-aliasing

이전의 HDRP Temporal anti-aliasing (TAA) 솔루션은 일반적인 TAA 아티팩트로 인해 어려움을 겪었습니다. 움직이는 동안 이미지가 흐릿하게 보이고 유령 아티팩트가 있는 경우가 많습니다. 새로운 구현은 이러한 두 가지 문제 모두에서 크게 개선되며 맞춤기능도 향상됩니다.

AxF mapping modes

이제 AxF Shader의 모든 텍스처에 대한 텍스처 매핑 모드를 제어할 수 있습니다. Planar, Triplanar 또는 다른 UV 세트 중에서 선택할 수 있습니다.

이 개선에 대한 자세한 내용은 AxF Shader를 참조하십시오.

Contact shadows improvements

이제 Contact Shadow에 대한 추가 옵션을 사용할 수 있습니다. 이제 self-intersection문제를 방지하기 위한 치우침을 설정할 수 있을 뿐 아니라 새로운 두께 특성을 사용하여 contact shadow 가 남길 수 있는 간격을 채울 수 있습니다.

Light component user experience

이제 Light 구성 요소에는 Physical light unit(물리 기반 조명 단위)를 사용한 조명의 강도를 설정하는 데 도움이 되는 시각화가 포함되어 있습니다.

Exposure

Exposure Curve Mapping

 

이 버전 이전에 auto-exposure의 최소 및 최대 제한을 설정하려면 고정 값을 사용해야 했고 이로 인해 노출 값이 너무 많이 변동했습니다. 이제 곡선을 사용하여 이러한 한계에 대해 보다 안정적인 노출을 생성할 수 있습니다.

 

Custom mid-grey point

 

Auto-Exposure 시스템은 평균 scene luminance(휘도)를 계산하여 이를 평균 회색 값으로 매핑하려고 합니다. 이 회색 값에 대한 고정 표준은 없으며 카메라 제조업체마다 다릅니다. HDRP를 사용하면 업계에서 가장 일반적인 중간 회색 값을 선택하여 회색 값을 선택할 수 있습니다.

 

Custom Pass API

이 버전의 Main Camera에서 이제 다른 관점(예: 비활성화된 카메라)에서 GameObjects를 렌더링할 수 있습니다. 또한 새로운 API에는 Depth, Normal 및 Tangent을 RTHandle로 렌더링하는 기능이 내장되어 있습니다.

또한 이 카메라 오버라이드를 사용하여 일부 GameObjects를 1인칭 애플리케이션의 팔과 같이 다른 시야로 렌더링할 수 있습니다.

Ray tracing

Fallback for transparents

 

이 버전 이전에는 투명 GameObjects가 recursive rendering을 위해 설정되었지만 씬(scene)에서 recursive rendering을 사용하지 않으면 해당 개체가 사라집니다. 또한, 굴절되지 않으면 불투명해 보일 수 있습니다. 이제 HDRP는 오프셋이 있어 투명한 GameObjects의 비주얼이 recursive rendering과 refraction(굴절) 없이 일관성이 있습니다.

 

Shadow quality

 

이제 ray-traced 그림자의 노이즈 제거 기능이 더 높은 품질의 그림자를 생성합니다.

 

Colored shadows

 

HDRP는 이제 투명하고 투과적인 GameObjects들을 위해 컬러 ray-traced shadow를 지원합니다.

자세한 내용은 ray-traced shadows를 참조하세요.

 

Ray-traced reflection on transparent Materials

 

HDRP의 RTR(Ray-Trace Reflection) 솔루션은 이제 투명한 메테리얼를 지원합니다. 창문이나 물과 같은 투명한 표면에 유용하게 사용하게 됩니다.

 

Virtual Reality (VR)

 

이제 Ray-tracing이 VR을 지원합니다. 그러나 ray-tracing은 리소스를 많이 필요로 하고 VR은 이를 증폭시키기 때문에 성능이 매우 느립니다.

Render Graph

HDRP는 이제 내부적으로 Render Graph 시스템을 사용합니다. 이 기능은 사용 가능한 기능에 영향을 미치지 않으므로 전체 메모리 사용량을 크게 개선할 수 있습니다. 새 HDRP 템플릿에서 GPU 메모리 사용량이 25% 감소했습니다. 자세한 내용은 RenderGraph를 참조하세요.

 

Metallic Remapping

이제 HDRP는 Lit Materials의 mask map을 사용할 때 금속 값에 대한 range remapping을 사용합니다. Decal도 마찬가지.

Issues resolved

HDRP 버전 10에서 해결된 문제에 대한 자세한 내용은 Change log를 참조하세요.

반응형
Comments