맨위로가기

비등방성 필터링

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

비등방성 필터링은 밉맵 텍스처의 선명도를 유지하는 텍스처 필터링 기술이다. 등방성 밉매핑과 달리 비스듬한 각도에서도 선명한 텍스처 디테일을 유지하며, 텍스처 공간에서 축 정렬되지 않은 비등방성 프로브를 지원하여 대각선 비등방성을 허용한다. 3D 그래픽 카드에서 화질과 성능의 균형을 맞추는 데 사용되며, 텍스처의 투영된 모양에 따라 여러 텍셀 샘플을 사용한다. 비등방성 정도는 필터링 과정에서 지원되는 최대 비등방성 비율을 의미하며, 풋프린트 조립을 통해 텍스처 필터 결과를 구성한다. 성능 최적화를 위해 텍스처 샘플 캐싱, 덜 기울어진 픽셀의 낮은 비등방성 사용, 텍스처 확대 필터 사용 등이 활용된다.

더 읽어볼만한 페이지

  • 텍스처 필터링 - 밉맵
    밉맵은 3차원 컴퓨터 그래픽스에서 텍스처 렌더링 시 속도 향상과 앨리어싱 감소를 위해 미리 필터링된 다양한 크기의 텍스처를 사용하여 렌더링 성능을 높이고 이미지 품질을 개선하는 기술이며 랜스 윌리엄스가 발명했다.
비등방성 필터링
개요
종류텍스처 필터링 방법
목적텍스처 표면의 이미지 품질 향상
상세 정보
특징텍스처의 이방성을 고려하여 텍스처 필터링 수행
경사면에서 텍스처의 품질 향상
작동 원리시야 방향에 따라 텍스처 샘플링 영역을 조정
경사면에서는 긴 타원형 영역을 사용하여 텍스처 샘플링
이점텍스처 선명도 향상
앨리어싱 감소
경사면에서 텍스처 흐림 현상 감소
단점추가적인 계산 비용 발생
성능 저하 가능성
활용 분야컴퓨터 게임
컴퓨터 그래픽스
시뮬레이션

2. 등방성 필터링과의 비교

등방성 필터링은 텍스처를 화면에 표시할 때 앨리어싱(계단 현상)을 줄이는 기본적인 기법이지만, 특히 텍스처를 비스듬한 각도에서 볼 때 이미지가 흐릿해지는 단점이 있다. 이는 바이리니어 필터링이나 트리리니어 필터링과 같은 전통적인 등방성 방식이 시점의 각도를 충분히 고려하지 않고 텍스처를 샘플링하기 때문이다.

이에 비해 비등방성 필터링은 등방성 필터링의 한계를 개선한 진화된 기술이다. 비등방성 필터링은 텍스처가 보이는 각도를 계산하여 샘플링 영역을 최적화함으로써, 비스듬한 표면에서도 텍스처의 선명도를 유지하면서 앨리어싱을 효과적으로 제어한다. 따라서 모든 시야각에서 더 선명하고 세밀한 텍스처 품질을 제공한다.

2. 1. 밉맵(Mipmap)의 활용

비등방성 밉맵 이미지 저장의 예: 왼쪽 상단의 기본 이미지는 크기가 줄어든 필터링된, 선형 변환된 사본이 함께 제공된다.


등방성 밉맵과 동일한 이미지


비등방성 필터링은 밉맵 텍스처를 사용할 때 앨리어싱을 방지하면서도 텍스처 본연의 선명도를 유지하는 데 목적이 있다. 이를 통해 빠른 안티 앨리어싱 텍스처 필터링을 제공하면서 모든 시야 방향에서 선명한 텍스처 디테일을 표현할 수 있다.

전통적인 등방성 밉맵핑 방식에서는 각 밉맵 레벨에서 텍스처 크기를 줄일 때 가로와 세로 해상도를 동시에 절반으로 줄인다. 이는 바이리니어 필터링이나 트리리니어 필터링과 같이 텍스처에서 사각형 영역을 샘플링하는 방식과 유사한 한계를 가진다. 이러한 방식은 시점이 텍스처 바로 위에 있을 때는 효과적이지만, 카메라에 비스듬한 각도로 보이는 표면(예: 멀리 뻗어나가는 바닥)을 렌더링할 때는 문제가 된다. 즉, 수직 축의 이미지 주파수 감소로 인해 수평 해상도가 부족해지거나, 고주파수 축(세밀한 디테일 방향)의 앨리어싱을 막기 위해 샘플링 해상도를 낮추면 다른 축(덜 세밀한 방향)의 해상도까지 함께 낮아져 전체적으로 이미지가 흐릿하게 보이는 단점이 있다.

밉맵을 활용한 비등방성 필터링은 이러한 문제를 개선하기 위해 텍스처를 다양한 비율로 다운샘플링한다. 예를 들어, 256x256 픽셀 해상도의 텍스처를 단순히 128x128 픽셀로만 줄이는 것이 아니라, 256x128 픽셀이나 32x128 픽셀처럼 가로세로 비율이 다른 비정방형 해상도로도 미리 생성한다. 이렇게 비등방적으로 다운샘플링된 이미지들은 텍스처 매핑 시 각 축에 대한 이미지 주파수가 다를 때 선택적으로 사용된다. 시점으로부터의 각도를 고려하여 사다리꼴 형태로 샘플링함으로써, 한 축의 선명도를 유지하면서 다른 축의 화면 주파수로 인해 이미지가 흐려지는 것을 막고, 동시에 앨리어싱도 효과적으로 방지하여 보다 정확하고 선명한 결과물을 얻을 수 있다.

다만, 밉맵핑 자체의 축 정렬 방식은 진정한 의미의 비등방성 필터링에는 최적화된 방법이라고 보기 어려우며, 여기서는 개념 이해를 돕기 위한 예시로 활용된다. 더 발전된 비등방성 필터링 기법은 텍스처 공간에서 반드시 축에 정렬되지 않은 비등방성 프로브(probe)를 사용하여 대각선 방향의 비등방성까지 효과적으로 처리한다. 현재 일반 사용자용 3D 그래픽 카드에서 비등방성 필터링은 화질과 성능 사이의 균형이 잘 잡힌 필터링 방법으로 널리 채택되고 있다. 최종 색상 계산 시에는 트리리니어 필터링을 통해 샘플링을 수행하기도 한다.

2. 2. 풋프린트 조립

밉맵핑과 관련된 축 정렬 제약 조건은 진정한 의미의 비등방성 필터링을 구현하는 데 있어 최적의 방식은 아니다. 보다 일반적인 비등방성 필터링 방법은 텍스처 공간에서 반드시 축에 정렬될 필요가 없는 비등방성 프로브(probe)를 사용하여, 대각선 방향의 비등방성까지 효과적으로 처리할 수 있도록 지원한다.

그래픽 하드웨어에서 일반적으로 구현되는 비등방성 필터링은 밉맵 샘플의 한 줄(line)에서 필터링된 픽셀 값을 구성하는 방식을 사용하기도 한다. 이처럼 텍스처 공간으로 투영된 픽셀의 샘플링 영역(footprint)을 채우기 위해 여러 개의 프로브로부터 얻어진 텍스처 필터 결과를 조합하는 방법을 풋프린트 조립(footprint assembly)이라고 하며, 구체적인 구현 방식은 하드웨어나 소프트웨어에 따라 다를 수 있다.

3. 비등방성 정도

렌더링 과정에서는 다양한 정도 또는 비율의 비등방성 필터링을 적용할 수 있다. 이 정도는 필터링 과정에서 지원되는 최대 비등방성 비율을 의미한다. 예를 들어, 4:1 비등방성 필터링은 2:1 필터링보다 더 기울어진 텍스처를 선명하게 유지한다.[6] 실제로 텍스처가 매우 기울어진 상황에서는 4:1 필터가 2:1 필터보다 두 배 더 선명하게 보이는데, 이는 2:1 필터가 표현할 수 있는 주파수의 두 배를 표시할 수 있기 때문이다.

하지만 장면의 모든 부분이 높은 비율의 필터링을 필요로 하는 것은 아니다. 주로 화면에서 멀리 떨어져 있거나 심하게 기울어진 픽셀만이 높은 비율의 필터링을 통해 눈에 띄게 개선된다. 따라서 비등방성 필터링의 정도(비율)를 계속 높여도 가시적인 품질 향상 효과는 점차 줄어든다. 영향을 받는 픽셀 수가 감소하고, 그 결과가 사용자에게 덜 명확하게 느껴지기 때문이다. 또한 높은 비율의 필터링이 필요한 픽셀 수가 적기 때문에, 비율을 높여도 성능 저하 폭은 상대적으로 크지 않다.

현재 하드웨어 렌더링 구현에서는 추가적인 하드웨어 복잡성과 앞서 언급한 효과 감소 때문에 적용 가능한 최대 비율에 상한을 둔다.[7] 응용 프로그램 개발자나 사용자는 그래픽 드라이버나 소프트웨어 설정을 통해 이 상한선 내에서 원하는 비율을 선택하여 적용할 수 있다.

비등방성 필터링은 현재 일반 소비자들이 사용하는 3D 그래픽 카드에서 화질과 성능의 균형을 잘 맞춘 필터링 방법으로 평가받는다. 이는 기존의 바이리니어 필터링이나 트리리니어 필터링보다 발전된 기술로 볼 수 있다. 바이리니어나 트리리니어 필터링은 텍스처에서 사각형 영역을 샘플링하는데, 이는 텍스처를 바로 위에서 내려다볼 때만 정확하다. 만약 텍스처가 적용된 표면이 카메라 시점에서 비스듬하게 보인다면(예: 멀리 뻗어나가는 바닥), 이 방식들로는 텍스처가 흐릿하게 보일 수 있다. 반면, 비등방성 필터링은 시점으로부터의 각도를 고려하여 텍스처를 사다리꼴 형태로 올바르게 샘플링함으로써 이러한 왜곡을 줄이고 더 선명한 이미지를 보여준다. 최종적인 픽셀 색상을 생성하기 위해 트리리니어 필터링 방식의 샘플링을 수행하기도 한다.

4. 구현

비등방성 필터링은 임의의 비등방성 방향에 대해 픽셀 단위로 텍스처를 실시간으로 조사하여 필터링하는 기술이다.

그래픽 하드웨어에서 텍스처를 비등방성 방식으로 샘플링할 때는, 해당 픽셀에서 텍스처의 투영된 모양에 따라 매핑된 샘플 패턴을 사용하여 중심점 주변 텍스처에 대한 여러 프로브(텍셀 샘플)를 얻는다.[8] 과거 소프트웨어 방식에서는 합산 영역 테이블을 사용하기도 했다.[9]

이 방식은 바이리니어 필터링이나 트리리니어 필터링과 비교하여 발전된 기술이다. 기존 방식들이 텍스처에서 사각형 영역을 샘플링하는 것과 달리, 비등방성 필터링은 시점으로부터의 각도를 고려하여 올바르게 사다리꼴 형태로 샘플링한다. 이로 인해 텍스처가 적용된 면이 비스듬하게 보일 때 발생하는 흐릿함을 줄이고 더 정확한 이미지를 보여준다.

그래픽 하드웨어에서 일반적으로 구현되는 방식은 여러 프로브에서 얻은 텍스처 필터 결과를 조합하여 최종 픽셀 값을 구성하는 "풋프린트 조립"(footprint assembly|eng) 방법을 사용한다.[10][11][12] 최종적인 색상을 생성하기 위해 각 프로브에서 트리리니어 필터링 등으로 샘플링을 수행하는 경우가 많다.

4. 1. 하드웨어적 구현

그래픽 하드웨어에서 텍스처를 비등방성 방식으로 샘플링할 때는, 해당 픽셀에서 텍스처가 화면에 어떻게 투영되는지에 따라 특별히 매핑된 샘플 패턴을 사용한다. 이 패턴은 중심점 주변 텍스처에 대한 여러 개의 프로브(텍셀 샘플)로 구성된다.[8] 과거 소프트웨어 방식에서는 합산 영역 테이블을 사용하기도 했다.[9]

각 비등방성 필터링 프로브는 그 자체로 이미 필터링된 밉맵 샘플인 경우가 많으며, 이는 전체 과정에 더 많은 샘플링 단계를 추가한다. 예를 들어, 16개의 삼선형(Trilinear) 비등방성 샘플을 사용한다면, 저장된 텍스처에서 최대 128개의 샘플을 읽어야 할 수도 있다. 이는 삼선형 밉맵 필터링이 두 개의 밉맵 레벨 각각에서 4개의 샘플을 필요로 하고(총 8개 샘플), 16탭 비등방성 샘플링은 이러한 삼선형 필터링 프로브를 16개 사용하기 때문이다 (16 × 8 = 128).

그러나 항상 이렇게 복잡한 수준의 필터링이 필요한 것은 아니며, 비디오 렌더링 하드웨어의 작업량을 줄이기 위한 최적화 방법들이 일반적으로 사용된다.

현재 그래픽 하드웨어에서 가장 흔하게 구현되는 비등방성 필터링 방식은 밉맵 샘플의 한 줄(line)에서 필터링된 픽셀 값을 구성하는 것이다. 여러 프로브로부터 얻은 텍스처 필터 결과를 조합하여 최종 픽셀 값을 만드는 이 방식을 "풋프린트 조립(footprint assembly)"이라고 부르기도 하며, 구체적인 구현 방식은 다양할 수 있다.[10][11][12] 이 방식은 현재 소비자들이 사용하는 3D 그래픽 카드에서 화질과 성능 사이의 좋은 균형을 제공하는 방법으로 널리 쓰인다.

비등방성 필터링은 바이리니어 필터링이나 트리리니어 필터링과 비교했을 때 더 발전된 기술로 볼 수 있다. 바이리니어와 트리리니어 필터링은 텍스처에서 정사각형 또는 직사각형 영역을 샘플링하는데, 이는 시점이 텍스처 바로 위에서 내려다볼 때만 정확하다. 만약 텍스처가 적용된 표면이 카메라 시점에서 비스듬하게 보인다면(예: 멀리 뻗어나가는 바닥), 이 방식들로는 이미지가 흐릿하게 보일 수 있다. 반면, 비등방성 필터링은 시점으로부터의 각도를 고려하여 텍스처 샘플링 영역을 사다리꼴 형태로 올바르게 조정하므로, 비스듬한 표면에서도 더 선명하고 정확한 이미지를 보여준다. 최종 픽셀 색상을 계산할 때는 각 프로브에서 트리리니어 필터링 등을 사용하여 샘플링을 수행하는 경우가 많다.

4. 2. 성능 및 최적화

비등방성 필터링은 많은 샘플 수를 사용하기 때문에 메모리 대역폭을 매우 많이 필요로 한다. 여러 텍스처를 사용하는 것이 일반적이고, 각 텍스처 샘플은 4바이트 이상일 수 있다. 이 때문에 각 비등방성 픽셀은 텍스처 메모리에서 512바이트까지 필요할 수 있다. 다만, 텍스처 압축 기술을 사용하면 이 요구량을 줄일 수 있다.

디스플레이 장치는 2백만 개 이상의 픽셀을 가지는 경우가 많고, 게임 등에서는 초당 60프레임 이상의 높은 프레임률을 요구하는 경우가 흔하다. 따라서 비등방성 필터링을 사용할 때 필요한 텍스처 메모리 대역폭은 매우 커질 수 있으며, 초당 수백 기가바이트(GB/s)에 달하는 경우도 드물지 않다.[13]

하지만 다음과 같은 요인들 덕분에 실제 성능은 더 나아질 수 있다.

  • 픽셀 간 또는 픽셀 내에서 캐시된 텍스처 샘플을 공유하여 재사용한다.[14]
  • 16-탭 비등방성 필터링을 사용하더라도 항상 모든 탭이 필요한 것은 아니다. 멀리 떨어져 있고 기울어진 픽셀들만 높은 수준의 비등방성이 요구되기 때문이다.[6]
  • 높은 수준의 비등방성이 요구되는 픽셀 채우기는 화면의 작은 영역(일반적으로 10% 미만)을 차지하는 경향이 있다.[6]
  • 텍스처 확대 필터는 일반적으로 비등방성 필터링을 필요로 하지 않는다.

참조

[1] 웹사이트 What is Anisotropic Filtering? - Technipages https://www.technipa[...] 2020-07-08
[2] 논문 Implementing an anisotropic texture filter 2000-04
[3] 논문 Texture and reflection in computer generated images 1976-10
[4] 논문 Survey of Texture Mapping 1986-11
[5] 웹사이트 Radeon Whitepaper http://cgg.mff.cuni.[...] ATI Technologies Inc. 2017-10-20
[6] 웹사이트 Texture antialiasing https://techreport.c[...] The Tech Report 2017-10-20
[7] 웹사이트 Anisotropic Filtering https://www.geforce.[...] Nvidia Corporation 2017-10-20
[8] 서적 Proceedings of the ACM SIGGRAPH/EUROGRAPHICS workshop on Graphics hardware 2001
[9] 서적 Proceedings of the 11th annual conference on Computer graphics and interactive techniques 1984
[10] 논문 Texram: a smart memory for texturing 1996-05
[11] 논문 Footprint area sampled texturing 2004-03
[12] 웹사이트 Computer Graphics: Texture Filtering & Sampling Theory http://resources.mpi[...] Max Planck Institute for Informatics 2017-10-20
[13] arXiv Dissecting GPU Memory Hierarchy through Microbenchmarking 2015-09-08
[14] 웹사이트 Prefetching in a Texture Cache Architecture http://graphics.stan[...] Stanford University 2017-10-20



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com