최근 수정 시각 : 2024-05-04 04:10:58

비등방성 필터링

anisotropic filtering에서 넘어옴
anisotropic filtering

파일:external/www.technopat.net/anisotropic-filtering-nedir.png
사진 속의 게임은 폴아웃: 뉴 베가스.

1. 원리2. 효과


이방성 필터링, 애니소트로픽 필터링등의 다양한 명칭으로 부르기도 하지만 줄여서 간단히 AF라고 부르기도 한다.

비등방성의 뜻은 방향에 따라 물체의 물리적 성질이 다르게 변화하는 현상을 나타내는 말로, 3D 그래픽에서는 텍스처를 다양한 화면에서 봐야 하기 때문에 이러한 비등방성이 항상 일어난다고 보면 된다.

1. 원리

텍스처 필터링 문서를 참조하자.

밉매핑의 기반은 텍스처가 축소되는 정도에 따라 미리 다운스케일된 밉맵을 사용해 안티에일리어싱의 효과를 얻는 것이다. 그러나 3D 그래픽에서는 텍스처가 시선에 항상 수직인 것이 아니므로, 비스듬하게 위치한 텍스처의 경우 가로축과 세로축이 축소된 정도가 달라질 수밖에 없다. 이중선형 필터링이나 삼선형 필터링에서는 이런 경우에도 하나의 값만을 이용해서 밉맵을 사용하지만, 그러지 않고 가로축과 세로축 각각에 대해 밉맵을 따로 만들어두는 것이 비등방성 필터링이다.

예를 들어 원 텍스처의 크기가 1024x1024라고 하면, 보통의 밉맵은 512x512, 256x256, 128x128, ... 이런 식으로 만들어진다. 따라서 가로축과 세로축이 1/2배로 축소된 경우에는 512x512 밉맵을 쓸 것이고 아무 문제가 없다. 그러나 가로축은 그대로인데 세로축만 1/4로 축소된 경우(멀리 있는 바닥 텍스처 등)에는 512x512 밉맵이나 256x256 밉맵을 써야만 하며, 어느 경우든 가로축의 해상도는 떨어져 보일 것이다.

따라서 가로축은 그대로이고 세로축만 1/4로 축소된, 1024x256 밉맵을 미리 만들어두는 생각을 해볼 수 있다. 이렇게 하면 세로축의 에일리어싱은 없으면서도 가로축의 해상도는 1024 그대로를 유지할 수 있다.
이렇게 1024x512, 1024x256, 1024x128, ... 식으로 세로축이 축소되는 밉맵과, 512x1024, 256x1024, 128x1024, ... 식으로 가로축이 축소되는 밉맵, 그리고 또 512x512, 512x256, 512x128, ... 처럼 가로축이 1/2인 경우, ... 등등을 모두 만들어 놓으면, 가로축과 세로축이 축소된 정도 각각에 따라 적절한 밉맵을 사용할 수 있다. 이것이 비등방성 필터링이다.

2. 효과

멀리 있으면서 시선에 비스듬한 물체의 텍스처 선명도가 비약적으로 상승한다. [1] 텍스쳐를 정면으로 볼때는 이론적으로도 체감으로도 삼선형 필터링과 전혀 차이가 없지만, 점점 비스듬하게 볼수록 텍스쳐 선명도의 차이가 확 느껴진다. 먼 거리를 봐야하는 게임에서 이 옵션을 적용시킬 경우 체감그래픽 향상에 큰 도움을 받을 수 있다.

텍스처의 가로축과 세로축의 축소 비율이 크게 차이나는 경우 많이 축소된 쪽에서 에일리어싱이 일어나거나, 또는 덜 축소된 쪽의 해상도가 떨어질 수밖에 없는 이중선형, 삼선형 필터링과는 달리, 축소된 쪽은 축소된 만큼 다운스케일하여 안티에일리어싱이 되고 덜 축소된 쪽의 해상도는 그대로 남아 있으므로 선명하게 볼 수 있다. 비율 차이가 클 수록, 즉 거리가 멀고 시야에 비스듬할수록 삼선형 필터링과의 차이는 커진다.

이 기술은 안티에일리어싱과 같이 게임에서 주로 사용되는 기술로, 3D 게임에서 원거리 텍스처를 샘플링해 선명하게 보여준다. 텍스쳐(비트맵그래픽)의 크기 변화(오버/언더 샘플링)에 따른 Aliasing효과를 제거함[2](즉 텍스쳐 전문의 안티에일리어싱 기술의 일종이다)과 동시에 매우 높은 시야각을 제공한다.

안티에일리어싱과 다르게 크게 16x까지 먹여도 프레임에 그다지 큰 영향은 주지 않는다. 당연하게도 안티에일리어싱은 처리량이 뻥튀기 되지만 이건 일종의 밉맵이라서 가능한 최적화된 텍스처를 불러와서 적용되기 때문이다. 이 기법은 현재 현대의 그래픽 하드웨어 및 그래픽 드라이버 관리 프로그램에서 손쉽게 조정, 적용할 수 있게 되었는데 90년대 말에서나 사용자들이 보편적으로 사용할 수 있게 되었다.

참고로 NVIDIA에서는 이방성 필터링이라고 하기도 하는데, 번역명의 문제일 뿐 같은 단어이다. 비등(非等, 동등하지 않음)방성 = 이(異, 다름)방성.


[1] 위의 예시화면에서 바닥 텍스쳐를 유심히 비교해보면 알 수 있다.[2] 이중선형 필터링의 3D버전이라 생각해보면 된다.