광자 매핑

Photon mapping

컴퓨터 그래픽스에서 광자 매핑은 1995년부터[1] 2001년 사이에 Henryk Wann Jensen에 의해 개발된 2패스 글로벌 조명 렌더링 알고리즘으로, 공간의 특정 지점에서 빛의 광도를 통합하기 위한 렌더링 방정식을 대략적으로 해결합니다.광원으로부터의 광선(광자등)과 카메라로부터의 광선은, 어느 하나의 종단 기준을 만족할 때까지 독립적으로 트레이스 되고 나서, 제2의 스텝으로 접속되어 방사 휘도치를 생성한다.이 알고리즘은 빛의 상호 작용을 다른 유형의 개체와 사실적으로 시뮬레이션하는 데 사용됩니다(다른 사실적 렌더링 기술과 유사).구체적으로는, 유리나 물등의 투명한 물질에 의한 빛의 굴절(가성 물질 포함), 조명 물체간의 확산 상호 반사, 반투명 물질중의 빛의 표면 산란, 연기나 수증기등미립자 물질에 의한 영향의 일부를 시뮬레이션 할 수 있다.또한 광자 매핑은 스펙트럼 렌더링과 같은 보다 정확한 빛의 시뮬레이션으로 확장할 수 있다.PPM(Progressive Photon Mapping)은 광선 추적에서 시작하여 점점 더 많은 광자 매핑 패스를 추가하여 점진적으로 더 정확한 렌더링을 제공합니다.

경로 추적, 양방향 경로 추적, 볼륨 경로 추적Metropolis 광전송달리, 광자 매핑은 "편향된" 렌더링 알고리즘입니다. 즉, 이 방법을 사용하여 동일한 씬의 렌더링을 무한히 많이 평균화하면 렌더링 방정식에 대한 올바른 해법으로 수렴되지 않습니다.단, 일관된 방법으로 광자수를 증가시킴으로써 렌더의 정밀도를 높일 수 있다.광자의 수가 무한대에 가까워질수록 렌더링은 렌더링 방정식의 솔루션에 점점 더 가까워집니다.

영향들

가성

광자 매핑에 의해 레이트레이스된 와인 글라스 모델.

굴절되거나 반사된 빛은 가성이라고 불리는 패턴을 유발하며, 보통 가까운 표면에 집중된 빛의 반점으로 보입니다.예를 들어 테이블 위에 놓인 와인잔에 광선이 통과하면 굴절돼 테이블 위에 빛의 패턴이 보인다.광자 매핑은 개별 광자의 경로를 추적하여 이러한 집중된 빛의 패치가 나타나는 위치를 모델링할 수 있다.

확산 상호 반사

확산 상호반사는 한 확산물체의 빛이 다른 확산물체에 반사될 때 분명하게 나타납니다.광자 매핑은 알고리즘이 표면의 양방향 반사율 분포 함수(BRDF)에 기반하여 한 표면에서 다른 표면으로 광자를 반사하기 때문에 이 효과를 처리하는 데 특히 능숙하다. 따라서 한 물체의 빛이 다른 물체와 충돌하는 것은 이 방법의 자연스러운 결과이다.확산 상호반사는 방사선성 솔루션을 사용하여 처음 모델링되었다.그러나 광자 매핑은 광수송을 장면의 기하학적 특성과 분리한다는 점에서 다르다.컬러 블리딩은 확산 상호반사의 한 예이다.

지표면 산란

지표면 산란이란 빛이 물질에 들어가 다른 방향으로 흡수되거나 반사되기 전에 산란될 때 나타나는 효과입니다.지표면 산란은 광자 매핑을 사용하여 정확하게 모델링할 수 있다.이것이 Jensen이 구현한 원래 방식이었지만, 고도로 산란된 재료에 대해서는 방법이 느려지고 이러한 상황에서는 양방향 표면 산란 반사 분포 함수(BSSRDF)가 더 효율적이다.

사용.

광자 지도 구축(1차 통과)

광자 매핑을 사용하면 광원으로부터 광자라고 불리는 광패킷이 현장으로 전송됩니다.광자가 표면과 교차할 때마다 교차점과 들어오는 방향은 광자 맵이라는 캐시에 저장됩니다.일반적으로 장면에 대해 두 개의 광자 맵이 생성된다. 하나는 특히 가성용이고 다른 하나는 다른 빛용이다.표면과 교차한 후 반사, 흡수 또는 투과/굴절 확률이 재료에 의해 부여된다.러시안 룰렛이라고 불리는 몬테카를로 방법은 이 행동들 중 하나를 선택하는데 사용된다.광자가 흡수되면, 새로운 방향은 주어지지 않고, 그 광자에 대한 트레이스는 종료된다.광자가 반사할 경우 표면의 양방향 반사율 분포 함수를 사용하여 반사 광도의 비율을 결정한다.마지막으로, 광자가 송신하고 있는 경우는, 그 송신 성질에 따라, 그 방향에 대한 함수를 부여한다.

일단 광자 맵이 구성되면(또는 구성 중에), 광자 룩업 시간이 광자의 공간 분포에 따라 달라지기 때문에 일반적으로 k-가장 가까운 인접 알고리즘에 최적인 방식으로 배치된다.Jensen은 kd-tree 사용을 지지합니다.그런 다음 나중에 사용할 수 있도록 광자 맵을 디스크 또는 메모리에 저장합니다.

렌더링(2차 패스)

알고리즘의 이 단계에서는 첫 번째 패스로 작성된 광자 맵을 사용하여 출력 화상의 각 화소의 광도를 추정한다.각 픽셀에 대해 교차점의 가장 가까운 표면이 발견될 때까지 장면이 광선 추적됩니다.

이 시점에서 렌더링 방정식은 교차점을 타격한 광선의 방향으로 떠나는 표면 방사도를 계산하기 위해 사용된다.효율을 높이기 위해 방정식은 직접 조명, 거울 반사, 가성 및 연간접 조명 등 4가지 요소로 분해됩니다.

직접 조명의 정확한 추정을 위해 교차점에서 각 광원까지 광선을 추적한다.광선이 다른 물체와 교차하지 않는 한 광원은 직접 조명을 계산하기 위해 사용됩니다.간접 조명의 대략적인 추정치를 위해 광자 맵을 사용하여 복사 강도 기여도를 계산한다.

경면 반사는 대부분의 경우 (반사를 잘 처리하므로) 광선 추적 절차를 사용하여 계산할 수 있습니다.

가성 광자의 표면 광도에 대한 기여도는 가성 광자 지도를 직접 사용하여 계산된다.지도는 현장의 가성 정보의 유일한 소스이기 때문에 이 지도의 광자 수는 충분히 커야 한다.

연성 간접 조명의 경우 광자 맵을 직접 사용하여 광도를 계산한다.그러나 이러한 기여는 가성 기여만큼 정확할 필요가 없으므로 전역 광자 지도를 사용한다.

광자 지도를 이용한 광도 계산

교차점에서의 표면 방사도를 계산하기 위해 캐시된 광자 맵 중 하나를 사용한다.순서는 다음과 같습니다.

  1. 광자 맵에서 가장 가까운 네이버 검색 기능을 사용하여 가장 가까운 N개의 광자를 수집합니다.
  2. S가 이 N개의 광자를 포함하는 구라고 하자.
  3. 각 광자에 대해 광자가 나타내는 플럭스(실제 광자)의 양을 S의 면적으로 나누어 해당 광자에 적용된 BRDF를 곱한다.
  4. 각 광자에 대한 결과의 합은 표면 교차점에서 부딪힌 광선의 방향으로 반환된 총 표면 방사도를 나타낸다.

최적화

  • 불필요한 광자를 방출하는 것을 방지하기 위해 나가는 광자의 초기 방향이 종종 제한됩니다.단순히 임의의 방향으로 광자를 보내는 대신에, 그것들은 빛의 초점을 맞추거나 확산시키기 위해 원하는 광자 조작기인 알려진 물체의 방향으로 보내진다.이 알고리즘에는, 송신하는 광자의 수, 송신 장소, 송신 패턴의 선택 등, 그 밖에도 많은 개선 사항이 있습니다.특정 방향으로 더 많은 광자를 방출하면 광자가 부딪힌 위치 주변의 광자 지도에 더 높은 밀도의 광자가 저장되므로 이 밀도를 측정하면 방사선 강도에 대한 부정확한 값을 얻을 수 있다.이는 사실이다. 그러나 방사조도 계산에 사용되는 알고리즘은 방사조도 추정치에 의존하지 않는다.
  • 소프트 간접 조명의 경우 표면이 램버트인 경우 방사선 조도 캐싱으로 알려진 기법을 사용하여 이전 계산의 값을 보간할 수 있다.
  • 직접 조명에서의 불필요한 충돌 테스트를 피하기 위해 그림자 광자를 사용할 수 있습니다.광자 매핑 프로세스 중에, 광자가 표면에 부딪힐 때, 행해지는 통상적인 조작에 가세해 그림자 광자는 원래의 광자가 물체를 통과하는 방향과 같은 방향으로 방출된다.그것이 충돌하는 다음 물체는 그림자 광자를 광자 지도에 저장하게 한다.그 후 직접 조명 계산 중에 표면에서 물체와의 충돌을 테스트하는 빛으로 광선을 보내는 대신 광자 맵에서 그림자 광자를 쿼리합니다.아무것도 존재하지 않는 경우, 물체는 광원에 대한 명확한 시야를 가지고 있기 때문에 추가 계산을 피할 수 있습니다.
  • 특히 가성(austics)의 영상 품질을 최적화하려면 원뿔 필터를 사용하는 것이 좋습니다.기본적으로 필터는 광자가 광선 표면 교차점에서 얼마나 떨어져 있는지에 따라 광자의 광도에 대한 기여에 무게를 부여합니다.이렇게 하면 더 선명한 이미지를 만들 수 있습니다.
  • 이미지 공간 광자 매핑은 GPU 래스터라이저를 사용하여 최초 및 마지막 산란을 계산함으로써 실시간 성능을 달성한다.

바리에이션

  • 광자 매핑은 주로 광선 추적기에서 작동하도록 설계되었지만 스캔 라인 렌더러에서 사용하기 위해 확장할 수도 있다.

레퍼런스

  1. ^ Jarosz, Wojciech (September 2008). "Chapter 7: The Photon Mapping Method". Efficient Monte Carlo Methods for Light Transport in Scattering Media (PhD thesis). University of California, San Diego. p. 119 – via Dartmouth.

외부 링크