판 비교
1번째 줄 근처
추가: ## 개요
추가: 광자 매핑(photon mapping)은 컴퓨터 그래픽스 분야에서 헨리크 완 옌센(Henrik Wann Jensen)이 1995년부터 2001년 사이에 개발한 2패스(two-pass) 글로벌 일루미네이션(global illumination) 렌더링 알고리즘이다. 공간상의 특정 지점에서 빛의 휘도(radiance)를 적분하기 위한 렌더링 방정식(rendering equation)을 근사적으로 해결한다. 광원에서 방출되는 광선(광자)과 카메라에서 발사되는 광선을 독립적으로 추적한 뒤, 두 번째 단계에서 이들을 연결하여 휘도 값을 산출한다. 다양한 유형의 객체와 빛의 상호작용을 사실적으로 시뮬레이션하는 데 쓰이며, 다른 사실적 렌더링 기술과 유사한 목적을 가진다[1][2][3].
추가:
추가: ## 역사·유래
추가:
추가: 덴마크의 컴퓨터 그래픽스 연구자 헨리크 완 옌센이 1995년에서 2001년 사이 시그래프(SIGGRAPH) 논문과 저서 《Realistic Image Synthesis Using Photon Mapping》(ISBN 1-56881-147-0) 등을 통해 제안하고 발전시켰다. 기존의 레이 트레이싱(ray tracing), 라디오시티(radiosity) 기법이 처리하기 까다로웠던 코스틱스(caustics), 확산 상호반사(diffuse interreflection), 표면 아래 산란(subsurface scattering) 등을 통합적으로 다루기 위해 고안되었다[2][3].
추가:
추가: ## 작동 방식과 유형
추가:
추가: ### 1단계: 광자 맵 구성 (Photon Map Construction)
추가:
추가: 광원에서 ‘광자(photon)’라 불리는 빛 에너지 패킷을 장면(scene) 안으로 발사한다. 각 광자가 표면과 교차할 때마다 교점 위치와 입사 방향을 캐시인 ‘광자 맵(photon map)’에 저장한다. 일반적으로 두 종류의 광자 맵을 생성한다.
추가:
추가: * **코스틱스 광자 맵**: 유리·물 등 투명 매질을 통과하거나 반사되어 생기는 집중된 빛 무늬(코스틱스) 전용.
추가: * **전역 광자 맵(global photon map)**: 그 외의 간접 조명(확산 상호반사, 표면 아래 산란 등)용.
추가:
추가: 교차 후 물질의 물성(반사율, 흡수율, 투과율)에 따라 러시아 룰렛(Russian roulette) 몬테카를로 방식으로 반사·흡수·투과(굴절) 중 하나를 확률적으로 결정한다. 흡수되면 해당 광자 추적을 종료하고, 반사·투과되면 BRDF(양방향 반사 분포 함수) 또는 BTDF(양방향 투과 분포 함수)에 따라 새 방향을 얻어 계속 추적한다. 맵 구축이 끝나면(또는 구축 중) k-최근접 이웃(k-nearest neighbor) 검색에 최적인 공간 자료구조(옌센은 kd-tree 권장)로 정렬해 디스크나 메모리에 보관한다[3].
추가:
추가: ### 2단계: 렌더링 (Radiance Estimation)
추가:
추가: 각 픽셀마다 레이 트레이싱으로 가장 가까운 교점을 찾은 뒤, 렌더링 방정식을 네 항으로 분해해 휘도를 추정한다.
추가:
추가: 1. **직접 조명(direct illumination)**: 교점에서 각 광원까지 레이를 쏘아 가림 여부 확인 후 계산.
추가: 2. **거울 반사(specular reflection)**: 레이 트레이싱으로 정확하게 처리.
추가: 3. **코스틱스(caustics)**: 코스틱스 광자 맵에서 최근접 광자들을 모아 휘도 기여도 계산. 광자 수가 충분히 많아야 날카로운 무늬가 나온다.
추가: 4. **부드러운 간접 조명(soft indirect illumination)**: 전역 광자 맵을 사용해 근사 계산. 코스틱스만큼 높은 정확도가 필요하지 않으므로 전역 맵으로 충분하다.
추가:
추가: 휘도 계산 공식: 교점을 중심으로 최근접 N개 광자를 구하고, 이들을 포함하는 구(sphere) S의 면적으로 각 광자의 플럭스(flux)를 나눈 뒤 BRDF를 곱해 합산한다[3].
추가:
추가: ### 주요 최적화 기법
추가:
추가: * **광자 방출 방향 제한**: 중요 객체 방향으로만 광자 발사해 낭비 감소.
추가: * **조도 캐싱(irradiance caching)**: 람베르티안 표면에서 간접 조명 보간으로 연산량 절감.
추가: * **그림자 광자(shadow photons)**: 직접 조명 가림 테스트를 광자 맵 조회로 대체.
추가: * **콘 필터(cone filter)**: 코스틱스 품질 향상을 위해 광자 기여도에 거리 기반 가중치 부여.
추가: * **이미지 공간 광자 매핑(image space photon mapping)**: GPU 래스터라이저로 최초·최종 산란 계산해 실시간화 시도[3].
추가:
추가: ### 변형 및 확장
추가:
추가: * **진행적 광자 매핑(Progressive Photon Mapping, PPM)**: 레이 트레이싱으로 시작한 뒤 광자 매핑 패스를 반복 추가하며 점진적으로 정확도 향상.
추가: * **스펙트럴 렌더링(spectral rendering)**: 파장 단위 빛 시뮬레이션으로 확장 가능.
추가: * **스캔라인 렌더러(scanline renderer) 지원**: 레이 트레이서 외 파이프라인에도 적용 가능[3].
추가:
추가: 이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.