3차원 컴퓨터 그래픽 분야에서 이방성 필터링(Anisotropic Filtering)은 비스듬한 시야각에서 영상의 선명도를 높이기 위해 주로 사용되는 기술입니다. 이 기술은 모든 방향에서 동일하게 작동하는 것이 아니라 텍스처가 관찰되는 방향에서 특히 극단적인 시야각에서 흐림을 줄이고 세부 사항을 보존하기 위한 대상 필터링을 통해 작동합니다.
비등방성 필터링은 텍스처의 '선명도'를 유지하고 일반적인 밉맵 기술을 사용하여 이미지 세부 정보의 손실을 방지합니다.
기존 등방성 필터링은 각 수준에서 x축과 y축의 해상도를 모두 감소시키므로 카메라에 대해 기울어진 평면에서 렌더링할 때 수직축 빈도가 감소하면 수평 해상도가 부족해집니다. 이렇게 하면 다른 방향의 앨리어싱이 방지되지만 다른 방향의 텍스처는 흐려질 수 있습니다.
반대로 이방성 필터링을 사용하면 텍스처를 다양한 종횡비로 필터링할 수 있습니다. 예를 들어 텍스처 해상도가 256px × 256px인 경우 이 필터링 기술은 이를 128px × 128px로 줄일 수 있으며, 256px × 128px 및 32px × 128px와 같은 비정사각형 해상도로 더 줄일 수 있습니다. 이는 베벨 각도의 텍스처 디테일을 향상시킬 뿐만 아니라 앨리어싱을 피해야 하는 경우 다른 방향에서도 선명도를 유지합니다.
실제 적용에서는 개발된 설정을 통해 다양한 이방성 필터링 정도를 조정할 수 있습니다. 이 비율은 필터링 프로세스에서 지원되는 최대 이방성 비율입니다. 예를 들어 4:1 이방성 필터는 2:1 필터보다 경사 텍스처에 더 명확한 효과를 생성합니다. 즉, 매우 왜곡된 텍스처의 경우 4:1 필터링이 2:1 필터링보다 더 높은 세부 정보를 표시합니다. 그러나 대부분의 장면에서는 높은 정밀도가 필요하지 않으며 거리에 의해 영향을 받는 많은 수의 입자의 구체적인 차이만 표시됩니다.
최신 그래픽 하드웨어는 지나치게 복잡한 하드웨어 디자인과 시각적 효과 감소를 방지하기 위해 필터링 수준에 상한을 둡니다.
진정한 이방성 필터링은 일반적으로 픽셀별로 즉석에서 수행됩니다. 렌더링 하드웨어에서 텍스처가 이방성으로 샘플링되면 해당 픽셀의 투영된 모양을 기반으로 텍스처 주변에서 여러 샘플이 채취됩니다. 원래 소프트웨어 접근 방식 중 일부는 합산 영역 테이블을 사용했으며 각 샘플링 패스 자체가 필터링된 밉맵 인스턴스일 수 있어 샘플링 프로세스가 악화되었습니다. 예를 들어, 16개의 삼중 선형 샘플이 필요한 경우 삼중 선형 밉맵 필터링에는 각 밉맵의 기초로 4개의 샘플이 필요하기 때문에 저장된 텍스처에서 128개의 샘플을 가져와야 할 수 있습니다. 이 복잡성은 어떤 경우에는 필요하지 않을 수 있습니다.
비등방성 필터링을 위한 샘플 수로 인해 대역폭 요구 사항이 매우 높아질 수 있습니다. 각 텍스처 샘플은 4바이트를 초과할 수 있으므로 각 이방성 픽셀은 텍스처 메모리에서 가져오는 데 최대 512바이트의 데이터가 필요할 수 있습니다. 이로 인해 비디오 디스플레이 장치에는 300-600MB/s의 대역폭이 필요하고 일부 장면의 텍스처 필터링 작업에는 수백 GB/s가 필요한 것이 일반적입니다. 다행스럽게도 이러한 성능 저하를 줄이는 데 도움이 되는 기능이 있습니다. 샘플 포인트는 인접한 포인트 간에 또는 동일한 픽셀 내에서 캐시된 샘플을 공유할 수 있습니다. 16개의 샘플이 있더라도 더 멀리 있고 많이 기울어진 픽셀만 특히 중요하기 때문에 16개 모두가 필요하지 않을 수도 있습니다.
이러한 기술을 결합한 이방성 필터링은 오늘날 최신 그래픽 하드웨어 및 비디오 드라이버에서 점점 일반화되고 있습니다. 사용자는 드라이버 설정을 통해 필터링 비율을 조정할 수 있으며, 개발자는 API를 통해 자신만의 텍스처 필터링 요구 사항을 구현할 수도 있어 더욱 풍부한 사진 세부 정보를 제공할 수 있습니다. 하지만 이러한 기술이 미래의 이미지 표현에서 어떻게 더 발전할 수 있을지 생각해 본 적이 있나요?