샘플 쓰레드를 이용한 등방성 양방향반사분포함수 렌더링 - 김순현 (The Graduate School, Ajou University, 2012)
재질 렌더링(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여개의 샘플 쓰레드로도 품질을 만족하며 실시간 렌더링이 가능하다.
학위논문(박사)아주대학교 정보통신전문대학원 :정보통신공학과,2012. 2
Keywords: BRDF; rendering; thread