다중 샘플 안티앨리어싱
Multisample anti-aliasing다중샘플 안티앨리어싱(MSAA)은 공간 안티앨리어싱의 일종으로, 컴퓨터 그래픽에서 잡지를 제거하는 데 사용되는 기법이다.
정의
이 용어는 일반적으로 초표본의 특수한 경우를 가리킨다.FSAA(Full-Scene Anti-aliaging)의 초기 구현은 단순히 장면을 고해상도로 렌더링한 다음 저해상도 출력으로 다운샘플링하는 것으로 개념적으로 작동했다.대부분의 현대적인 GPU는 이러한 형태의 안티앨리어싱이 가능하지만 텍스처, 대역폭, 필레이트 등의 자원에 큰 세금을 부과한다.(프로그램이 TCL 바인딩이 높거나 CPU 바인딩이 심한 경우 성능 적중 없이 슈퍼샘플링을 사용할 수 있다.)
OpenGL GL_ARB_멀티샘플링 규격에 따르면 [1]"멀티샘플링"은 슈퍼샘플링의 특정 최적화를 말한다.명세서에는 렌더러가 픽셀당 한 번씩 단편 프로그램을 평가하며, 깊이와 스텐실 값을 "진정"하게만 과대표본한다고 명시되어 있다.(이는 슈퍼샘플링과 동일하지는 않지만 OpenGL 1.5 규격에 의해 정의가 완전히 슈퍼샘플링 구현을 포함하도록 업데이트되었다.)[2]
일반적으로 그래픽 문헌에서 "멀티샘플링"은 최종 이미지의 일부 구성 요소가 완전히 슈퍼샘플링되지 않은 어떤 특별한 경우를 가리킨다.아래 목록은 특히 ARB_멀티샘플 정의를 참조한다.
설명
상위 샘플 안티앨리어싱에서는 모든 픽셀 내에서 여러 위치를 샘플링하며, 각 샘플은[3] 완전히 렌더링되고 다른 샘플과 결합되어 궁극적으로 표시되는 픽셀을 생성한다.이는 각 표본 위치에 대해 전체 렌더링 프로세스를 반복해야 하기 때문에 계산적으로 비용이 많이 든다.또한 앨리어싱은 일반적으로 가장자리와 같은 이미지의 일부 부분에서만 나타나는 반면, 초대샘플링은 모든 픽셀에 대해 수행되기 때문에 비효율적이다.
다중 샘플 안티앨리어싱에서 픽셀의 다중 샘플 위치 중 하나가 렌더링되는 삼각형으로 덮인 경우 해당 삼각형에 대해 음영 계산을 수행해야 한다.그러나 이 계산은 포함된 샘플 위치의 수에 관계없이 전체 픽셀에 대해 한 번만 수행하면 된다. 음영 계산의 결과는 관련된 모든 다중 샘플 위치에 단순하게 적용된다.
하나의 삼각형만이 픽셀 내의 모든 다중 샘플 위치를 커버하는 경우, 하나의 음영 계산만 수행되며, 이러한 픽셀은 비알리디드 이미지에서와 조금 더 비싸다(그리고 결과는 다르지 않다).이것은 앨리어싱이 문제가 되지 않는 삼각형의 중간에서 사실이다. (에지 검출은 샘플이 여러 삼각형 또는 여러 깊이의 삼각형을 포함하는 픽셀로 MSAA 계산을 명시적으로 제한함으로써 이것을 더욱 줄일 수 있다.)각 다중 샘플 위치가 다른 삼각형으로 가려지는 극단적인 경우, 각 위치 및 결과에 대해 다른 음영 연산이 수행되고 최종 픽셀을 부여하기 위해 결합되며, 결과 및 계산 비용은 동등한 초샘플링 영상에서와 동일하다.
음영 계산은 주어진 픽셀에서 수행되어야 하는 유일한 작업이 아니다. 다중 샘플링 구현은 다른 샘플링 수준에서 가시성과 같은 다른 작업을 다양하게 샘플링할 수 있다.
이점
- 픽셀 셰이더는 보통 픽셀당 한 번만 평가하면 된다.
- 폴리곤의 가장자리(3D 그래픽에서 가장 명백한 앨리어싱 소스)는 안티앨리어싱이다.
- 픽셀당 여러 개의 서브픽셀을 샘플링하기 때문에 MSAA 없이 놓쳤을 수 있는 한 픽셀보다 작은 폴리곤 디테일을 캡처해 충분한 샘플이 촬영되면 최종 렌더링 영상의 일부를 만들 수 있다.
단점들
알파 검사
알파테스팅은 프레임 버퍼에 쓰이지 않는 픽셀을 거부함으로써 반투명 오브젝트를 렌더링하는 데 사용되는 오래된 비디오 게임에서 흔히 사용되는 기술이다.[4]반투명 파편의 알파 값이 지정된 범위 내에 있지 않을 경우 알파 시험 후 폐기한다.이것은 픽셀 단위로 수행되기 때문에, 영상은 이러한 픽셀에 대해 멀티 샘플링(픽셀의 모든 멀티샘플은 알파 테스트에 기초하여 폐기)의 혜택을 받지 못한다.영상 화질은 안티앨리어싱이 없는 것보다 나쁘지 않지만 결과 영상은 투명한 물체 또는 텍스처 내의 가장자리를 따라 앨리어싱을 포함할 수 있다.[5]알파 테스트 질감을 사용하여 모델링한 반투명 개체도 알파 테스트로 인해 별칭이 지정된다.투명 객체를 많이 포함하는 씬(scene)의 경우 고성능 감소를 가져오지만 투명 텍스처가 있는 객체를 여러 번 렌더링하면 이러한 효과를 최소화할 수 있다.[6]
앨리어싱
멀티 샘플링은 픽셀당 한 번만 내부 폴리곤 조각을 계산하기 때문에, 조각 셰이더 출력에 고주파 성분이 포함된 렌더링 폴리곤 내부에서도 앨리어싱 및 기타 아티팩트가 여전히 보일 것이다.
퍼포먼스
SSAA(서퍼샘플링)에 비해 성능집약성은 떨어지지만, FXAAA, SMAA, MLAA와 같은 후처리 안티앨리어싱 기법보다 특정 프레임에 대해 MSAA가 여러 배 더 집약적인 것은 특정 시나리오(복잡한 조각의 막중량)에서 가능하다.이 범주의 초기 기술은 성능에 미치는 영향이 더 낮은 경향이 있지만 정확성 문제로 인해 어려움을 겪는다.[7]이전에 렌더링된 프레임의 데이터를 결합하여 앨리어싱을 줄이는 시간적 앤티앨리어싱(TAA)과 같은 보다 최근의 후처리 기반 안티앨리어싱 기법은 AA가 전체 프레임에만 안티앨리어스를 제공할 수 없는 MSAA보다 더 다재다능해지고 비싸짐에 따라 이러한 추세가 역전되는 것을 보았다.
샘플링 방법
포인트 샘플링
점 샘플링된 마스크에서 각 다중 샘플에 대한 범위 비트는 다중 샘플이 렌더링된 원시 내부에 위치한 경우에만 설정된다.샘플은 절대로 렌더링 원시인 외부에서 채취하지 않기 때문에 포인트 샘플링을 사용하여 생성된 영상은 기하학적으로 정확할 것이지만 픽셀의 커버리지 마스크에 설정된 비트의 비율이 문제의 단편에서 실제로 커버되는 픽셀의 비율과 같지 않을 수 있기 때문에 필터링 품질이 낮을 수 있다.
면적 샘플링
영역 샘플링 마스크를 사용하면 필터링 품질을 개선할 수 있다.이 방법에서 픽셀의 커버리지 마스크에 설정된 비트 수는 파편의 실제 면적 커버리지에 비례해야 한다.이로 인해 실제로 렌더링된 원시 내에 위치하지 않는 다중 배수에 대해 일부 탐지 가능 비트가 설정되며 앨리어싱 및 기타 아티팩트를 유발할 수 있다.
샘플 패턴
정규 격자
다중 샘플 위치가 픽셀 전체에 걸쳐 균일한 간격으로 그리드를 형성하는 일반 그리드 샘플 패턴은 구현이 용이하고 속성 평가(하위 픽셀 마스크 설정, 샘플링 색상 및 깊이 설정)를 단순화한다.이 방법은 표본 수가 많기 때문에 계산적으로 비용이 많이 든다.에지 최적화는 화면 정렬 에지에서는 좋지 않지만 다중샘플 수가 많을 때는 영상 화질이 좋다.
스파스 정규 격자
희박한 정규 그리드 표본 패턴은 일반 그리드 표본 패턴에서 선택한 표본의 하위 집합이다.정규 격자와 마찬가지로 일정한 간격을 두어 속성 평가를 단순화한다.이 방법은 표본이 적기 때문에 계산적으로 비용이 덜 든다.에지 최적화는 화면 정렬 에지에 좋으며, 영상 화질은 적당한 수의 멀티샘플에 좋다.
확률적 샘플 패턴
확률적 샘플 패턴은 픽셀 전체에서 다중샘플의 무작위 분포다.표본의 간격이 불규칙하여 속성 평가가 복잡하다.이 방법은 (일반 그리드 패턴에 비해) 샘플 카운트가 낮기 때문에 비용 효율적이다.화면 정렬 에지에 대해서는 차선이지만 이 방법을 사용한 에지 최적화.이미지 품질은 적당한 수의 샘플에 매우 우수하다.
품질
슈퍼샘플링에 비해 다중샘플 안티앨리어싱은 더 높은 성능에서 유사한 품질을 제공하거나 동일한 성능에서 더 나은 품질을 제공할 수 있다.회전 그리드 하위 픽셀 마스크를 사용하면 더욱 향상된 결과를 얻을 수 있다.Z와 색상 압축을 사용할 수 있다면 다중 샘플링에 필요한 추가 대역폭은 상당히 낮다.[8]
대부분의 최신 GPU는 2배, 4배, 8배의 MSAA 샘플을 지원한다.값이 높을수록 품질이 좋아지지만 느리다.
참고 항목
참조
- ^ "Additions to Chapter 3 of the 1.2.1 specification".
- ^ "OpenGL 1.5 specification" (PDF).
- ^ "The Meaning of Anti-Aliasing: What is it Used for?". ARVI VR. 2018-09-14. Retrieved 2018-09-14.
- ^ "ShaderLab syntax: Alpha testing". Unity3d.com. 2008-04-27. Retrieved 2012-07-31.
- ^ "Multisampling Anti-Aliasing: A Closeup View". Alt.3dcenter.org. Retrieved 2012-07-31.
- ^ "Visual comparison of the various Anti-Aliasing modes". Nhancer.com. Archived from the original on 2013-01-28.
- ^ Matt Pettineo (2012-10-25). "A Quick Overview of MSAA". Retrieved 2016-11-24.
- ^ "Multisampling Anti-Aliasing: A Closeup View". Alt.3dcenter.org. Retrieved 2012-07-31.
