포스트 프로세싱은 기존에 렌더링된 씬에 렌더링 효과를 더하는 작업입니다. 포스트 프로세싱의 효과는 일반적으로 Scene 뷰에 따라 달라지거나, 최종 렌더링 결과물을 생성하기 전에 렌더링되는 씬 위에 겹쳐서 표시됩니다. 이 기능은 기존 콘텐츠를 수정할 필요 없이 시각적인 효과를 즉시 구현하고 씬의 품질을 한층 개선할 수 있다는 뚜렷한 장점이 있습니다.
사실적인 씬을 만들기 위해 모든 포스트 프로세싱 기능을 사용할 필요는 없습니다. 하지만 시스템을 이해하면 씬의 품질을 더욱 향상시킬 수 있으므로 시간을 들여 배울 만한 가치가 있습니다. 이 섹션에서는 여러분의 상황에 적합한 포스트 프로세싱 효과를 선택하고 이러한 고급 기능을 사용하는 데 수반되는 위험을 방지하는 방법을 알아봅니다.
포스트 프로세싱에 대한 자세한 내용은 포스트 프로세싱 문서를 참조하십시오.
3D 폴리곤을 해상도가 제한된 2D 화면으로 래스터화하는 경우 최종 픽셀에 앨리어싱 효과(오브젝트 모서리가 계단처럼 표시)가 발생합니다. 실시간 3D에는 슈퍼샘플링, 멀티샘플 안티앨리어싱(MSAA), 빠른 근사 안티앨리어싱(FXAA), 공간적 안티앨리어싱(SMAA), 시간적 안티앨리어싱(TXAA) 등 다양한 안티앨리어싱 기술이 있습니다. 현재 가장 인기 있는 기술은 효과가 뛰어나고 상대적으로 고성능이 필요한 FXAA와 TXAA입니다. FXAA와 TXAA를 비교한 샘플 씬을 아래에서 확인해 보겠습니다.
FXAA는 눈에 띄는 앨리어싱 효과를 일부 수정하는 데 효과적이지만, TXAA를 적용한 씬에서는 오른쪽의 철로까지도 훨씬 더 부드럽게 표현됩니다.
FXAA는 온전히 포스트 프로세싱 단계에 속하는 안티앨리어싱 기법입니다. 간단히 말해, FXAA는 래스터화된 씬을 캡처하고, 에지를 분석하고, 기존 이미지에 알고리즘을 적용하여 이미지를 매끄럽게 합니다. 간단하고, 복잡한 종속성이 없으며 처리 속도가 빠릅니다.
TXAA는 훨씬 더 복잡하며, 지터링과 이전 프레임을 추가 데이터로 사용하여 현재 프레임에 블렌드합니다. 모션 벡터를 사용하여 최종 프레임 렌더링에 어떤 픽셀이 사용될지 또는 사용되지 않을지 예측하기도 합니다. 목적은 최종 해상도보다 더 큰 씬을 렌더링할(일반적으로 슈퍼샘플링에 사용되는 방법) 필요 없이 더 많은 데이터로 프레임의 유효 해상도를 높이는 것입니다. 성능에 큰 영향을 미치지 않으면서도 슈퍼샘플링을 통해 얻는 품질에 상응하는 훨씬 더 매끄러운 안티앨리어싱이 가능하다는 뚜렷한 장점이 있습니다.
실시간 렌더링의 여타 경우와 마찬가지로 이 기술에도 단점은 있습니다. TXAA는 모션 벡터 사용을 필요로 하고, FXAA에 비해 성능에 미치는 영향이 더 큽니다. 또한 최종 이미지 예측의 복잡성으로 인해 빠르게 움직이는 게임 오브젝트에 예기치 않은 결함이 발생하고 전체 씬의 텍스처가 흐리게 표시될 수 있습니다. 이로 인해 일부 애플리케이션에는 적합하지 않습니다.
앰비언트 오클루전 포스트 프로세싱은 스크린 공간 데이터(주로 뎁스)를 기반으로 하는 앰비언트 오클루전과 유사하기 때문에, 일반적으로 스크린 공간 앰비언트 오클루전(SSAO)이라고 부릅니다. 포스트 프로세싱 활성화에서 설명한 것처럼 SSAO는 주변광에 셰이딩을 적용할 때 뛰어난 정확도를 제공합니다. 특히, 정적 씬과 동적 씬 사이에서 아무런 오클루전 상호작용이 일어나지 않는 동적 게임 오브젝트에서 효과적입니다.
일반적으로 SSAO는 씬의 앰비언트 셰이딩에 유용한 반면, 과도한 오클루전을 초래할 수 있습니다. 오프라인 3D 모델링 애플리케이션에서 오브젝트별로 베이크된 앰비언트 오클루전을 광원 베이킹의 추가 앰비언트 오클루전과 함께 사용하면 SSAO가 앰비언트 오클루전의 세 번째 레이어가 됩니다.
SSAO를 설정할 때는 최종 결과물을 고려하면서 다른 앰비언트 오클루전 솔루션과 균형을 맞추어야 합니다.
스크린 공간 반사의 경우 SSAO처럼 현재 Scene 뷰를 사용하여 광선 추적을 통해 반사의 근사치를 계산합니다. 일반적으로, 사실적인 결과물을 얻으려면 이 기능을 활성화하는 것이 좋습니다. 그러면 노멀 큐브맵 캡처 반사를 보완하는 매우 정확한 반사가 추가됩니다. 하지만 이 기능을 활성화하면 렌더링이 디퍼드 렌더링으로만 제한되고 성능에 영향을 미칩니다. 또한 SSR을 사용하면 화면에 나타나지 않는 오브젝트가 반사 지점을 생성하지 않으므로 화면의 모서리 부분에서 반사 효과가 누락될 수 있다는 단점도 있습니다.
뎁스오브필드(피사계심도) 효과를 사용하면 대형 센서 카메라를 사용한 것처럼 영화 같은 느낌을 줄 수 있습니다. 씬에서 인식되는 스케일을 바꾸는 데도 사용할 수 있습니다(틸트 시프트 카메라 렌즈의 축소 효과와 비슷). 예를 들어 아래 이미지는 뎁스오브필드(피사계심도) 효과를 적용하여 축소 모형처럼 보이게 한 실제 사진입니다.
약간의 모션 블러를 사용하여 프레임 간 전환을 더욱 사실적이고 자연스럽게 블렌드할 수 있습니다. 하지만 애플리케이션에서 멀미의 위험을 줄이는 것 역시 중요합니다. 일반적으로 1인칭 또는 3인칭 카메라에서 볼 수 있듯 씬 이동에 큰 차이가 있는 경우 특히 주의해야 합니다. 60FPS로 렌더링하는 경우에도 플레이어가 카메라를 왼쪽에서 오른쪽으로 아주 빠르게 돌리면 떨리는 것처럼 보이고 모션 블러 없는 정지 모션처럼 보이는 광각 뷰를 예로 들 수 있습니다. 다음은 180도의 셔터 각도에서 나타나는 모션 블러의 예시입니다.
전체 셔터 각도인 360도를 사용하면 전체 프레임 기간 잔상이 발생합니다. 각도가 작을수록 잔상이 더 적습니다. 정지 모션을 나타내는 것이 목표인 경우 모션 블러를 비활성화하십시오.
현실에서 블룸이란 광선의 초점이 정확하게 맞춰지지 않은 렌즈로 인한 현상을 말합니다. 이 현상은 일반적으로 품질이 낮은 카메라 렌즈나 특수 효과 글로우 카메라 필터에서 발생합니다. 블룸을 사용하면 아래 그림과 같은 흐릿하고 부드러운 이미지가 연출됩니다(Threshold Gamma 는 0으로 설정됨).
블룸을 사용하여 아래 그림과 같은 고강도 또는 밝은 조명 요소를 달리 표현할 수도 있습니다.
이런 기능을 과도하게 사용하면 역효과가 발생할 수도 있습니다. 위 그림 중 첫 번째 샘플에서 이러한 역효과를 확인할 수 있습니다. 고강도 픽셀이 너무 많고 강도 임계값의 블룸이 매우 빠르게 시작됩니다.
임계값을 선택할 때 특정 발광 표면 값, 씬의 조명 설정 및 시각 적응 활성화 여부를 고려하십시오.
입력 데이터의 리니어 HDR 버퍼를 처리하고 지정된 색 공간에 다시 렌더링하여 최종 출력하는 톤 매퍼를 사용해 고강도 컬러 값을 처리할 수 있습니다. 이 과정은 카메라가 작동하는 방법과 유시합니다. Unity 포스트 프로세싱에는 Neutral 및 ACES (Academy Color Encoding System(Wikipedia))라는 두 가지 타입의 톤 매퍼가 있습니다. 얼핏 보기에는 이 두 유형의 차이가 톤 매핑의 기본 콘트라스트라고 생각할 수 있습니다. 하지만 가장 큰 차이는 ACES 에 대비하여 Neutral 을 유사하게 조정할 수 있다는 점입니다. 아래 이미지에서 두 개의 예제는 거의 비슷합니다(Neutral 설정: Black In 0.02, White In 10, Black Out –0.04, White Out 10, White Level 5.3 및 White Clip 10).
고려해야 하는 중요한 차이점은 두 가지 톤 매퍼가 컬러 광원 같은 고강도 컬러 값이나 폭발 효과 또는 불꽃의 발광 효과를 처리하는 방법입니다. 아래 그림에서는 ACES 톤 매퍼가 어떻게 고강도 컬러를 Neutral 톤 매퍼와 다르게 정규화하는지 확인할 수 있습니다.
색 수차(Chromatic Aberration), 그레인 및 비네트는 실제 카메라 시스템의 결함을 시뮬레이션하는 포스트 프로세스 효과입니다. 각각의 결함이 실제 카메라에서 발생하는 원리를 알면 더욱 적절하게 활용할 수 있습니다.
색 수차 는 카메라 렌즈가 모든 컬러의 초점을 동일한 수렴 포인트에 맞추지 못하는 경우 이미지에 나타나는 컬러 산란입니다. 색 수차(Chromatic Aberration)는 일반적으로 보정이 잘못되거나 품질이 낮은 렌즈에서 나타납니다. 이는 디지털 씬에 현실감을 더하는 일종의 효과이기도 하지만, 정확히는 가상의 카메라가 품질이 낮은 렌즈를 모방하도록 지시하는 것입니다.
실제 사진 또는 영화의 최종 결과물에 나타나는 그레인 은 일반적으로 센서에 들어오는 유용한 빛의 양이 불충분할 때 나타나는 현상입니다(예: 노이즈로 표현되는 어두운 씬이나 ISO가 높은 카메라 센서/필름). 이 효과를 사용하면 실제 카메라의 한계를 가상으로 구현하여 깨끗한 3D 렌더 씬을 더 사실적으로 표현할 수 있습니다. 하지만 씬에 노이즈가 많으면 인위적인 모션으로 인해 보는 사람의 주의가 분산되고, 최종적으로 렌더링된 이미지의 콘트라스트에 영향을 미칠 수 있습니다.
비네트 는 CA 효과와 유사하며, 렌즈가 카메라의 센서/필름의 중앙에서 가장자리로 광원을 골고루 분산하지 못할 때 발생하는 결함입니다. 이 효과를 이용하면 씬의 중앙 지점에 시선을 집중시킬 수 있습니다. 하지만 이 효과를 과도하게 쓰면 씬이 아마추어 포스트 에디터가 작업한 것처럼 보일 수 있습니다.
이 포스트 프로세싱 설명의 핵심은 각 효과를 연습하고 완벽히 이해해야만 해당 기능을 목적에 맞게 효과적으로 사용하고 전반적인 씬 성과에 대한 각 추가 효과의 시각적 혜택을 따져볼 수 있다는 것입니다.
추가적인 포스트 프로세싱 기능에 대한 조언은 다음 문서를 참조하십시오.