리얼 타임 렌더링의 기초에 나온 용어 중 Anit-Aliasing에 대해 알아보자
Anti-Aliasing은 에일리어싱 반대가 아니라 Ani-Icing (방빙)처럼 계단 현상을 방지하는 기술이다.
오늘은 안티 에일리어싱에 대해 알아보도록 해요!
Aliasing 에일리어싱? 에일리언 같지만, 전혀 아니에요!
그래서 에일리어싱을 안티하는거 그것이 안티 에일리싱!
이제 안티 에일리어싱에 대해 알아봤어요!
헿ㅎ.
안티 에일리어싱은 말 그대로 계단 현상을 방지하는 기술인데
이 계단 현상이란 우리가 보는 화면을 무진장 확대해서 보면 색을 표현해주는 픽셀과 픽셀 사이의 애매한 공간이 생긴다.
이때 계단처럼 각져 보이는 현상이 계단현상이다.
아래 그림처럼 보았을 때 미묘하게 원이 달라보이는데 이를 확대해 보면 원은 뭔가 계단처럼 각져 있는 모습이다.
확대한 그림의 픽셀 하나가 화면의 픽셀 하나라고 생각해보자.
분명 곡선을 그렸는데 확대해보니 계단처럼 생겼다. 이런 현상을 계단 현상, 에일리어싱이라 한다.
왼쪽 그림처럼 픽셀의 경계선을 따라 중간색의 픽셀을 추가하여 각진 부분을 부드럽게 보이게 한다.
이를 안티 에일리어싱, 계단 현상 방지라 한다.
왜 이런 현상이 나타날까??
그 이유는 우리 모니터는 픽셀 하나 하나 장신 정신으로 색을 보여주기 때문이다.
이를 Raster Graphics 래스터 그래픽스라 한다. 일반적으로 보는 모든 화면은 래스터 방식으로 표현된다.
*래스터 그래픽스와 다른 방식인 벡터 그래픽스(Vector Graphics)가 있다. 벡터 방식은 픽셀 단위가 아니라
좌표와 방정식으로 이미지를 표현하는데 해상도에 상관없이 선명하고 매끄러우며 에일리어싱도 발생하지 않는다.
현재의 기술로 화면의 모든 요소를 실시간으로 수학적 계산으로 표현하기 어렵기 때문에
벡터 방식의 모니터는 상용화 되지 않았다.
그래서 아주아주 확대해서 보면 작은 점에 색 하나가 들어가게 때문에 에일리어싱이 발생할 수밖에 없다.
안티 에일리어싱에는 여러 방법이 있는데 그중 4가지 정도에 관해 설명하자면 다음과 같다.
1. SSAA (Super Sampling Anti-Aliasing) / FSAA (Full-Scene Anti-Aliasing)
- 초고해상도로 렌더링 후 현재 화면 해상도로 축소하면서 픽셀의 색상을 평균화하는 방석이다.
- 이미지나 프레임을 몇 배 더 높은 화면으로 렌더링하게 되어 높은 성능이 요구된다.
- 많은 연산을 한 만큼 높은 품질을 만들어 내고 또 이미지의 모든 부분이 동일하게 적용된다.
2. MSAA (Multi-Sample Anti-Aliasing)
- SSAA의 개량버전이다. 특정 픽셀의 색상을 여러 샘플로 나누어 경계선을 부드럽게 만든다.
이 과정에서 모든 픽셀을 샘플링하는 것이 아니라 경계 부분의 픽셀만 추가 샘플링을 한다. - 즉 내부 픽셀은 한 번만 샘플링하여 계산을 줄이고 경계선만 집중적으로 처리하여 색상 값을 평균화한다.
- SSAA보다 품질은 떨어지지만, 성능 소모가 매우 줄어들어 실시간 렌더링이 필요한 환경에서 유리하다.
- 단점으로는 투명한 텍스처에는 잘 적용되지 않고 이미지 전체적으로 적용되는 게 아니어서 전체적으로
부드러운 이미지를 만들진 못한다.
3. TAA (Temporal Anti-Aliasing)
- 시간적 안티 에일리어싱으로 여러 프레임 간의 정보를 결합하여 계단 현상을 줄이는 방식이다.
- 언리얼 엔진을 포함해 많은 게임 엔진에서 기본 옵션으로 사용된다.
- TAA는 이전 프레임의 데이터를 사용해 가장자리를 부드럽게 하며 움직이는 물체가 있을 경우
이를 추적하여 계단 현상을 줄인다. - 이전 프레임 정보를 사용하다 보니 매우 부드러운 이미지와 자연스러운 계단 현상 감소가 가능하며
SSAA와 같은 고사양 방식에 비해 성능 부담은 적으면서 품질은 높게 만들어 낸다.
또한 모든 픽셀에 적용이 가능하여 경계선과 내부 모두 동일한 효과를 줄 수 있다. - 단점으로는 고스트 현상(Ghosting)이 발생하는데 고스트 현상은 움직임이 많은 화면에서
물체의 잔상이 발생하는 것이다. 빠르게 움직일수록 심하며 블러된 듯한 느낌을 줄 수 있다. - 아~주 작은 디테일이나 텍스처에서 흐릿해지는 문제가 발생할 수 있다.
4. FXAA (Fast Approximate Anti-Aliasing)
- 빠른 근사적 안티 에일리어싱 방식으로 고사양 그래픽 카드 없이도 저비용으로 계단 현상을 줄일 수 있다.
빠르고 가벼운 방식으로, 텍스처 필터링과 같은 후처리 과정을 통해 계단 현상을 줄인다. - 현재 프레임의 픽셀을 분석하여 블러를 적용하는 방식으로, 첫째로 이미지 내 경계선을 빠르게 검출하여
식별된 경계선 부분에 블러를 적용한다. 블러로 픽셀 간 차를 평균화하여 부드러운 경계선을 만들고
만들어진 이미지를 전체 화면에 후처리하여 프레임 전체에 균일하게 적용한다. - FXAA는 성능에 거의 영향을 주지 않아 저사양이나 고성능을 유지해야 하는 게임에서 매우 유리하다
또한 모든 장면에 균일한 적용이 가능하여 화면 전체적으로 부드러운 효과를 제공한다. - 하지만 블러 효과를 통해 계단 현상을 줄이기 때문에 작은 디테일이나 텍스처의 선명도가 떨어질 수 있다.
그리고 다른 고품질 방식에 비해 정확도가 떨어지고 특정 상황에서는 계단현상을 완전히 없애지 못할 수 있다.
'Real-Time Rendering Fundamentals' 카테고리의 다른 글
Real-Time Rendering Fundamemtals - 실시간 이미지 표현 기초 (0) | 2024.10.30 |
---|