KR101080508B1 - 다단계 점진적 포톤 매핑 방법 - Google Patents
다단계 점진적 포톤 매핑 방법 Download PDFInfo
- Publication number
- KR101080508B1 KR101080508B1 KR1020110092449A KR20110092449A KR101080508B1 KR 101080508 B1 KR101080508 B1 KR 101080508B1 KR 1020110092449 A KR1020110092449 A KR 1020110092449A KR 20110092449 A KR20110092449 A KR 20110092449A KR 101080508 B1 KR101080508 B1 KR 101080508B1
- Authority
- KR
- South Korea
- Prior art keywords
- photon
- photons
- control value
- level
- weight
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
다단계 점진적 포톤 매핑 방법이 개시된다. 전역 조명(global illumination)을 지원하는 그래픽 처리 장치에서의 다단계 점진적 포톤 매핑 방법은 광선과 물체 표면의 충돌 지점(hit point)을 찾는 광선 추적 단계(ray tracing pass); 광원에서 포톤을 방출하여 포톤의 진행 경로를 추적하는 포톤 추적 단계(photon tracing pass); 및 포톤의 진행 경로를 이용하여 렌더링을 수행하는 렌더링 단계(rendering pass)를 포함하며, 이때 포톤 추적 단계는, 포톤 추적을 다수의 레벨로 나누어 수행하되, 각 레벨 마다 다른 수의 포톤을 방출하여 추적하는 단계와, 각 레벨의 포톤으로 구한 플럭스(flux)에 적용할 가중치를 결정하기 위해 물체 표면의 상태를 나타내는 제어 값을 찾는 단계와, 제어 값을 이용하여 각 레벨에 적용할 가중치를 결정한 후, 가중치를 적용하여 렌더링을 위한 래디언스(radiance)를 추정하는 단계를 포함할 수 있다.
Description
본 발명의 실시예들은 점진적 포톤 매핑(progressive photon mapping)을 기반으로 한 전역 조명 알고리즘에 관한 것이다.
전역 조명 처리(global illumination)는 3차원 물체를 실사 수준의 영상으로 표현하는 사실적 렌더링 기술(photorealistic rendering)을 위해 필수적인 요소이다. 과거에는 많은 처리 시간이 소요되어 특정 분야에서만 연구되었지만 최근에 그래픽 처리 장치의 발달로 새롭게 관심이 집중되는 분야이다. 직접광(direct light)만을 적용하는 지역 조명(local illumination)과 달리, 간접광(indirect light)를 비롯하여 굴절(refraction), 반사(reflection), 초면(caustic)과 같은 다양한 조명 효과를 적용함으로써 실감나는 장면 표현이 가능하여 영화, 게임, 애니메이션 등에 널리 이용되고 있다.
전통적인 전역 조명 처리 방법으로는 라디오시티(radiosity)나 광선 투사법(ray tracing) 등이 있다. 포톤 매핑(photon mapping)은 비교적 최근에 소개된 방법으로 다양한 전역 조명 처리를 효율적으로 수행할 수 있다. 국내특허출원 제10-2010-0074248호(출원일 2010년 07월 30일)에는 포톤 매핑을 이용한 전역 조명 처리 방법을 개시하고 있다. 포톤 매핑은 포톤 추적 단계(photon tracing pass)와 광선 추적 단계(ray tracing pass)로 이루어진 알고리즘이다. 첫 번째 단계인 포톤 추적 단계에서는 포톤을 방출(emission)하여 그 진행 경로를 포톤 맵(photon map)에 저장한 후 이를 이용하여 렌더링을 수행한다. 하지만, 이 방법은 포톤 맵을 구성하는데 많은 시간이 소요되며, 생성된 포톤 맵을 저장하기 위해 많은 메모리가 필요하다는 문제가 있다. 이를 개선하기 위해 제안된 방법이 점진적 포톤 매핑(progressive photon mapping)(이하, 'PPM'라 칭함) 기술이다.
PPM은 포톤 매핑과 달리 광선 추적 단계를 포톤 추적 단계보다 먼저 수행한다. 광선 추적 단계에서는 포톤 매핑과 같이 광선과 표면(surface)과의 충돌 지점(hit point)을 찾는 과정을 수행한다. 포톤 추적 단계에서는 일정한 수(user defined)의 포톤을 방출하여 래디언스(radiance)를 계산하는 과정을 반복하여 점진적으로 복사량을 축적(accumulate)한다. 이 방법은 시점이 고정된다는 제한이 있지만, 일정한 수의 포톤을 저장할 공간만을 필요로 하기 때문에 대용량 포톤 맵을 사용하는 기존의 포톤 매핑에 비하여 메모리를 절약할 수 있다. 또한, 포톤의 수를 정하여 방출하는 포톤 매핑 방법과 달리, PPM은 포톤의 수에 제약 없이 방출, 추적을 할 수 있기 때문에 전역 조명 효과를 나타내는데 적합하다.
하지만 PPM 역시 고화질의 결과 영상을 얻기 위해서는 많은 시간이 필요하며, 충분한 포톤을 방출하지 않을 경우 노이즈가 생기는 문제가 있다. 또한, 기존의 포톤 매핑과 마찬가지로 방출하는 포톤 수를 결정하는 과정에서의 모호성이 있어서 포톤의 수에 따라 결과 영상의 화질과 수행 시간이 다르기 때문에 실험을 통해서만 적정한 포톤의 수를 결정할 수 있다는 단점이 있다.
본 명세서에서는 포톤 추적을 다단계(multi-level)로 나누어 수행하는 다단계 점진적 포톤 매핑(multi-level progressive photon mapping)(이하, 'ML-PPM'라 칭함) 기술을 제안한다.
점진적 포톤 매핑 기술을 기반으로 한 새로운 전역 조명 알고리즘인 다단계 점진적 포톤 매핑 방법을 제공한다.
포톤 추적 단계를 다단계로 나누어 수행하는 다단계 점진적 포톤 매핑 방법을 제공한다.
전역 조명(global illumination)을 지원하는 그래픽 처리 장치에서의 다단계 점진적 포톤 매핑 방법은 광선과 물체 표면의 충돌 지점(hit point)을 찾는 광선 추적 단계(ray tracing pass); 광원에서 포톤을 방출하여 포톤의 진행 경로를 추적하는 포톤 추적 단계(photon tracing pass); 및 포톤의 진행 경로를 이용하여 렌더링을 수행하는 렌더링 단계(rendering pass)를 포함하며, 이때 포톤 추적 단계는, 포톤 추적을 다수의 레벨로 나누어 수행하되, 각 레벨 마다 다른 수의 포톤을 방출하여 추적하는 단계와, 각 레벨의 포톤으로 구한 플럭스(flux)에 적용할 가중치를 결정하기 위해 물체 표면의 상태를 나타내는 제어 값을 찾는 단계와, 제어 값을 이용하여 각 레벨에 적용할 가중치를 결정한 후, 가중치를 적용하여 렌더링을 위한 래디언스(radiance)를 추정하는 단계를 포함할 수 있다.
일 측면에 따르면, 각 레벨 마다 다른 수의 포톤을 방출하여 추적하는 단계는 포톤 추적을 m개의 레벨로 나누는 경우 광원에서 N1, N2, …, Nm(단, N1<N2<…<Nm)개의 포톤을 차례로 방출한다.
다른 측면에 따르면, 물체 표면의 상태를 나타내는 제어 값을 찾는 단계는 광선 추적 단계에서 광선이 반사 또는 굴절되는 회수를 나타내는 광선 풋프린트(ray's footprint)를 이용하여 제1 제어 값(W k )을 찾는 단계와, 물체 표면 상의 충돌 지점이 광원으로부터 직접광(direct light)을 받는지 또는 간접광(indirect light)을 받는지 여부에 따른 제2 제어 값(W s )을 찾는 단계와, 충돌 지점 상에서 샘플 광선을 발사하여 세이딩(shading) 하는 충돌 지점 기반 AO(hit points based ambient occlusion)를 통해 픽셀 당 음영을 나타내는 제3 제어 값(W a )을 찾는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 래디언스를 추정하는 단계는 각 레벨에 대하여, 제1 제어 값(W k )과 제2 제어 값(W s )을 수학식 1에 적용하여 가중치(wi)를 계산한 후, 가중치(wi)를 수학식 2에 적용하여 인커밍 래디언스의 합을 계산하고, 제3 제어 값(W a )을 수학식 3에 적용하여 최종 래디언스 값을 계산할 수 있다.
(여기서, wn은 레벨이 m인 경우의 가중치, n은 포톤 추적의 전체 레벨 수, m Avg 는 레벨들의 평균 값, q는 가중치를 정규화 하는 인자, α는 레벨의 포톤과 제1 제어 값(W k )에 따라 가중치의 값이 변하는 정도를 나타내는 사용자 정의 계수이다.)
[수학식 2]
(여기서, 는 포톤 N(x) 개의 누적된 플럭스이고, f r 은 BRDF(Bidirectional Reflectance Distribution Function)이며, 은 p번째 포톤의 플럭스이며, n은 포톤 추적의 전체 레벨 수이다.)
[수학식 3]
포톤 추적 단계를 다단계로 나누어 각 레벨마다 다른 수의 포톤을 방출하는 다단계 점진적 포톤 방법을 적용함으로써 표면이 받는 빛의 조건에 따라 다른 가중치를 적용하여 노이즈를 줄이고 기존 방법에 비해 빨리 고화질의 영상을 렌더링 할 수 있다. 광원으로부터 직접광을 받는 표면의 경우는 적은 수의 포톤으로도 좋은 결과 영상을 만들 수 있기 때문에 낮은 레벨에서 방출된 포톤에 높은 가중치를 주고, 반대로 간접광을 받는 표면의 경우 전역 조명 효과를 내기 위해서는 많은 수의 포톤이 필요하기 때문에 높은 레벨에서 방출된 포톤에 높은 가중치를 적용하여 래디언스 추정(radiance estimate)를 수행한다. 따라서, 고정된 수의 포톤을 방출하는 것이 아니라 레벨 마다 다른 수의 포톤을 방출하기 때문에 포톤 수 결정의 모호함을 해결할 수 있다. 또한, 레벨에 따라 다른 가중치를 주어 최종 래디언스를 계산하기 때문에 더욱 정교한 전역 조명 효과를 낼 수 있다.
도 1은 일반적인 점진적 포톤 매핑의 수행 과정을 나타내는 도면이다.
도 2는 본 발명의 일실시예에 있어서, 다단계 점진적 포톤 매핑 방법의 수행 과정을 나타내는 도면이다.
도 3은 N개의 포톤을 반복적으로 방출 및 추적하는 기존 방식과, 각 레벨 마다 다른 수의 포톤으로 포톤 추적을 수행하는 본 발명의 방식을 비교한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 포톤 추적을 다단계로 나누어 수행하는 다단계 점진적 포톤 매핑 방법의 알고리즘을 도시한 도면이다.
도 5는 광선의 풋프린트를 카운트하는 과정을 설명하기 위한 도면이다.
도 6은 광원에서 광원 추적을 수행하여 충돌 지점이 직접광을 받는지 여부를 확인하는 과정을 설명하기 위한 도면이다.
도 7은 물체 표면의 충돌 지점에서 여러 개의 샘플 광선을 발사하여 충돌 지점 기반 AO(ambient occlusion)를 수행하는 과정을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 다단계 점진적 포톤 매핑 방법의 수행 과정을 나타내는 도면이다.
도 3은 N개의 포톤을 반복적으로 방출 및 추적하는 기존 방식과, 각 레벨 마다 다른 수의 포톤으로 포톤 추적을 수행하는 본 발명의 방식을 비교한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 포톤 추적을 다단계로 나누어 수행하는 다단계 점진적 포톤 매핑 방법의 알고리즘을 도시한 도면이다.
도 5는 광선의 풋프린트를 카운트하는 과정을 설명하기 위한 도면이다.
도 6은 광원에서 광원 추적을 수행하여 충돌 지점이 직접광을 받는지 여부를 확인하는 과정을 설명하기 위한 도면이다.
도 7은 물체 표면의 충돌 지점에서 여러 개의 샘플 광선을 발사하여 충돌 지점 기반 AO(ambient occlusion)를 수행하는 과정을 설명하기 위한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 실시예에 따른 다단계 점진적 포톤 매핑 방법을 설명하기에 앞서, 본 발명과 관련된 기술과, 종래의 점진적 포톤 매핑 방법을 설명하기로 한다.
먼저, 포톤 매핑은 BRDF(Bidirectional Reflectance Distribution Function) 반사 모델 구현하기 용이하며 굴절(refraction), 반사(reflection), 초면(caustic), 산란(scattering) 등의 전역 조명 효과를 효율적으로 수행하는 알고리즘이다. 포톤 매핑의 포톤 추적 단계에서는 러시안 룰렛(Russian roulette)에 기반한 포톤의 충돌 진행 과정을 포톤 맵에 저장하며, 포톤의 위치(position)와 입사 방향(incident direction), 포톤의 파워 등의 정보를 kd-tree 형태로 저장한다. 렌더링 단계에서는 포톤 맵에서 가장 가까운 포톤(nearest photons)을 검색하여 렌더링 방정식(Rendering equation)을 계산한다.
또한, 계층적 포톤 매핑(Hierarchical photon mapping)은 계층적 평가(hierarchical evaluation)를 기반으로 한 계층적 포톤 맵(hierarchical photon map)을 사용하는 방법이다. 계층적 포톤 맵은 포톤 에너지를 확산(propagation)하여 생성되며, 포톤들의 플럭스(flux)는 kd-tree의 뎁스(depth)에 따라 결정된다. 이를 이용하여 조사도 일관성 측정(irradiance coherence checking)과 최종 수집(final gathering)을 수행한다. 이 방법은 추정 영역(estimate area)에서 최적의 커널 사이즈(kernel size)(radius)를 찾기 힘들다는 문제를 계층적 구조로 해결한 것이다.
그리고, 리버스 포톤 매핑(Reverse photon mapping)은 광선 추적 단계를 먼저 수행한 다음 포톤 추적을 수행하는 알고리즘이다. 광선 추적 단계에서 전역 포톤 맵(global photon map)인 kd-tree를 생성하며, 포톤 추적 단계를 통해 kd-tree 안의 가장 가까운 포톤(nearest photons)을 찾는다. 이 방법은 최종 수집(final gathering)의 속도를 향상하여 최종 수집을 적용한 포톤 매핑보다 빠르게 간접 조명을 나타낼 수 있다.
한편, PPM은 광선 추적 단계를 먼저 수행한 후 포톤 추적 단계에 이어 렌더링을 수행하는 다단계 알고리즘(multi-pass algorithm)이다. 리버스 포톤 매핑과 다르게 포톤 추적을 반복 수행하며, 포톤 맵을 생성하지 않고 전역 조명을 나타낼 수 있는 장점이 있다.
도 1은 일반적인 PPM의 수행 과정을 나타내는 도면이다. 이때, 포톤 추적 단계에서는 광원에서 일정한 수의 포톤을 방출할 후 추적한다.
포톤 추적 단계가 끝나면 렌더링을 수행한다. 래디언스 추정 과정은 기존의 포톤 매핑과 유사하지만 PPM의 경우 반복적으로 렌더링을 수행하기 때문에 단계별로 계산된 각 픽셀의 밝기를 축적(accumulation)해야 한다. 또한, 반경 축소(radius reduction)을 수행하여 반경을 점진적으로 줄인다.
확률적인 점진적 포톤 매핑(Stochastic progressive photon mapping)(SPPM)은 분산된 광선 추적 효과(distribute ray tracing effect)를 PPM에 적용한 방법이다. 이 방법은 포톤 샘플링을 지점(point)가 아닌 영역(region)에서 수행하기 때문에 피사계 심도(depth-of-field), 모션 블러(motion blur), 글로시 반사(glossy reflection) 등을 나타낼 수 있다. 확률적인 점진적 포톤 매핑은 PPM에 분산된 광선 추적 단계를 추가하며, 지점 기반의 반경과 축적된 플럭스를 공유(share)하여 영역 상의 평균 래디언스 값을 계산한다.
Ray's footprints는 추적 광선 격차로부터 제안된 것으로, 뷰(view)에서 발사한 광선이 표면과 닿는 위치를 나타낸다. 추적 광선 격차는 광선 추적이나 LOD(Level-Of-Detail), 텍스처 매핑(texture mapping)을 수행하는 경우, 물체 표면에서의 인접한 광선(neighboring rays) 간의 거리를 이용하여 결과 영상의 선명도를 향상시키는 방법이다.
전역 조명과 유사한 AO(ambient occlusion) 기술은 오브젝트를 셰이딩(shading)하기 위한 방법이며, 전역 조명에 비해 수행 속도가 빠르기 때문에 많은 연구가 진행 중이다. 이 방법은 표면의 한 위치의 밝기를 찾기 위하여 여러 방향으로 광선을 발사하며, 광선이 차폐물(occluder)에 닿는지 여부에 따라 어두운 정도를 결정한다. 광선의 진행 거리에 따른 빛의 감쇠(attenuation)가 없는 AO의 기본 수식은 수학식 1과 같다.
수학식 1은 표면의 한 지점 p에서 반구(hemisphere) 방향으로 광선을 진행할 때 광선이 차폐물에 닿을 경우 V p ,w 가 0이, 닿지 않는 경우 1이 되어 몬테칼로 적분(Monte Carlo integration)으로 밝기를 계산하는 것을 나타낸다. 이는 AO의 기본적인 컨셉이며, 이를 확장한 연구로는 ambient occlusion fields나 screen space ambient occlusion(SSAO) 등이 있다. SSAO는 AO를 효율적으로 근사화 한 기술로써 뎁스 버퍼(depth buffer)를 이용하여 실시간으로 수행하는 방법이다. 뎁스 버퍼의 모든 픽셀에 대하여 인접 픽셀의 뎁스를 샘플링 하여 이를 이용해 음영을 계산한다. 이 방법은 동적인 장면(dynamic scene)에 적용 가능하며 GPU상에서 빠르게 처리 가능하기 때문에 다양한 PC 게임에 사용되는 기술이다.
이하에서는, 본 발명의 실시예에 따른 다단계 점진적 포톤 매핑 방법(이하, 'ML-PPM'이라 칭함)을 상세히 설명하기로 한다.
본 발명에 따른 ML-PPM은 전역 조명 기술을 지원하는 그래픽 처리 시스템에 적용될 수 있다.
그래픽 처리 시스템은 중앙 처리부, 그래픽 처리 장치, 및 디스플레이부를 포함하여 구성될 수 있다. 이때, 중앙 처리부(CPU)는 소정의 3D 응용 프로그램이 실행되면, 기존의 다이렉트 엑스(Direct X) 또는 오픈지엘(OpenGL: Open Graphics Library) 기반의 응용 프로그램 인터페이스(Application Program Interface: API)를 통해 사용자에게 표시되는 장면에 포함되는 물체들(objects)을 삼각형 형태의 폴리곤(polygon) 집합으로 구분한다. 여기서, 폴리곤이란 3차원 컴퓨터 그래픽에서 입체 형상을 표현하는 과정에서 사용하는 가장 작은 단위인 다각형을 일컫는다. 또한, 중앙 처리부는 각 집합을 나타내는 폴리곤의 기하학적인 정보(geometric information)를 API를 통해 그래픽 처리 장치로 출력한다. 그래픽 처리 장치(GPU)는 상술한 바와 같이 중앙 처리부로부터 출력된 각 볼륨의 기하학적인 정보를 이용하여 지역조명 연산 처리를 수행하고, 필요에 따라 전역조명 연산 처리를 수행한다. 예컨대, 전역조명이 필요한 객체(또는 영역)에 대해서는 전역조명 연산 처리를 수행한다. 그래픽 처리 장치는 지역조명 연산 처리한 지역조명 영상을 디스플레이부로 출력하거나, 또는 지역조명 영상에 전역조명 연상 처리한 결과를 결합하여 최종 영상을 디스플레이부로 출력한다. 여기서, 지역조명 영상은 지역조명 효과가 반영된 픽셀 값이고, 최종 영상은 지역조명 효과가 반영된 픽셀 값과 전역조명 효과가 반영된 픽셀 값을 의미할 수 있다.
도 2는 본 발명에 따른 ML-PPM의 수행 과정을 나타내는 도면이다. 도 2에 도시한 바와 같이, 본 발명의 ML-PPM은 광선 추적 단계(210), 포톤 추적 단계(220), 렌더링 단계(230)로 이루어진다. 본 발명의 ML-PPM은 광선 추적 단계(210)를 먼저 수행한 후, 포톤 추적 단계(220)에 이어 렌더링 단계(230)를 수행하는 다단계 알고리즘이다. 더욱이, 본 발명에서 제안된 ML-PPM은 포톤 추적 단계(220)를 멀티 레벨로 나누어 각 레벨마다 다른 수의 포톤을 방출하여 추적하는 방식을 적용한 것이다. 도 2에 도시한 바와 같이, 본 발명에서 포톤 추적 단계(220)는 각 레벨마다 포톤의 수를 늘려가며 방출하여 추적하는 다단계 포톤 추적 단계(222)와, 제어 값(control values)을 찾는 제어 값 선정 단계(221)와, 제어 값으로 결정된 가중치를 적용하는 래디언스 통합 단계(223)로 구성될 수 있다.
다단계
포톤
추적 단계(222)
포톤 추적은 래디언스 추정에 사용될 포톤을 찾기 위해 방출된 포톤의 진행 경로를 추적하는 것이다. 기존의 PPM에서 일정한 수의 포톤을 반복적으로 추적하는 것과 달리, 본 발명에 따른 다단계 포톤 추적은 포톤 추적 단계를 멀티 레벨로 나누어 각 레벨 마다 각각 다른 수의 포톤을 추적한다. 도 3은 N개의 포톤을 반복적으로 방출 및 추적하는 기존의 PPM과, 각 레벨 마다 다른 수의 포톤으로 포톤 추적을 수행하는 ML-PPM을 도시한 것이다. 도 3의 아래 그림을 참조하면, 포톤 추적을 m 레벨로 나누는 경우 광원에서 N1, N2, …, Nm(단, N1<N2<…<Nm)개의 포톤을 차례로 방출한다.
다단계 포톤 추적 단계(222)에서는 모든 레벨의 포톤은 한번에 방출되지 않기 때문에, 포톤의 레벨을 알기 위한 태깅(tagging)이 필요 없으며, 각기 다른 수의 포톤 추적을 m번 수행하는 것과 같다. 포톤 추적이 완료된 후 포톤의 진행 경로는 인접한 포톤(nearest photons)을 검색하는데 사용되며, 인접한 포톤은 각 레벨에 따라 m개의 그룹으로 나뉘어 래디언스 추정 과정에 이용된다.
제어 값 선정 단계(221)
도 4는 본 발명에 따른 ML-PPM의 흐름을 나타낸 것으로, 도 4를 참조하여 제어 값을 선정하는 과정(221)을 설명한다.
제어값 선정 단계(221)에서는 각 레벨의 포톤으로 구한 플럭스에 적용할 가중치(weight)를 결정할 때 쓰이는 제어 값을 찾는다. 표면의 컨디션을 나타내는 제어 값은 세 가지 값으로써, 각각 광선의 풋프린트(ray's footprints)를 카운트하는 과정, 광원을 추적하는 과정, 충돌 지점(hit points) 기반 AO(ambient occlusion)를 수행하는 과정을 통해 얻을 수 있다. 이 세 가지 방법은 모두 화면 공간(screen space) 기반이기 때문에 각 제어 값의 수는 픽셀 수의 총 합과 같다. 제어 값은 결과 영상과 같은 resolution인 3개의 텍스처(texture)에 저장된다.
광선의 풋프린트를 카운트하는 과정에서 광선의 풋프린트는 광선 추적 단계에서 광선이 반사나 굴절되는 회수를 저장한 것으로, 이 값은 표면의 성질을 나타내는 제어 값 W k 가 된다. 예를 들어, 도 5를 참조하면 광선 (a)와 같이 광선이 반사되어 무광 표면(non-specular surface)에 닿아 충돌 지점에 도달하는 경우, 1회 반사되었기 때문에 해당 광선의 W k 는 1이다. 다른 예로, 광선 (b)와 같이 반투명한 물체를 통과하여 충돌 지점에 도달하면, 반투명한 물체를 들어갈 때와 나올 때 물체의 표면을 지나기 때문에 해당 광선의 W k 는 2다. W k 의 값이 크다면 광선이 반사 또는 굴절을 거쳐 충돌 지점에 도착했기 때문에 많은 수의 포톤이 필요하고 판단할 수 있다. 광선의 풋프린트를 이용해 W k 를 찾는 방법은 광선 추적 과정에서 추가적으로 간단히 수행되며, W k 텍스처에 저장된다.
다음으로, 광원을 추적하는 과정을 통해 얻는 제어 값 W s 를 찾는다. 이 방법은 표면 상의 충돌 지점이 광원으로부터 직접광을 받는지, 아니면 간접광을 받는지 확인하여 제어 값을 결정하는 방법이다. 도 6에 도시한 바와 같이, 먼저 광선 추적을 통해 찾은 충돌 지점에서 광원의 위치를 향하여 광원을 발사한다. 해당 광선이 투과(transparent)하거나 무광 표면(non-specular surface)를 가지는 차폐물을 만나지 않는 경우, 해당 충돌 지점은 직접광을 받는다고 판단하여 제어 값 W s 를 0으로 하며, 차폐물을 만나는 경우 제어 값 W s 를 1로 정한다. 제어 값 W s 가 1인 경우로 표면이 차폐물에 가려 간접광을 받기 때문에 정교한 음영 효과를 위하여 많은 수의 포톤이 필요하다. 제어 값 W s 는 W s 텍스처에 저장되며, 쉐도우 맵(shadow map)을 생성하는 과정과 유사하다. 쉐도우 맵과 다르게 W s 텍스처는 광선 추적을 통하여 충돌 지점을 얻기 때문에 투과 객체(transparent object)가 있는 장면에도 이용할 수 있다.
마지막으로, 충돌 지점 기반 AO를 수행하는 과정을 통해 제어 값 W a 을 찾는다. AO는 광의 교합(occlusion)에 따라 세이딩(shading)하는 방법으로써, 최대 전역 조명(full global illumination)을 수행하지 않고 음영을 나타낼 수 있다. 본 발명에서 사용한 충돌 지점 기반 AO는 SSAO처럼 스크린 공간(screen space)기반이며, 뎁스 버퍼를 이용한 기존 방법과 달리 충돌 지점 상에서 샘플 광선을 발사하여 세이딩 한다. 이는 빠른 처리를 위해 픽셀 당 세이딩 하는 SSAO의 장점을 적용한 것으로써, 광선 추적으로 찾은 충돌 지점을 기반으로 하는 PPM에 적합한 방법이다. 도 7를 참조하면, 충돌 지점 기반 AO를 수행하는 과정에서는 먼저 충돌 지점에서 n개의 샘플 광선을 반구(hemisphere) 방향으로 발사한다. AO는 샘플 광선의 수에 따라 결과 영상의 화질과 수행 시간이 현저히 다르기 때문에 유저가 수동으로 광선의 수를 결정하여 화질과 시간의 트레이드오프(trade off) 관계를 조절해야 한다. 발사된 샘플 광선이 진행하다가 표면을 만나는 경우 해당 충돌 지점이 차폐물에 가려져 있다고 판단하며, 차폐물에 닿지 않은 광선의 수가 k개인 경우 제어 값 W a 은 k/n이다. 이 방법은 광선의 거리에 따른 감쇠(attenuation)를 고려하지 않고 차폐 여부만을 판별하기 때문에 수행 시간을 절약할 수 있다. 제어 값 W a 는 W a 텍스처에 저장되며, 래디언스 통합 단계(223)에서 영상에 뚜렷한 음영을 적용하기 위해 사용된다.
따라서, 제어 값 W k , W s , W a 은 래디언스 통합 단계(223)에서 각 레벨에 적용할 가중치 결정에 사용된다.
래디언스
통합 단계(223)
래디언스 추정은 포톤 정보를 이용하여 한 지점의 래디언스를 계산하는 과정이며, 포톤 매핑 기술에서 처음 사용되었다. 포톤 매핑에서는 래디언스 추정 과정에서 포톤 맵에 저장된 포톤 중 반경 안의 인접한 포톤을 검색하여 래디언스를 구하는 방식을 사용한다. PPM에서는 포톤 맵을 사용하지 않기 때문에 반복적으로 방출되는 포톤 중 반경 안의 포톤을 검색하여 래디언스를 구하며, 반경 축소를 거쳐 래디언스를 누적하면서 렌더링을 반복 수행한다. 기존 PPM의 래디언스 추정 과정에서 한 지점의 인커밍 래디언스(incoming radiance)는 수학식 2와 같이 계산된다.
여기서, 는 포톤 N(x) 개의 누적된 플럭스이고, f r 은 BRDF이며, 은 p번째 포톤의 플럭스이다. 이를 본 발명에서 제안한 ML-PPM에 맞게 수정한 래디언스 통합 방법을 설명한다. ML-PPM은 멀티 레벨 포톤 추적을 수행하기 때문에 수학식 3과 같이 각 레벨의 포톤으로 계산한 값(quantity)에 가중치 w i 을 적용해야 한다.
수학식 3은 최대 레벨이 n인 n-level PPM의 계산식이다. N i 는 방출된 포톤 중 반경 안에 들어온 각 레벨 포톤의 수이며, G n : x p 는 n-레벨 그룹의 p번째-포톤을 나타낸다. 각 레벨 마다 적용될 가중치인 w i 의 총 합은 1이며, 제어 값에 따라 선형적으로 증가 혹은 감소한다. 가중치 w i 를 결정하기 위해서는 제어 값 W k , W s , W a 를 이용한다. 먼저, 제어 값 W s 에 따른 가중치의 변화는 수학식 4로 표현된다.
수학식 4는 레벨이 m인 경우 W s 에 따라 w n 이 선형적으로 변함을 나타낸다. n은 포톤 추적의 전체 레벨 수이며, m Avg 는 레벨들의 평균값이다. W s 가 0인 경우 해당 표면이 직접광을 받기 때문에 w i 를 레벨에 따라 감소시켜 낮은 레벨의 포톤 래디언스에 높은 가중치를 부여한다. 반대로 W s 가 1인 경우 레벨에 따라 w i 를 증가시켜 높은 레벨의 포톤 래디언스에 가중치를 높게 준다. 수학식 5는 수학식 4에 제어 값 W k 를 추가하여 두 제어 값 W k 와 W s 에 따른 가중치의 변화를 나타낸 식이다. W k 의 값이 큰 경우 광선 추적 과정에서 광선이 여러 번의 반사, 굴절되었기 때문에 정교한 계산이 필요하다고 예상할 수 있다. 따라서, 레벨이 높을수록 가중치를 높여 화질을 향상시킨다. 이를 위해서는 포톤 레벨과 W k 에 따라 가중치의 값이 변하는 정도를 나타내는 사용자에 의해 정의된 계수(user defined coefficient) α을 적용해야 한다. 본 발명에서는 α을 0.06으로 정하여 가중치를 계산한다. W k 와 W s 에 따른 w n 의 변화는 다음과 같다.
수학식 5에서 q는 가중치 w n 을 정규화(normalize)하기 위한 요소이며, w n 의 총 합을 1로 하기 위하여 q를 0.01로 결정한다.
다음으로, 제어 값 W k 와 W s 를 적용한 에 제어 값 W a 를 곱한다(수학식 6). W a 는 충돌 지점 기반 AO로 구한 각 픽셀의 음영 값이며, 이를 가중치로 사용하면 영상에 확실한 음영이 나타나기 때문에 좀 더 사실적인 조명 효과를 표현할 수 있다. 충돌 지점에서 발사한 n개의 샘플 광선 중 차폐물에 닿지 않은 광선이 k개일 때 W a 는 k/n이며, W a 를 에 적용하여 를 계산하는 식은 다음과 같다.
마지막으로, 최종 래디언스를 계산하기 위해 래디언스 평가(radiance evaluation)를 수행한다. 이것은 기존 PPM의 래디언스 평가 과정과 같으며, 래디언스 평가의 를 가중치가 적용된 를 적용한 방법이다.
수학식 7에서 N emitted 는 방출된 모든 photon의 수이다. 포톤을 샘플링하는 충돌 지점 x를 중심으로 하는 반경 R(x) 안쪽 영역을 계산하기 위해 디스크(disc)를 이용하며, 영역 ΔA는 이다.
반경 축소 과정 역시 기존의 PPM과 유사하며, 그 수식은 다음과 같다.
수학식 8에서 R(x)는 각 충돌 지점의 반경이며, N'(x)는 모든 레벨의 포톤 중 반경 안의 포톤 수이다. M'(x)는 추가적으로 멀티 레벨 포톤 추적을 수행하는 경우 모든 레벨의 포톤 중 반경 안에 들어오는 포톤의 수이다. 수학식 8은 기존의 PPM에서 사용한 반경 축소 수식에서 포톤 수의 정의를 변경한 것이며, 포톤의 수를 합할 때 포톤의 레벨을 고려하지 않는다.
따라서, 본 발명에서는 다단계로 포톤을 방출하여 결과 영상의 화질을 개선하는 ML-PPM 기술을 제공한다. 이 방법은 처음 1번 수행되는 광선 추적과 함께 전처리인 제어 값 선정 과정을 통해 가중치를 계산하며, 기존의 PPM에 비해 노이즈가 적고 매끄러운 결과 영상을 얻을 수 있다.
본 발명의 실시예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 또한, 상술한 파일 시스템은 컴퓨터 판독이 가능한 기록 매체에 기록될 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
Claims (4)
- 전역 조명(global illumination)을 지원하는 그래픽 처리 장치에서의 다단계 점진적 포톤 매핑 방법에 있어서,
광선과 물체 표면의 충돌 지점(hit point)을 찾는 광선 추적 단계(ray tracing pass); 광원에서 포톤을 방출하여 상기 포톤의 진행 경로를 추적하는 포톤 추적 단계(photon tracing pass); 및 상기 포톤의 진행 경로를 이용하여 렌더링을 수행하는 렌더링 단계(rendering pass)를 포함하며,
상기 포톤 추적 단계는,
포톤 추적을 다수의 레벨로 나누어 수행하되, 각 레벨 마다 다른 수의 포톤을 방출하여 추적하는 단계와,
상기 각 레벨의 포톤으로 구한 플럭스(flux)에 적용할 가중치를 결정하기 위해 상기 물체 표면의 상태를 나타내는 제어 값을 찾는 단계와,
상기 제어 값을 이용하여 상기 각 레벨에 적용할 가중치를 결정한 후, 상기 가중치를 적용하여 렌더링을 위한 래디언스(radiance)를 추정하는 단계
를 포함하는, 다단계 점진적 포톤 매핑 방법. - 제1항에 있어서,
상기 각 레벨 마다 다른 수의 포톤을 방출하여 추적하는 단계는,
상기 포톤 추적을 m개의 레벨로 나누는 경우 광원에서 N1, N2, …, Nm(단, N1<N2<…<Nm)개의 포톤을 차례로 방출하는 것
을 특징으로 하는 다단계 점진적 포톤 매핑 방법. - 제1항에 있어서,
상기 물체 표면의 상태를 나타내는 제어 값을 찾는 단계는,
상기 광선 추적 단계에서 상기 광선이 반사 또는 굴절되는 회수를 나타내는 광선 풋프린트(ray's footprint)를 이용하여 제1 제어 값(W k )을 찾는 단계와,
상기 물체 표면 상의 충돌 지점이 상기 광원으로부터 직접광(direct light)을 받는지 또는 간접광(indirect light)을 받는지 여부에 따른 제2 제어 값(W s )을 찾는 단계와,
상기 충돌 지점 상에서 샘플 광선을 발사하여 세이딩(shading) 하는 충돌 지점 기반 AO(hit points based ambient occlusion)를 통해 픽셀 당 음영을 나타내는 제3 제어 값(W a )을 찾는 단계
를 포함하는, 다단계 점진적 포톤 매핑 방법. - 제3항에 있어서,
상기 래디언스를 추정하는 단계는,
상기 각 레벨에 대하여, 상기 제1 제어 값(W k )과 상기 제2 제어 값(W s )을 수학식 1에 적용하여 상기 가중치(wi)를 계산한 후, 상기 가중치(wi)를 수학식 2에 적용하여 인커밍 래디언스의 합을 계산하고, 상기 제3 제어 값(W a )을 수학식 3에 적용하여 최종 래디언스 값을 계산하는 것
을 특징으로 하는 다단계 점진적 포톤 매핑 방법.
[수학식 1]
(여기서, wn은 레벨이 m인 경우의 가중치, n은 포톤 추적의 전체 레벨 수, m Avg 는 레벨들의 평균 값, q는 가중치를 정규화 하는 인자, α는 레벨의 포톤과 제1 제어 값(W k )에 따라 가중치의 값이 변하는 정도를 나타내는 사용자 정의 계수이다.)
[수학식 2]
(여기서, 는 포톤 N(x) 개의 누적된 플럭스, f r 은 BRDF(Bidirectional Reflectance Distribution Function), 은 p번째 포톤의 플럭스, n은 포톤 추적의 전체 레벨 수이다.)
[수학식 3]
(여기서, 는 에 제3 제어 값(W a )을 곱한 값이다.)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110092449A KR101080508B1 (ko) | 2011-09-14 | 2011-09-14 | 다단계 점진적 포톤 매핑 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110092449A KR101080508B1 (ko) | 2011-09-14 | 2011-09-14 | 다단계 점진적 포톤 매핑 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101080508B1 true KR101080508B1 (ko) | 2011-11-04 |
Family
ID=45397230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110092449A KR101080508B1 (ko) | 2011-09-14 | 2011-09-14 | 다단계 점진적 포톤 매핑 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101080508B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106251393A (zh) * | 2016-07-14 | 2016-12-21 | 山东大学 | 一种基于样本消除的渐进式光子映射优化方法 |
US10297072B2 (en) | 2014-12-15 | 2019-05-21 | Samsung Electronics Co., Ltd. | 3D rendering method and apparatus |
US10510184B2 (en) | 2015-12-09 | 2019-12-17 | Samsung Electronics Co., Ltd. | Method and device for determining illumination of 3D virtual scene |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6563105B2 (en) | 1999-06-08 | 2003-05-13 | University Of Washington | Image acquisition with depth enhancement |
KR101030352B1 (ko) | 2010-07-30 | 2011-04-20 | 인하대학교 산학협력단 | 포톤 탐사법을 이용한 개선된 점진적 포톤 매핑 방법 |
-
2011
- 2011-09-14 KR KR1020110092449A patent/KR101080508B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6563105B2 (en) | 1999-06-08 | 2003-05-13 | University Of Washington | Image acquisition with depth enhancement |
KR101030352B1 (ko) | 2010-07-30 | 2011-04-20 | 인하대학교 산학협력단 | 포톤 탐사법을 이용한 개선된 점진적 포톤 매핑 방법 |
Non-Patent Citations (2)
Title |
---|
[논문] 정보과학회논문지 2010.2 |
[논문] 한국컴퓨터그래픽스학회 2008 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10297072B2 (en) | 2014-12-15 | 2019-05-21 | Samsung Electronics Co., Ltd. | 3D rendering method and apparatus |
US10510184B2 (en) | 2015-12-09 | 2019-12-17 | Samsung Electronics Co., Ltd. | Method and device for determining illumination of 3D virtual scene |
CN106251393A (zh) * | 2016-07-14 | 2016-12-21 | 山东大学 | 一种基于样本消除的渐进式光子映射优化方法 |
CN106251393B (zh) * | 2016-07-14 | 2018-11-09 | 山东大学 | 一种基于样本消除的渐进式光子映射优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9953457B2 (en) | System, method, and computer program product for performing path space filtering | |
Woo et al. | A survey of shadow algorithms | |
US7940269B2 (en) | Real-time rendering of light-scattering media | |
US7940268B2 (en) | Real-time rendering of light-scattering media | |
Wyman et al. | Interactive image-space techniques for approximating caustics | |
US20100085360A1 (en) | Rendering in scattering media | |
EP2674918B1 (en) | Integration cone tracing | |
JP2015228186A (ja) | 画像処理装置および画像処理方法 | |
Mara et al. | Toward practical real-time photon mapping: Efficient gpu density estimation | |
KR101447552B1 (ko) | 밉맵 레벨 선택 방법 및 이를 이용한 텍스처 매핑 시스템 | |
Engelhardt et al. | Epipolar sampling for shadows and crepuscular rays in participating media with single scattering | |
Szirmay-Kalos et al. | Volumetric ambient occlusion for real-time rendering and games | |
KR101080508B1 (ko) | 다단계 점진적 포톤 매핑 방법 | |
Davis et al. | Interactive refractions with total internal reflection | |
JP2013117992A (ja) | リアルタイム大局照明レンダリングシステム | |
KR101208826B1 (ko) | 깊이 텍스처의 등고선을 기반으로 한 실시간 다각형 앰비언트 오클루전 방법 | |
Hermes et al. | Global Illumination using Parallel Global Ray-Bundles. | |
KR101030352B1 (ko) | 포톤 탐사법을 이용한 개선된 점진적 포톤 매핑 방법 | |
Villegas et al. | Deferred voxel shading for real-time global illumination | |
Papadopoulos et al. | Realistic real-time underwater caustics and godrays | |
Damez et al. | Global Illumination for Interactive Applications and High-Quality Animations. | |
KR101210796B1 (ko) | 깊이 텍스처를 이용한 실시간 다각형 앰비언트 오클루전 방법 | |
Aranha et al. | Screen-space VPL propagation for real-time indirect lighting | |
Simion et al. | Practical gpu and voxel-based indirect illumination for real time computer games | |
Komarov et al. | Rendering the Real-Time Caustics with DirectX Raytracing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140818 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20151001 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160912 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |