광선 추적 / 경로 추적에서 앤티 앨리어싱을 방지하는 가장 간단한 방법 중 하나는 픽셀 값을 수퍼 샘플링하고 결과를 평균화하는 것입니다. IE. 픽셀 중심을 통해 모든 샘플을 촬영하는 대신 샘플을 일정량 오프셋합니다.
인터넷 검색 에서이 작업을 수행하는 두 가지 방법이 있습니다.
- 원하는 샘플을 생성하고 필터로 결과를 측정
- 한 가지 예는 PBRT입니다
- 필터 모양과 동일한 분포를 갖는 샘플 생성
생성 및 계량
기본 프로세스는 다음과 같습니다.
- 원하는대로 샘플을 만듭니다 (무작위, 계층화, 불일치 시퀀스 등).
- 두 샘플 (x 및 y)을 사용하여 카메라 광선 오프셋
- 광선으로 장면을 렌더링
- 필터 기능과 픽셀 중심을 기준으로 한 샘플의 거리를 사용하여 가중치를 계산하십시오. 예를 들어 Box Filter, Tent Filter, Gaussian Filter 등)
- 렌더링에서 색상에 가중치를 적용합니다
필터 모양으로 생성
기본 전제는 역변환 샘플링 을 사용하여 필터 모양에 따라 분포 된 샘플을 생성하는 것입니다. 예를 들어 가우스 모양으로 분포 된 샘플의 히스토그램은 다음과 같습니다.
이것은 정확히 수행하거나 함수를 별도의 pdf / cdf로 비닝하여 수행 할 수 있습니다. smallpt 는 텐트 필터의 정확한 역 cdf를 사용합니다. 비닝 방법의 예는 여기 에서 찾을 수 있습니다
질문
각 방법의 장단점은 무엇입니까? 왜 다른 것을 사용하겠습니까? 몇 가지를 생각할 수 있습니다.
Generate와 Weigh는 가장 강력한 것으로 보이며, 모든 샘플링 방법과 필터를 조합 할 수 있습니다. 그러나 ImageBuffer에서 가중치를 추적 한 다음 최종 해결을 수행해야합니다.
필터 형태로 생성은 양의 필터 형태 만 지원할 수 있습니다 (예 : Mitchell, Catmull Rom 또는 Lanczos 없음). 그러나 위에서 언급했듯이 가중치를 추적 할 필요가 없으므로 구현하기가 더 쉽습니다.
결국, 방법 2는 본질적으로 암시 적 Box Filter 가중치를 사용하기 때문에 방법 1을 방법 1의 단순화로 생각할 수 있습니다.