Unity. Post Processing

PAVDUP·2023년 10월 9일
0

기존 파악했던 Post Processing 의 내용의 경우, URP 에 기반하고 있었다.
Volume Framework 를 이용하며, 자신과 Camera의 위치에 따라 Post processing을 적용시켜 주는 친구.
따라서 Built in Rendering Pipeline 에 적용 가능한 과정을 한번 정리하고자 한다.

23.03.05

다른 곳에서 자꾸 Post Processing 을 URP 에서 사용해야 한다고 하니까 쓰고 싶은 느낌이 들기도 한데, 현재 최신 Update 된 Post Processing V2 에서는, 사용할 수 있는 효과는 다를 수 있어도, 그 동작이 URP 와 비슷한 느낌이 드는데?




Brackey's Post Processing v2 Tutorial

내 생각에, 이게 가장 효과적으로 정리된 듯.

Post Processig은, 마지막 게임의 비주얼을 높여줄 수 있는 가장 효과적인 방법이다.

  • Built in / URP / HDRP 가 다르다는 점을 먼저 말함.
  • 해당 프로젝트는 URP를 기반으로 함.

SetUp

Volume > Profile > Override : 각각의 효과를 추가할 수 있음.
Camera > Rendering Setting
UniversalRP - HighQuality Asset setting > HDR 설정 킴.

Scene

  • Volume System : Area 에 따라 다른 시각 효과를 주고 싶을 때.
    Camera 가 해당 Area 안에 들어가 있을 때만 Post - Processing 의 영향을 받음.

Post Processing 의 효과들

다양하고 많은 효과들이 있지만, 큰 대분류에 따라 정리.

  • Color Correction
  • Lens Stuff
  • Camera
  • Effects

1. Color Correction

ToneMapper
  • HDR 색상 공간의 색상을 모니터가 표시할 수 있는 것으로 바꿈.
  • Netural 은 색상에 최소한의 영향을 미칠 수 있음.
  • ACES 는 Industry 표준으로, 영화 같은 연출을 할 수 있음.
  • HDR 을 Enable 한 경우, 무조건 Tone Mapper 를 사용하는 것이 좋음.
White Balance
  • Wite Balance 는 Real Camera 에서 추구하는 것과 동일.
  • Temperature : 온도를 바꿈. (붉은 색과 푸른 색.)
  • Tint : 초록색과 보라색 사이.
Color Adjustments
  • 카메라에 비치는 전반적인 색의 밝기 및 대조를 조정하고 싶을 때 사용함.
  • 나와 있는 것과 동일하게 사용하면 됨.
  • Tonemapping 의 ACES 모드와 Color Adjustment 의 Post Exposure 를 함께 사용하면, 밝기에 대한 좋은 효과를 얻을 수 있음.
Channel Mixer
  • Red / Blue / Green 에 대한 색을 조정하는 것이 가능함.
Color Curves
  • 다재다능함.
  • 이미지의 휘도 (들어오게 되는 밝기) 를 조정할 수 있음.
  • Channel Mixer 에서 사용하던 것을 Curve 를 바탕으로 조정할 수도 있음.
    - 즉, 해당 Color 에 대한 휘도를 조정하는 것이기도 함.
    - 해당 딱 하나 컬러의 휘도를 조정하는 것이므로.
  • Hue vs Hue / Hue vs Sat 등이 무슨 뜻인지 잘 모르겠네.
Shadows Midtones Highlights
  • Shadows, Midtones, Highlights 에 대한 각각에 대한 설정을 따로 하는 것이 가능함.
Lift Gamma Gain
  • Shadows Midtones Highlights 와 비슷하게 동작하지만, 더 자연스러운 결과를 제공. ASC CEL color granding standard 를 사용한다고 하는데, 정확히 뭔지는 잘 모르겠음.
Split Toning
  • shadow 와 highlight 가 각각의 color 로 구분될 수 있도록 한다.
Color LookUp
  • Photoshop 등의 Color 조정할 수 있는 Tool 에서 게임 내의 Image 에 색 조정을 입혀본 후, LUT 파일에 해당 내용을 적용하고, 그 LUT 파일을 Unity 에 Import 함.
  • Import 한 Lut 을 여기 Color LookUp에 넣으면 동작.

2. Effects

Bloom
  • 밝은 부분이 옆으로 번지도록 함.
  • HDR 을 조정함으로써 더 효과를 줄 수 있음.
  • Dirt Texture를 바탕으로 어떻게 분산되는지를 조정해줄 수 도 있음.
Chormatic Aberration
  • Game View 에서의 모양을 red, blue, green 으로 나누는 특이한 효과를 제공.
Film Grain
  • cinematic view 를 보는 것과 같은 noise 를 제공.
Vignette
  • game view 의 edge 를 어둡게 함.

3. Camera Lens

Depth Of Field
  • Focus 를 조정할 수 있음. 나머지는 Blur 처리. 어떻게 Blur 처리할지도 조정하는 것이 가능.
Motion Blur
  • 실제 카메라가 움직일 때, Blur 되는 처리를 조정함.
Lens Distortion
  • Lens 를 애곡하는 조정
Penini Projection
  • 높은 FOV 를 가진 Camera인 것처럼 보여줌.

4. Camera

카메라 자체가 가지고 있는 Post Processing 에 관한 개념.

Dithering
  • 명암 차이를 좀 더 부드럽게 만들어주는 친구.
Anti Alising
  • Edge 를 좀 더 예쁘게 처리해 줌.



Unity Manual

개념 자체에 대해서는 잘 나와있긴 한데, 생각보다 설명이 그렇게 좋지 못하다.

Post Processing 이란?

포스트 프로세싱(Post-processing) 은 카메라가 장면을 그린 후 장면이 화면에 렌더링되기 전에 발생하는 전체 화면 이미지 처리 효과를 통칭하는 용어.

Unity provides a number of post-processing effects and full-screen effects that can greatly improve the appearance of your application with little set-up time.

카메라 Component 내부의 물리적 카메라(physical caemra) 및 필름(film) property를 시뮬레이션하거나 세련된 시각 효과를 구현할 수 있다.

각각의 Render pipeline 에 따라 Post Processing을 적용하는 방법 / 적용할 수 있는 효과 등이 다르므로 살펴볼 필요가 있다.

적용할 수 있는 Post Processing 효과 및 정보

Unity Manual's Post Processing Document : 효과 유효성 및 위치 항목 참고

렌더 파이프라인 호환성

IN URP

Manual for URP's Post-processing

IN HDRP

Manual for HDRP's Post-processing

IN Built - in RP

Manual for Post-processing

Post Processing 더 자세하게

Post-processing is a generic term for a full-screen image processing effect that occurs after the camera draws the scene but before the scene is rendered on the screen.

포스트 프로세싱(Post-processing) 은 카메라가 장면을 그린 후 장면이 화면에 렌더링되기 전에 발생하는 전체 화면 이미지 처리 효과를 통칭하는 용어이다.
설정 시간이 거의 들지 않으면서도 제품의 비주얼을 크게 개선할 수 있다.

또한, URP HDRP가 Post Processing 은 Post Processing 을 적용하기 위해선 다른 방법을 사용하거나, 추가적인 조치를 취해야 하므로 - "여기에서 나오는 방법과 서술은 Built in Render Pipeline 을 중심으로 서술하고 있다"고 생각할 수 있겠다.

Requirements and compatibility (요구사항 및 호환성)

Installation

  • Package Manager에 있는 Post Processing package 를 다운하거나 Update 할 것.
  • 혹시 모를 경우를 대비해 Source code 링크도 지원하긴 하지만, Package Manager 를 권장함.

Getting started with post-processing

: Post-processing 효과를 만드는 데 필요한 Component 들을 정리한다.

Post-process Layer

Post-process layer

씬에서 포스트 프로세싱을 활성화하려면 Rendering > "Post Process Layer" 컴포넌트를 메인 카메라 게임 오브젝트에 추가한다.

Component 를 추가하는 경우 다음과 같은 현상이 발생한다.

  • 이 post-process layer 에 대한 anti-aliasing을 구현(configure) 합니다.
  • post processing 이 적용될 layer 를 선택하고 post process 를 trigger 할 game object 를 선택할 수 있게 된다.

*Q. post processing 이 적용될 layer를 선택하여, layer 에 따라 효과를 주거나 뺄 수 있다는 것은 아는데, trigger 에 해당하는 gameObject 설정은 무엇인가?

=> A. 아래와 관련이 있는 것으로 보인다. 이 Trigger Transform 은 volume blending feature를 제어한다. Unity는 기본적으로 카메라 오브젝트의 transform 을 트리거에 할당한다.

// Q. Volume Blending 자체는 Post Processing의 여러 효과를 섞는 기능이고, 이러한 Volume Bleding 을 Trigger 가 관리하는 것으로 보인다.

=> A. Trigger 란? : Local Volume 에 대한 포스트 프로세싱 효과를 섞는 기능인 Volume Blending 을 관리하는 Game Object의 Transform.*

=> Q. 아니 이게 맞는지도 모르겠네??

Volume blending

Volume framework 를 사용하여 Unity에서 "포스트 프로세싱 효과"를 관리하거나 섞을 수 있다. 각 Volume 은 global / local 경계(boundaries)를 가질 수 있다.
볼륨 내부에는 블렌딩할 수 있는 조합에 따른, 볼륨 overrides 를 포함할 수 있으며,
이러한 볼륨 블렌딩은 Post-processing Layer의 트리거에 그 기능이 부여되어 있으며, 이 "트리거"는 카메라에 영향을 미치는 layer 를 제어한다.

Anti-aliasing

Anti-aliasing은 appearance of jagged edges (모습의 가장자리가 들쭉날쭉하게 존재하여 각져 보이는 현상) 를 줄여준다.

포스트 프로세스 레이어 컴포넌트를 사용하면 카메라 별로 앤티 앨리어싱 효과를 설정할 수 있다.
메인 카메라에서는 템포럴 앤티 앨리어싱(TAA)을 활성화하고 다른 카메라에서는 빠른 근사 앤티 앨리어싱(FXAA)과 같이 리소스를 덜 사용하는 형태의 앤티 앨리어싱을 활성화할 수 있다.

Toolkit

The Toolkit section comes with a few utilities.

Custom Effect Sorting

Custom Effect Sorting allows you to change the rendering order of custom effects.

Post Process Volume

The Post-process Volume component allows you to control the priority and blending of each local and global volume. 씬에서 포스트 프로세싱 설정을 자동으로 블렌딩하는 효과 오버라이드 세트를 만들 수 있다.

이 컴포넌트를 사용하는 최적의 방법은 각 볼륨에 대한 전용 게임 오브젝트를 만드는 것이다. 이렇게 하기 위해선,

  • Create an empty GameObject.
  • Add the Post-process Volume component to your new GameObject in the Inspector. To do this, select Add Component > Post-process Volume.
  • View your Main Camera’s Inspector, and in the Post-process Layer component, set Layer to the new GameObject you have just created.

(그냥 빈 오브젝트 만들어서, Post-process volume 추가하고, layer 할당하라는 뜻)

The Post Process Volume component is empty by default. Each post-process volume has two modes:

  • Global : no boundaries and Unity applies it to the whole scene.
  • needs a collider or trigger component attached to it to define its boundaries. Any type of 3D collider is suitable, but complex meshes can be more resource-intensive. Local volumes have a Blend Distance property, which represents the outer distance from the volume surface where blending starts.
    (그냥 Collider 등 필요하고, 리소스적으로 효율적이라는 뜻. 또, Blend distance 라는 개념이 있어서 섞이게 되는 거리를 조절할 수 있음.)

Adding post-processing effects to the stack

Once you have assigned a post-processing profile to the Post Process Volume component, you can add post-processing effects to the stack.
(Post Process Volume component 를 추가하고, post-processing profile을 거기 추가하고 나면, post-processing effects 를 stack에 추가할 수 있다. = stack은 Inspector 상에서, 해당 Volume 이 가지고 있는 post processing 효과(effect)가 쌓여져 있는 것을 의미하는 듯 하다.)

stack 에서 보이는 것은 다음과 같다.
![[Pasted image 20230305203018.png]]

A. 이 체크박스는 해당 특정 volume 에 대한 효과의 재정의를 전환한다. 하지만, 끄거나 킬 때 너가 재정의한 선택들이 변화하지 않도록 막아준다.

C. 이게 진짜 해당 효과가 이 특정 볼륨 내에서 켜질지 말지를 켤정한다.

D.

(=> 내가 이해한 게 맞으면,,, 아니 정확히 이해하지 못했다. 뭐 이렇게 써놨냐? 나중에 Tutorial 다시 봐야 겠네.)
(A / C 둘다 껐다 키는 건데, 어떻게 껐다 키는 게 다른 거냐??)

profile
오와우아오왕

0개의 댓글