검색 상세

샘플 쓰레드를 이용한 등방성 양방향반사분포함수 렌더링

Isotropic BRDF Rendering with Sample Thread

초록/요약

재질 렌더링(rendering)에서 물체 표면 한 점의 조명결과는 표면이 향하는 반구 상의 모든 입사 광선(incident ray)에 대한 양방향반사분포함수(BRDF: Bidirectional Reflectance Distribution Function) 값의 적분으로 계산된다. 일반적으로 다차원의 적분은 구현이 간단하여 몬테카를로(Monte-Carlo) 적분을 주로 사용한다. 이 몬테카를로 적분은 확률적(stochastically) 혹은 임의적(randomly)으로 선택한 입사 광선 샘플에 대한 양방향반사분포함수 값의 합으로 적분을 근사하는 방법이다. 몬테카를로 적분은 간단하게 사용하는 방법이지만 픽셀별로 독립적으로 샘플링하여 적분 값을 근사하는 방법이기 때문에 인접한 픽셀 간의 샘플집합이 무관하여 심각한 단점인 노이즈(noise)를 발생시킨다. 본 논문은 재질에 따른 연속적인 샘플 집합을 미리 구해 두고 그래픽 처리 장치(GPU: Graphics Processing Unit) 가속을 이용하여 실시간에 계산하는 노이즈 없는 새로운 몬테카를로 렌더링 기법을 제안한다. 본 논문의 주된 기여는 새로운 중요샘플링(importance sampling) 기법이며, 이 기법은 물체 표면에서 입사 광선들을 공간적으로 연속되도록 샘플링 하여, 인접한 픽셀 간의 샘플집합이 유사하도록 생성하는 것이다. 이는 시점 광선(eye ray) 방향을 균일하게 나눈 각각의 방향을 θ라고 하면, 한 θ에서 양방향반사분포함수 로브(lobe)로부터 유도된 확률밀도함수(PDF: Probability Density Function)를 이용하여 입사 광선 집합을 샘플링 한 뒤, 각 θ들에 맞는 입사 광선 샘플 집합을 차례대로 힘 기반으로 갱신한다. 마지막으로, 각 θ마다 갱신된 입사광선 샘플 집합에서 대응되는 입사광선 샘플들을 선형으로 연결하여 연속된 광선 커브를 생성한다. 이때, 생성한 연속된 광선 커브를 샘플 쓰레드(sample thread)라 명명한다. 렌더링에서 물체 표면 한 점의 조명을 이 샘플 쓰레드들에서 가져온 각각의 입사 광선 샘플들로 계산을 한다. 이때, 샘플 쓰레드에서 가져온 입사 광선 샘플은 물체 표면에서 연속성을 가지므로 몬테카를로 기법 렌더링에서 무작위 편차(random variation)에 의해 생기는 노이즈가 없어진다. 각 양방향반사분포함수에 따른 샘플 쓰레드 집합은 미리 계산하여 두고 사용함으로써 그래픽 처리 장치를 이용한 실시간 렌더링에 부담을 주지 않는다. 여러 실험 결과 측정 양방향반사분포함수를 통한 렌더링에서 100여개의 샘플 쓰레드로도 품질을 만족하며 실시간 렌더링이 가능하다.

more

초록/요약

Illumination at a surface point is formulated as an integral of a BRDF producted with the incident radiance over the hemisphere domain. A popular method to compute the integral is Monte Carlo integration, in which the surface illumination is computed as the sum of the integrand evaluated with stochastically sampled rays. Although its simple nature is practically attractive, it incurs the serious drawback of noise artifacts due to estimator variance. In this paper, we propose a novel noiseless Monte Carlo rendering algorithm running in real time on a GPU. The main contribution is a novel importance sampling scheme, which constructs spatially continuous sample rays over a surface. For each evenly spaced polar angle of the eye ray, denoted by θ, incident rays are sampled with a PDF(probability density function) derived from a target BRDF lobe. We develop a force-based update method to create a sequence of consistent ray sets along θ's. Finally, corresponding rays in the sequence of ray sets are linearly connected to form a continuous ray curve, referred to as a sample thread. When rendering, illumination at a surface point is computed with rays, each of which is given as a point on a sample thread. Because a thread provides a sample ray that continuously varies on a surface, the random variance of the illumination, causing visual noise during the Monte Carlo rendering process, is eliminated. A thread set is pre-computed for each BRDF to free the GPU from the burden of sampling during real-time rendering. According to extensive experiments, approximately 100 threads are sufficient for most measured BRDFs with acceptable rendering quality for interactive applications.

more

목차

제 1 장 서론 1
제 1 절 연구 배경및 연구 동기 1
제 2 절 연구 목적 및 내용 3
제 3 절 논문 구조 7
제 2 장 관련연구 9
제 1 절 양방향반사분포함수 재질 9
제 2 절 몬테카를로 렌더링과 중요샘플링 14
제 3 절 실시간 양방향반사분포함수 렌더링 16
제 4 절 노이즈 제거 17
제 3 장 몬테카를로 기법을 이용한 양방향반사분포함수 렌더링 18
제 4 장 샘플 쓰레드 생성 20
제 1 절 샘플 쓰레드 알고리즘 21
제 2 절 샘플 갱신 24
제 3 절 하이라이트(highlight) 보존 28
제 5 장 실시간 렌더링 31
제 1 절 샘플 쓰레드 텍스쳐 31
제 2 절 확률밀도함수에 따른 필터링 33
제 6 장 실험 결과 및 분석 37
제 1 절 실험 데이터 및 실험 환경 37
제 1 항 양방향반사분포함수 재질 데이터 37
제 2 항 실험 환경 38
제 2 절 샘플 쓰레드 결과 40
제 3 절 샘플 쓰레드를 이용한 렌더링 결과 43
제 4 절 렌더링 속도 비교 55
제 5 절 공간 자원 62
제 7 장 결론 및 향후 연구 과제 63

more