Unity

[Unity] PostProcessing

CommitGuy 2024. 7. 11. 22:42

PostProcessing이란?

포스트 프로세싱은 기존에 렌더링된 Scene에 렌더링 효과를 더하는 작업으로 PostProcessing의 효과는 일반적으로 Scene 뷰에 따라 달라지거나, 최종 렌더링 결과물을 생성하기 전에 렌더링 되는 Scene위에 겹쳐서 표시됨

 

기존 컨텐츠를 수정할 필요없이 시각적인 효과를 즉시 구현하고 Scene의 품질을 개선할 수 있다는 장점이 있음

 

이 포스팅은 Unity의 Universal Render Pipeline(URP)를 사용하는 경우를 기준으로 설명하도록 하겠습니다.

 

URP를 사용할 경우 따로 패키지를 설치할 필요없이 PostProcessing을 사용할 수 있음

 

URP를 사용해 포스트 프로세싱을 하는 방법

1. GameObject를 하나 만들고 Volume 컴포넌트를 추가

Volume Component

Volume Component는 Post Processing Stack에서 Post Processing Profile을 적용하는데 사용

- Mode : Global과 Local 이 있음

  - Global : 게임 내의 전역적인 영향을 미치는 포스트 프로세싱 효과를 적용

  - Local : 특정한 지역에만 적용

- Profile : 포스트 프로세싱 스택에서 사용되는 설정들이 저장되는 파일

 

2. Profile옆에 New를 클릭하여 Post Processing Profile을 만든다

3. "Add Override" 버튼을 클릭해 적용하고자 하는 효과를 선택한다

PostProcess 효과들 목록

 

모든 PostProcess 효과들을 살펴보진 않고 Tonemapping, Color Adjustments, Bloom, Vignette만 살펴보도록 하겠다

 

Tonemapping

이미지의 HDR 값을 화면에 표시하기에 적합한 범위로 다시 매핑하는 프로세스

Mode : None, Neutral, ACES

  - None : 톤매핑 안함

  - Neutral : 색조 및 채도에 미치는 영향을 최소화하면서 범위의 리매핑을 수행하여 일반적으로 광범위한 컬러 그레이딩을 위해 사용

  - ACES : 좀 더 영화적인 표현을 위해 사용. Neutral 보다 Contrast가 높으며 실제 색조 및 채도에 영향을 줌

Tonemapping

Color Adjustments

최종 렌더링된 이미지의 전체적인 톤, 밝기 및 대비를 조정할 수 있음. 톤 매핑을 ACES로 설정한 후 Post Exposure 값을 적당히 올리면 밝고 화사한 느낌을 줄 수 있음

- Post Exposure : Scene 내 전체 노출량을 조절

- Contrast : 색조 값의 범위를 확대 또는 축소

- Color Filter : Color Adjustments 효과가 Render를 곱하고 결과를 색조화하는데 사용할 색상을 선택

- Hue Shift : 모든 색상의 색조를 이동

- Saturation : 모든 색상의 세기를 강조

Color Adjustments

Bloom

섬광 같은 밝은 광원에서 나오는 빛이 주변 오브젝트로 새어들어가는 것처럼 보이는 광학효과. HDR 렌더링과 함께 사용할 경우 마법이나 꿈 같은 환경처럼 보일 수 있는 효과를 보여줌

- Threshold : 해당 값보다 높은 밝기를 가진 픽셀에 효과를 적용, Threshold의 값이 낮을 수록 밝은 효과를 줌

- Intensity : Bloom 효과의 강도를 조절

- Scatter : Bloom의 효과를 흩뿌리는 정도

Bloom

Vignette

이미지의 모서리를 어둡게 만들어 중심 부분을 더 밝게 보이도록 만들어 주는 효과

- Intensity : 화면의 비네팅 양을 조정

- Smoothness : 비네트 테두리의 부드러움을 설정

Vignette

PostProcessing이 적용되지 않는 경우

Volume 파일을 만들고 profile을 만들고 PostProcessing 효과들을 override 했는데도 효과가 적용되지 않는 경우 아래의 몇가지 경우를 참고하면 된다

 

1. Main Camera의 Rendering 속성에 PostProcessing 체크 여부를 확인

Camera > Rendering > PostProcessing 체크 확인

 

2. URP Fidelity-Renderer 파일의 Post-processing Enabled 체크여부 확인

URP-High Fidelity-Renderer > Post-processing Enabled 체크 확인