# AAA – 분석적 안티앨리어싱 기술

> Clean Markdown view of GeekNews topic #17871. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17871](https://news.hada.io/topic?id=17871)
- GeekNews Markdown: [https://news.hada.io/topic/17871.md](https://news.hada.io/topic/17871.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-11-21T09:56:35+09:00
- Updated: 2024-11-21T09:56:35+09:00
- Original source: [blog.frost.kiwi](https://blog.frost.kiwi/analytical-anti-aliasing/)
- Points: 1
- Comments: 1

## Topic Body

### 오늘의 여정: 안티 앨리어싱

- 안티 앨리어싱은 수십 년간의 수학, 창의적인 기술, 끊임없는 혁신을 통해 발전해 온 예술 형태임.
- SSAA, SMAA, DLAA 등 다양한 접근 방식이 존재하며, 각기 다른 방법으로 동일한 목표를 달성하려 함.
- 이 글에서는 이러한 방법들이 어떻게 작동하는지 살펴보고, 문제를 해결하는 새로운 방법인 분석적 안티 앨리어싱을 소개함.

### 설정

- 안티 앨리어싱 알고리듬을 이해하기 위해 WebGL 캔버스를 사용하여 움직이는 원을 그리며 구현함.
- 해상도가 너무 높아 앨리어싱이 보이지 않는 경우, 해상도를 낮춰서 확인할 수 있음.

### 기술적 분석

- GPU 코드 이해는 필수는 아니지만, 분석적 부분을 이해하는 데 도움이 됨.
- 원은 기하학적으로 그려지는 것이 아니라 셰이더에 의해 그려짐.

### SSAA

- SSAA는 슈퍼 샘플링 안티 앨리어싱의 약자로, 더 큰 해상도로 렌더링한 후 다운샘플링하는 방식임.
- 구현은 간단하지만, 메모리와 계산 요구량이 큼.
- 적절한 샘플 배치가 필요하며, 렌더링 파이프라인과 깊이 있는 통합이 필요함.

### MSAA

- MSAA는 모델의 실루엣, 겹치는 기하학, 텍스처 가장자리에서만 슈퍼 샘플링을 수행함.
- 하드웨어에 의해 구현되며, 지원 여부는 하드웨어에 따라 다름.
- 특정 상황에서는 성능 비용이 없을 수도 있음.

### 포스트 프로세스 안티 앨리어싱

- 2009년 Alexander Reshetov의 논문으로 MLAA가 탄생함.
- FXAA는 MLAA에서 영감을 받아 개발된 알고리듬으로, 성능이 저렴하고 구현이 쉬움.
- 복잡한 장면에서 더 효과적임.

### 분석적 안티 앨리어싱

- 분석적 안티 앨리어싱은 문제를 역으로 접근하여, 필요한 모양을 알고 이미 안티 앨리어싱된 픽셀을 화면에 그리는 방식임.
- 추가 버퍼나 하드웨어 요구 사항이 없으며, 기본 WebGL 1.0 또는 OpenGLES 2.0에서도 실행 가능함.
- 픽셀 크기를 계산하여 모양의 경계를 페이드 아웃함.

### 구현

- 서명 거리 필드를 사용하여 샘플링하는 각 점에서 원하는 모양까지의 거리를 알 수 있음.
- 픽셀 크기를 계산하는 방법에는 dFdx, dFdy, fwidth 함수가 사용됨.
- 블렌딩은 알파 블렌딩이나 MSAA + Alpha to Coverage를 사용하여 수행됨.
- smoothstep 대신 linearstep을 사용하여 성능을 최적화할 수 있음.

### 결론

- 분석적 안티 앨리어싱은 모양의 경계를 정확하게 페이드 아웃하여 부드러운 가장자리를 제공함.
- 다양한 구현 방법이 있으며, 성능과 정확성 사이에서 선택할 수 있음.

## Comments



### Comment 31549

- Author: neo
- Created: 2024-11-21T09:56:35+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42191709) 
- 그래픽 프로그래밍 분석이 WebGL 예제를 통해 이루어졌으며, 매우 깊이 있는 기사임
  - MSAAx4를 사용해왔으나 FXAA/TAA로 전환을 고려 중이며, UI 항목에 대한 분석적 접근을 배울 수 있었음
  - 그래픽 프로그래밍 관련 자료가 드물지만, 프레임 분석 목록이 유용한 자원임
  - AA 설정의 약어 차이를 설명하지 않는 게임들이 많아 사용자 친화성이 부족함
  - SDF(mSDF)는 이미 충분히 좋은 고전적인 기술임
  - Slug와 DirectWrite에서 베지어 곡선 세그먼트를 픽셀 단위로 해결하는 것이 현재 또는 미래의 기술임
  - Captain Disillusion의 작업을 처음 알게 되었으며, 비디오 효과에 관심 있는 사람들에게 추천함
  - 원과 확대된 부분이 포함된 프레임이 메시지를 전달하는 훌륭한 방법임
  - 부드러운 그라데이션이 매우 만족스러움
  - 2D와 3D 렌더링 엔진은 완전히 다른 목표와 사용 사례를 가짐
  - 3D에서는 중요하지 않지만 2D에서는 정확성과 편향이 중요한 AA 기술 기준이 있음
  - NeoTokyo 스크린샷이 인상적이었으며, 해당 모드 서버를 운영하며 즐거운 시간을 보냈음
  - SSAA를 '화면 공간 안티앨리어싱'으로 잘못 읽었음
