비등방성 필터링

Anisotropic filtering
트리린라인 맵핑(왼쪽) 및 비등방성 텍스처 필터링으로 텍스처를 보여주는 텍스처 필터링 방법의 그림.

3D컴퓨터 그래픽 컴퓨터 그래픽의 경사 시야각에 질감(이에 따라 렌더링 되지 않는 다각형 또는 다른 계열 기본 형식)의 돌출부에 수직적(토스트가 나타나면 카메라에 존경과 함께 하는 표면에 질감의 이미지 품질을 높일, 이방성의 필터링(AF약식)[1][2]것도 방법.는단어의 유래: ""은 "", "동일"은 "iso", "열대"는 방향과 관련된 "비등방성 필터링"은 모든 방향에서 같은 것을 필터링하지 않는다).

이선형삼선형 필터링과 마찬가지로 비등방성 필터링은 별칭 효과를 제거하지만 [3][4]흐릿함을 줄이고 극도의 시야각에서 디테일을 보존함으로써 이러한 다른 기법을 개선한다.

비등방성 필터링은 상대적으로 집약적이며(주로 메모리 대역폭과 어느 정도 계산적으로 표준 공간-시간 트레이드오프 규칙이 적용되지만) 1990년대 후반에야 소비자 수준의 그래픽 카드의 표준 특징이 되었다.[5]비등방성 필터링은 현재 현대 그래픽 하드웨어(및 비디오 드라이버 소프트웨어)에서 흔히 사용되며, 사용자가 드라이버 설정을 통해 또는 프로그래밍 인터페이스를 통해 그래픽 애플리케이션과 비디오 게임에 의해 활성화된다.

등방성 MIP 매핑 개선

비등방성 킵맵 이미지 저장소의 예: 왼쪽 상단에 있는 주 이미지는 크기가 줄어든 필터링되고 선형 변환된 복사본과 함께 제공된다.
동일한 이미지의 등방성 맵.

이 시점부터 독자는 MIP 매핑에 익숙하다고 가정한다.

MIP 매핑의 확장으로서 보다 근사적인 비등방성 알고리즘인 RIP 매핑을 탐구한다면, 비등방성 필터링이 어떻게 그렇게 많은 질감 매핑 품질을 얻는지 이해할 수 있다.[6]카메라와 비스듬히 수평면을 직각해야 한다면 기존의 MIP 지도 미세화는 수직축의 영상 주파수 감소로 인해 수평 해상도가 불충분할 것이다.MIP 매핑에서 각 MIP 레벨은 등방성이므로 256 × 256 텍스처가 128 × 128 이미지로 축소된 다음 64 × 64 이미지 등으로 분해능이 각 축에 반반씩 동시에 나타나기 때문에 영상에 대한 MIP 맵 텍스처 프로브는 항상 각 축에서 동일한 주파수의 이미지를 샘플링하게 되기 때문이다.따라서 고주파 축에서 앨리어싱을 피하기 위해 샘플링을 할 때 다른 텍스처 축은 비슷하게 다운샘플링되므로 잠재적으로 흐릿해진다.

MIP 맵 비등방성 필터링을 통해 128 × 128로 다운샘플링하는 것 외에 256 × 128 및 32 × 128 등으로 영상을 샘플링한다.이러한 음이소트로프 다운샘플링된 영상은 텍스처 매핑된 영상 주파수가 각 텍스처 축마다 다를 때 프로빙할 수 있다.따라서 한 축은 다른 축의 화면 주파수로 인해 흐릴 필요가 없으며, 앨리어싱은 여전히 피한다.더 일반적인 비등방성 필터링과 달리, 그림에 대해 설명한 MIP 매핑은 질감 공간에서 축으로 정렬된 비등방성 프로브만 지원하여 제한되므로, 비록 비등방성 질감의 실제 사용 사례가 일반적으로 그러한 스크린스페이스 매핑을 가지고 있지만, 대각선 비등방성 프로브만 지원함으로써 여전히 문제를 나타낸다.

구현은 그 방법을 자유롭게 변경할 수 있지만, MIP 매핑과 관련 축 정렬 제약조건은 그것이 진정한 비등방성 필터링을 위해 차선책이며, 여기서는 예시용으로만 사용된다.완전한 비등방성 구현은 아래에 설명되어 있다.

비등방성 필터링은 비등방성 필터링을 통해 MIP 지도 질감이 앨리어싱을 피하려고 시도하여 일반적으로 손실되는 질감의 "흔들림"을 유지한다.따라서 비등방성 필터링은 모든 보기 방향에서 아삭아삭한 텍스처 디테일을 유지하면서도 신속한 안티앨리어싱 텍스처 필터링을 제공한다고 할 수 있다.

지지된 음이소트로피의 정도

렌더링 시 비등방성 필터링의 다른 정도 또는 비율을 적용할 수 있으며, 현재 하드웨어 렌더링 구현 시 이 비율에 상한을 설정할 수 있다.[7]이 정도는 필터링 과정에서 지원되는 최대 비등분율이다.예를 들어, 4:1 ("4-to-1"로 발음됨) 비등방성 필터링은 2:1로 선명한 범위를 넘어 더 많은 사선 질감을 선명하게 할 것이다.[8]

실제로 이는 매우 경사스러운 텍스처링 상황에서 4:1 필터는 2:1 필터보다 두 배 더 날카롭다는 것을 의미한다(이 필터는 2:1 필터의 두 배보다 주파수를 표시함).그러나 장면의 대부분은 4:1 필터가 필요하지 않을 것이다. 더 비스듬하고 보통 더 먼 픽셀만 더 날카로운 필터가 필요할 것이다.이는 비등방성 필터링의 정도가 계속해서 두 배로 증가함에 따라 렌더링 픽셀이 점점 더 적게 영향을 받아 가시적 품질 측면에서 수익이 감소하고 있으며, 그 결과는 시청자에게 덜 분명해졌다는 것을 의미한다.

8:1 비등방사선 여과 장면의 렌더링 결과를 16:1 여과 장면과 비교했을 때, 상대적으로 더 먼 기하학적 구조를 가진 극소수의 사선 픽셀만이 보다 높은 수준의 비등방성 여과 기능을 가진 장면에서 더 선명하게 보일 것이며, 이러한 몇 개의 16:1 여과 픽셀의 주파수 정보는 wi.8:1 필터의 두 배만 될 것이다.더 큰 음이소트로피의 데이터 가져오기를 요구하는 픽셀 수가 적기 때문에 성능 저하는 감소한다.

결국 그것은 하드웨어 설계의 비등방성 품질에 상한을 설정하는 이러한 감소 이익에 비해 추가적인 하드웨어 복잡성이다.그러면 애플리케이션과 사용자는 드라이버와 소프트웨어 설정을 통해 이 임계값을 자유롭게 조정할 수 있다.

실행

진정한 비등방성 필터링은 비등방성의 방향성을 위해 픽셀 단위로 즉석에서 질감을 비등방성적으로 조사한다.

그래픽 하드웨어에서, 일반적으로 텍스처가 비등분적으로 샘플링될 때, 중심점 주위의 텍스쳐의 여러 프로브(텍셀 샘플)[10]를 취하지만, 이전의 소프트웨어 방법에서는 합계 영역 테이블을 사용했지만,[9] 그 픽셀의 텍스쳐의 투영된 모양에 따라 매핑된 샘플 패턴에서.

각 비등방성 필터링 탐침은 그 자체로 필터링된 MIP 지도 샘플이며, 이것은 프로세스에 더 많은 샘플링을 추가한다.트리린 MIP 지도 필터링은 두 MIP 수준의 4배 샘플을 채취해야 하고 그 다음(16-tap) 비등방성 샘플링에는 이러한 트리린 필터링 프로브 중 16개를 채취해야 하므로, 16개의 트리린 비등방성 샘플링은 저장된 텍스처로부터 128개의 샘플을 필요로 할 수 있다.

그러나 이러한 수준의 필터링 복잡성이 항상 필요한 것은 아니다.비디오 렌더링 하드웨어가 수행해야 하는 작업량을 줄이기 위해 일반적으로 사용할 수 있는 방법이 있다.

그래픽 하드웨어에서 가장 일반적으로 구현되는 비등방성 필터링 방법은 MIP 지도 샘플의 한 라인에서만 필터링된 픽셀 값의 구성이다.일반적으로 여러 개의 프로브가 투사된 픽셀 샘플링을 텍스처 공간으로 채우는 방식으로 텍스처 필터를 제작하는 방법을 "발판 조립체"라고 부르는데, 구현 세부사항이 다른 경우에도 그러하다.[11][12][13]

성능 및 최적화

필요한 샘플 카운트는 비등방성 필터링을 매우 대역폭 집약적으로 만들 수 있다.여러 텍스처가 일반적이다. 각 텍스처 샘플은 4바이트 이상일 수 있으므로 텍스처 압축은 일반적으로 이를 줄이기 위해 사용되지만 각 비등방성 픽셀은 텍스처 메모리에서 512바이트를 요구할 수 있다.

비디오 디스플레이 장치는 200만 화소를 쉽게 포함할 수 있으며, 원하는 애플리케이션 프레이머는 종종 초당 60프레임 이상이다.결과적으로, 필요한 텍스처 메모리 대역폭은 큰 값으로 증가할 수 있다.텍스처 렌더링 작업을 위한 초당 수백 기가바이트의 파이프라인 대역폭 범위는 비등방성 필터링 작업이 관련된 경우 드물지 않다.[14]

다행히도, 다음과 같은 몇 가지 요인들이 더 나은 성과를 위해 완화된다.

  • 프로브 자체는 픽셀 간 및 픽셀 내 둘 다 캐시된 텍스처 샘플을 공유한다.[15]
  • 16탭 비등방성 필터링을 하더라도 멀리 있는 사선 픽셀 채우기만 해도 비등방성이 높은 경향이 있기 때문에 항상 16탭이 모두 필요한 것은 아니다.[8]
  • 높은 비등방성 픽셀 채우기는 화면의 작은 영역(즉, 일반적으로 10% 미만)[8]을 포괄하는 경향이 있음
  • 일반적으로 텍스처 확대 필터는 등방성 필터링을 필요로 하지 않는다.

참고 항목

참조

  1. ^ "What is Anisotropic Filtering? - Technipages". 8 July 2020.
  2. ^ Ewins, Jon P.; Waller, Marcus D.; White, Martin; Lister, Paul F. (April 2000). "Implementing an anisotropic texture filter - ScienceDirect". Computers & Graphics. 24 (2): 253–267. doi:10.1016/S0097-8493(99)00159-4.
  3. ^ Blinn, James F.; Newell, Martin E. (October 1976). "Graphics and Image Processing: Texture and Reflection in Computer Generated Images" (PDF). Communications of the ACM. 19 (10): 542–547. doi:10.1145/360349.360353. S2CID 408793. Retrieved 2017-10-20.
  4. ^ Heckbert, Paul S. (November 1986). "Survey Of Texture Mapping" (PDF). IEEE Computer Graphics and Applications. 6 (11): 56–67. doi:10.1109/MCG.1986.276672. S2CID 6398235. Retrieved 2017-10-20.
  5. ^ "Radeon Whitepaper" (PDF). ATI Technologies Inc. 2000. p. 23. Retrieved 2017-10-20.
  6. ^ "Chapter 5: Texturing" (PDF). CS559, Fall 2003. University of Wisconsin–Madison. 2003. Retrieved 2017-10-20.
  7. ^ "Anisotropic Filtering". Nvidia Corporation. Retrieved 2017-10-20.
  8. ^ a b c "Texture antialiasing". ATI's Radeon 9700 Pro graphics card. The Tech Report. 16 September 2002. Retrieved 2017-10-20.
  9. ^ Olano, Marc; Mukherjee, Shrijeet; Dorbie, Angus (2001). Vertex-based anisotropic texturing (PDF). Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Workshop on Graphics Hardware. pp. 95–98. CiteSeerX 10.1.1.1.6886. doi:10.1145/383507.383532. ISBN 978-1581134070. S2CID 14022450. Archived from the original (PDF) on 2017-02-14. Retrieved 2017-10-20.
  10. ^ Crow, Franklin C. (July 1984). "Summed-Area Tables for Texture Mapping" (PDF). SIGGRAPH'84: Computer Graphics. 18 (3). Retrieved 2017-10-20.
  11. ^ Schilling, A.; Knittel, G.; Strasser, W. (May 1996). "Texram: a smart memory for texturing". IEEE Computer Graphics and Applications. 16 (3): 32–41. doi:10.1109/38.491183.
  12. ^ Chen, Baoquan; Dachille, Frank; Kaufman, Arie (March 2004). "Footprint Area Sampled Texturing" (PDF). IEEE Transactions on Visualization and Computer Graphics. 10 (2): 230–240. doi:10.1109/TVCG.2004.1260775. PMID 15384648. S2CID 10957724. Retrieved 2017-10-20.
  13. ^ Lensch, Hendrik (2007). "Computer Graphics: Texture Filtering & Sampling Theory" (PDF). Max Planck Institute for Informatics. Retrieved 2017-10-20.
  14. ^ Mei, Xinxin; Chu, Xiaowen (2015-09-08). "Dissecting GPU Memory Hierarchy through Microbenchmarking". arXiv:1509.02308 [cs.AR]. 2017-10-20에 접속.
  15. ^ Igehy, Homan; Eldridge, Matthew; Proudfoot, Kekoa (1998). "Prefetching in a Texture Cache Architecture". Eurographics/SIGGRAPH Workshop on Graphics Hardware. Stanford University. Retrieved 2017-10-20.

외부 링크