그림 1: 이 보고서에서 다루는 많은 빛 렌더링 방법들은 품질과 속도 간의 절충 축에서 다양한 지점에서 좋은 결과를 보여줘요. 왼쪽의 이미지는 [REH* 11]을 사용해 실시간으로 렌더링되었고, 확산 반사 현상을 포착했어요 (Tobias Ritschel의 제공). 가운데 이미지는 렌더링에 52분이 걸렸고, 참여 매체에 대한 많은 빛 방법을 보여줍니다 ([ENSD12]에서 수정됨). 오른쪽 이미지는 약 46분 동안 Bidirectional Lightcuts [WKB12]로 렌더링된 광택 표면, 서브서피스 BSSRDFs, 세부적인 비등방성 부피 천 모델과 같은 다양한 현상을 결합했어요.
Abstract
최근 몇 년 동안 많은 빛 렌더링에 대한 관심이 증가하고, 글로벌 조명을 효율적으로 계산하는 방법으로서 상당한 진전이 있었어요. 많은 빛 공식은 문제를 통합된 수학적 틀로 제공하며, 전체 조명 전송 시뮬레이션을 많은 가상 광원으로부터의 직접 조명 계산으로 줄여요. 이 방법들은 확장성 면에서 타의 추종을 불허해요. 몇 초 만에 아티팩트 없는 이미지를 생성할 수 있지만, 시간이 지나면서 전체 솔루션으로 수렴하기도 하죠. 이 최첨단 보고서에서는 세 가지 목표가 있어요: 많은 빛 이론에 대한 쉽게 따라할 수 있는 입문 튜토리얼 제공, 주요 알고리즘 비교와 함께 주제에 대한 포괄적이고 통합된 조사 제공, 그리고 미래 연구를 동기 부여하고 안내할 비전을 제시하는 것이에요. 우리는 많은 빛 렌더링의 기본 개념뿐만 아니라 개선, 확장 및 응용에 대해서도 다룰 거예요.
1. Introduction
게임 개발, 영화 제작, 산업 디자인, 건축, 그리고 전자 상거래를 포함한 다양한 산업에서는 global illumination을 통한 현실적인 이미지 렌더링이 필요해요. 이 주제의 중요성은 이 분야에서의 수많은 연구 활동과 논문들로 강조되고 있답니다. 상당한 발전이 있었음에도 불구하고, 최신의 현실적인 렌더링 알고리즘조차도 여전히 많은 속도와/또는 이미지 품질 요구 사항을 충족시키지 못하고 있어요. Keller의 instant radiosity 알고리즘에서 파생된 many-light 렌더링 방법은 이 목표에 근접하며, 최근 몇 년간 많은 주목을 받았어요.
Many-light 방법은 많은 어려운 렌더링 문제에 간단한 해결책을 제공하기 때문에 매력적이에요. 이 방법의 핵심 통찰은 일반적인 빛 전송 문제를 많은 가상 광원으로부터의 직접 조명을 계산하는 더 간단한 문제로 근사할 수 있다는 점이에요. 이렇게 하면 many-light 알고리즘은 두 가지 뚜렷한 장점을 가지게 돼요. 첫째, global illumination 계산을 위한 통합된 수학적 프레임워크를 제공해요. 둘째, many-light 알고리즘은 매우 적응력이 뛰어나요. 동일한 알고리즘을 사용하여 다양한 품질과 성능 목표를 충족하도록 조정할 수 있답니다. 몇 개의 가상 광원을 사용하여 대략적인 근사를 통해, many-light 방법은 편향되었지만 인공물 없는 이미지를 몇 초 만에 생성할 수 있어요 (그림 1, 왼쪽 참조).
컴퓨터 게임과 같은 실시간 렌더링 애플리케이션에 매력적이에요. 반면, 충분히 많은 가상 소스와 고도로 확장 가능한 평가 알고리즘을 사용하면, 가상 소스 근사의 편향을 무시할 수 있을 정도로 줄일 수 있답니다. 이러한 알고리즘은 다른 비편향 방법과 비교해 훨씬 적은 시간 내에 결과를 만들어내고, 심지어 고품질 애플리케이션에서도 매력적인 선택이 되죠 (그림 1, 오른쪽을 보세요). 마지막으로, 이 알고리즘들은 모델, 조명, 재료의 복잡성에 걸쳐 예측 가능하고 신뢰할 수 있는 비용으로 빠르고 확장 가능하게 이미지를 생성하기 때문에, Autodesk 360 Rendering [Aut13]과 같은 대규모 렌더링 애플리케이션에 훌륭한 선택이 되었어요.
이 보고서는 many-light 렌더링의 최신 상태를 일관되게 요약하고 있어요. 기본적인 many-light 개념을 직접 체험할 수 있는 소개로 시작하고, 그 후에 기초 이론을 자세히 정의합니다. 이후, 관련 연구를 네 가지 주제로 분류하여 이 분야에 대한 포괄적인 개요를 제공합니다.
many-light generation,
rendering and scalability,
image fidelity, and
인터랙티브 렌더링을 위한 성능 고려사항이에요.
2. 기본 인스턴트 라디오시티 방법 소개
인스턴트 라디오시티(IR) 알고리즘 [Kel97]은 모든 다중 조명 방법의 기초가 돼요. 원래의 연구처럼, 우리는 이 알고리즘을 표면에 대한 방법으로 설명한 후, 3장에서 정확한 수학적 공식의 일부로 참여 매체를 포함하도록 일반화할 거예요. 먼저, 장면에서의 빛의 이동을 설명하는 렌더링 방정식 [Kaj86]으로 시작해요. 점 X에서 방향 w로 표면을 떠나는 방사휘도 L은 다음과 같이 표현돼요:
적분은 상반구 H⁺에서 이루어지고, fr은 양방향 반사 분포 함수(BRDF)를 나타내며, Lᵢ는 들어오는 방사휘도, Θ'는 w'와 X에서의 표면 법선 사이의 각도예요. 원칙적으로, 모든 (마르코프 체인) 몬테카를로 전역 조명 방법은 이 적분 방정식을 수치적으로 평가하고, 이를 재귀적으로 확장하여 빛이 광원에서 표면을 반사하여 카메라나 눈 센서로 이동하는 경로를 구성해요. 예를 들어, 경로 추적 [Kaj86]은 카메라에서 시작하는 광선을 추적하여 경로를 구성해요. 장면과의 각 교차점에서, 경로는 교차된 표면 위의 반구에서 무작위로 출사 방향을 샘플링하여 계속돼요 (보통 각 교차점에서 직접 조명도 추정돼요). 경로 추적을 기반으로, 양방향 방법은 카메라 하위 경로와 조명 하위 경로를 모두 추적한 후, 이를 (결정적으로) 연결하여 전체 경로를 형성해요.
그림 2: 다중 조명 알고리즘은 두 단계로 작동해요: 먼저, 여러 VPL을 배치하고 (왼쪽), 이를 사용해 장면을 조명하여 간접 조명을 근사해요 (오른쪽).
IR은 특정한 방식으로 두 개의 서브 경로 집합을 구성하는 양방향 방법이에요. 먼저, 임의의 길이를 가진 많은 수의 빛 서브 경로가 생성되고 저장됩니다. 이 서브 경로의 각 정점에 대해, 위치, 법선, 입사 방향, BRDF, 그리고 현재의 "플럭스"(즉, 광원에서 방출된 복사도가 정점까지의 경로를 통해 전달된 후 그 지점까지의 경로의 확률 밀도로 나눈 값)와 같은 완전한 지역 환경이 기록됩니다. 이렇게 저장된 데이터는 각 정점에서 모든 방향으로 산란되는 출사 조명을 계산하기에 충분하다는 것이 목표입니다. 만약 이게 가능하다면, 원래 경로의 개념을 버리고 대신 정점을 특이한 형태의 점 광원으로 모델링할 수 있어요. 이들은 장면 내의 실제 광원에 해당하지 않기 때문에, 우리는 이를 가상 점 광원(VPLs)이라고 부릅니다.
IR 알고리즘을 완성하기 위해, 두 번째 단계에서는 각 픽셀에 대해 카메라 서브 경로가 구성됩니다. 빛 서브 경로가 임의로 길기 때문에, 길이가 1인 카메라 경로만 고려해도 충분해요. 그런 다음, 모든 양방향 알고리즘처럼 IR은 이 카메라 서브 경로의 정점을 빛 경로의 정점과 연결하여 전체 경로를 형성합니다. 하지만 VPL 생성 전처리 덕분에, 이 연결 단계는 VPL에 의해 첫 번째 카메라 히트 포인트에 직접 조명이 이루어지는 것과 우아하게 동일합니다.
두 단계로 이루어진 IR 알고리즘은 일반적인 양방향 방법보다 두 가지 이유에서 더 효율적이에요. 첫째, 각 VPL이 모든 (또는 많은) 이미지 픽셀에서 표면 점을 비추기 때문에, VPL을 생성하는 데 투자한 노력이 잘 분산되거든요. 이는 예를 들어, photon mapping과 유사한 sub-path 재사용의 한 예랍니다 [PH10]. 게다가, 하나의 VPL 세트를 사용해 모든 표면 점을 비추면 픽셀 값이 상관관계를 가지게 돼요. 이 속성은 전통적인 Monte Carlo 접근법에서 각 픽셀에 대해 독립적인 경로를 구축하는 것에 비해 이미지 노이즈를 시각적으로 억제하는 데 매우 효율적이랍니다. 이 후자의 장점은 수치적 오류를 줄이는 것과는 거의 관련이 없고, 순전히 지각적인 특성 때문이에요.
기본적인 many-light 방법은 다음과 같이 요약할 수 있어요 (전체 수학적 배경은 3장을 참조하세요):
1단계 VPL 생성 (4장)
장면에서 주 광원 중 하나를 무작위로 선택하고, 무작위 위치 X와 방향 w를 샘플링해요 (직접 조명이 처리되지 않는 경우 이 위치에 VPL을 생성해요).
광선을 X+tw로 추적해요. 만약 표면과 교차하면, 이 교차 지점에 VPL을 생성합니다.
경로를 종료할지 말지를 러시안 룰렛을 사용해 무작위로 결정해요. 계속 진행하기로 했다면, 나가는 방향을 샘플링하고, BRDF와 방향에 따라 경로의 투과율을 업데이트한 후 추적을 계속해요.
2단계 VPL을 사용한 렌더링 (섹션 5와 6)
표면의 한 지점을 셰이딩할 때는 모든 VPL을 반복해서 확인해요. 그 중에서 조명이 차단되지 않은 경우, 해당 기여도를 계산하면 돼요.
참여 매체. 이 원리는 참여 매체가 있는 장면에서도 비슷하게 작동해요. 이를 위해 VPL 추적은 매체 내에서의 빛 산란을 고려해야 하고, 그 결과 VPL이 표면에 위치하지 않을 수도 있어요. 매체 내의 한 지점에서 다중 산란은 모든 VPL로부터의 단일 산란(즉, 직접 조명) 기여도를 합산하여 계산할 수 있어요. 매체에서는 이진 가시성이 투과율로 대체된다는 점을 유의하세요. 공간을 통과하는 빛은 흡수되거나 산란될 수 있거든요.
원래의 인스턴트 라디오시티 방법 [Kel97]은 전역 조명 문제에 대한 완전한 해결책은 아니었어요. 이 특정한 경로 구성 전략을 선택한 데에는 장단점이 있어요. 대부분의 변형 방법들이 공통적으로 구현이 비교적 간단하고 빠른 수렴, 점진적 렌더링, 예측 가능한 렌더링 비용을 제공해요. 반면에 IR 방법은 특이점에 취약하고 (장면의 모든 빛 에너지가 VPL 위치로 수축된다고 상상해 보세요), 많은 수의 빛 하위 경로가 필요한 장면, 예를 들어 광택 있는 표면이 있는 장면에서는 어려움을 겪어요. 이러한 모든 측면(그리고 더 많은 것들)이 이 분야의 연구에서 다루어졌고, 이 글에서 논의되거나 언급되고 있어요.
3. 다수의 광원을 이용한 전역 조명 렌더링
이제부터는 instant radiosity 알고리즘에 대한 좀 더 공식적인 정의를 소개하고, 참여 매체도 고려해 볼게요. 우리의 최종 목표는 카메라 센서에 도달하는 입사 복사의 적분을 통해 픽셀 값을 계산하는 것이에요. 이때 픽셀 영역뿐만 아니라 카메라 조리개도 선택적으로 포함할 수 있답니다.
여기서는 특정 지점 X₀에서 특정 방향 w로부터의 입사 복사 Lᵢ(x₀, ) 계산에 초점을 맞출게요. 참여 매체가 없는 장면에서는, 이는 단순히 표면에서의 출사 복사 Lₛ(XₛX₀)와 같아요.
그림 3: 방향 w로부터 X0에서 눈에 도달하는 복사 Lᵢ는 눈 광선을 따라 산란된 빛을 적분하고, 가장 가까운 가시 표면 지점에서 눈을 향해 반사되거나 투과된 빛을 더하여 계산됩니다.
X0에서 방향 W를 따라 볼 수 있는 지점 Xs에서요. 참여 매체가 있는 장면에서는, 이 출사 복사는 X₀와 Xs 사이의 투과율 τ(X₀,Xₛ)에 의해 감쇠되어야 해요. 게다가, X0Xs 선을 따라 산란된 복사 Lᵥ의 적분을 추가합니다 (그림 3 참조): Lᵢ(x₀, ) = + (1) 0, 여기서 Xv = X₀입니다. 실제 상호작용은 확률적 샘플링 과정을 통해 생성되며, 카메라에서 시작하여 X0, X1, X2로 표시됩니다 (그림 4 참조).
3.1. 빛 경로에 대한 적분으로서의 출사 복사율
표면 지점에서의 출사 복사율, 즉 위의 방정식에서 Lₛ로 표시된 값은 2장에서 보여준 렌더링 방정식에 의해 주어져요. 매질 내에서의 산란에 의한 출사 복사율 Lv도 비슷하게 정의되며, 자세한 내용은 [PH10]을 참고하세요. 이 방정식을 k번 재귀적으로 확장하면 (여기서는 유도 과정은 생략할게요), X₁에서의 출사 복사율에 대한 일반적인 공식을 얻을 수 있어요.
이 공식은 정확히 k - 1번의 반사(즉, 매질 내 산란 사건 및/또는 표면에서의 반사/굴절 사건)를 포함한 빛의 이동에 해당하는 경우를 다루죠. X1에서의 반사도 포함해서요: (2) 일반화된 표기법 덕분에, 그림 5에 정의된 Eq. (2)는 매질에서뿐만 아니라 표면에서의 출사 복사율에도 사용할 수 있어요. 그래서 이제 Lᵥ와 Lₛ를 구분할 필요 없이 출사 복사율을 단순히 L로 표시하면 됩니다. 미분 측정 dµ(x)는 경로 꼭지점 X가 표면 지점일 때 미분 면적 dA(x)에 해당해요. X가 부피 지점이라면, dµ(x)는 미분 부피 dV(x)에 해당합니다. 적분 함수에서, Le(Xₖ)는 Xₖ에서 Xₖ-1로 방출된 복사율이고, Tⱼ는 빛 경로 Xj Xₖ의 투과율로, 일반화된 산란 분포 함수 f(xᵢ) (xₖ를 제외한 각 꼭지점에 대해 하나의 항), 일반화된 기하학 G(x,y) 및 일반화된 가시성 V(x,y) 항 (각 구간에 대해 하나의 항)의 곱으로 정의돼요. 그림 4에서 예시를, 그림 5에서 이 용어들의 정의를 확인할 수 있습니다.
Dachsbacher, Křivánek, Hašan, Arbree, Walter, Novák / 다중 조명 방법을 이용한 확장 가능한 현실적 렌더링
그림 4: Eq. (2)에서의 경로 투과율 T₁ₖ는 경로 꼭지점에 대한 일반화된 산란 함수 f(xᵢ)와 경로 구간에 대한 일반화된 기하학 G(x,y) 및 가시성 V(x,y) 항의 곱입니다.
Eq. (2)는 정확히 k - 1번의 반사 후의 출사 복사율을 제공합니다. 완전한 전역 조명 해법은 모든 길이의 경로에서의 복사율의 합과 같은 평형 복사율에 의해 주어집니다:
여기서 zero-bounce radiance는 방출된 radiance를 의미해요. 한 번의 반사로 인한 radiance는 표면의 직접 조명이나 매체의 단일 산란에 해당하죠. 간접 조명과 다중 산란은 한 번 이상의 빛 반사를 의미해요.
참고로, 지금까지의 정의는 빛의 전파를 설명하는 경로 적분 공식의 확장과 일치한답니다 [Vea97]. 이는 참여 매체를 고려한 것이에요 [JM12]. 차이점은 경로의 일부를 고정된 상태로 두고 (특히 꼭짓점 X₀와 방향 X₀X₁) 나머지 경로 공간의 부분만 적분한다는 점이에요.
그림 5: 경로 투과율과 일반화된 산란, 기하학, 가시성 항의 정의.
경로 투과율 Tⱼ는 일반화된 산란 함수 f(xᵢ), 기하학적 항 G(x,y), 가시성 V(x,y) 항의 곱으로 이루어져요. f(xᵢ)는 Xᵢ₊₁에서 Xᵢ로 빛이 이동하여 Xᵢ-1 방향으로 산란될 확률을 설명해요. 이는 표면 점에서는 BRDF fr로 정의되고, 매체 내의 점에서는 위상 함수 ƒₚ와 산란 계수 σₛ의 곱으로 정의돼요. 기하학적 항 G(x,y)는 경로 꼭짓점 쌍 사이의 기하학적 결합을 나타내요. X가 표면에 있을 경우, Dx(y)는 max(0,cosΘ)로, Θ는 X에서 y로의 방향과 표면 법선 사이의 각도에요. X가 부피 점일 경우, Dx(y)는 1로 줄어들어요. 마지막으로, V(x,y)와 τ(x,y)는 각각 X와 y 사이의 상호 가시성과 투과성을 나타내요.
그림 6: 셰이딩 포인트 (x₁)를 VPL (X₂)과 연결할 때, 두 점 사이의 상호 기하학적 구성 G(x₁,x₂)와 가시성 V(x₁,x₂)를 고려하여, 해당하는 일반화된 산란 함수 ƒ(x₁)과 f(x₂)를 평가해야 해요.
3.2. VPL을 사용한 Radiance Integral 평가
대부분의 광 전송 시뮬레이션 알고리즘은 Eq. (2)의 적분을 평가하기 위해 Monte Carlo 사분법을 사용해요. 이는 어떤 결합 확률 분포 p(x₂,...,xₖ)에서 무작위로 빛 경로 X₂ Xₖ을 선택하고, 다음과 같은 Monte Carlo 추정기를 평가하는 것을 의미해요.
(4) 실제로는, N개의 무작위 경로를 생성하고 이 추정기가 제공하는 기여를 평균내요. 명확한 표기법을 위해 이 사실은 공식에서 생략했어요.
Keller의 [Kel97] 즉시 라디오시티 알고리즘에서의 주요 관찰은 이거예요: 우리는 Eq. (4)의 추정기 평가를, 우리가 radiance를 계산하는 정점 X1과 독립적인 항과, 그림 6에 설명된 나머지 항으로 나눌 수 있다는 거죠.
이렇게 하면, 단일 경로 접두사 X₂ Xₖ를 여러 다른 점 x₁에서의 조명을 계산하는 데 재사용할 수 있어서 경로 재사용이 효율적이에요. 구체적으로, 즉시 라디오시티는 광원(Xₖ)에서 시작하는 랜덤 워크를 사용하여 X₂ Xₖ 형태의 여러 경로 접두사를 미리 계산하고, 그 끝 정점 X2를 가상 점광원으로 저장해요. 각 VPL과 함께 Eq. (4)에서 부분적으로 평가된 추정기도 저장하는데, 이는 보통 VPL "flux"라고 불려요(구체적인 공식은 4장에서 제공돼요). VPL과 함께 저장되는 다른 정보로는, 주어진 점 X1을 "조명"하거나 "연결"하는 데 필요한 항들, 즉 Eq. (5)의 항들을 평가하는 데 필요한 것들이 포함돼요. 여기에는 VPL 위치 X2에서의 산란 함수에 대한 참조, 입사 방향 X3-X2, 그리고 X₂가 표면에 있을 경우 표면 법선 nx2가 포함돼요. 비등방성 BRDF를 가진 표면의 VPL의 경우, 접선 벡터도 저장해야 한다는 점을 유의하세요.
실제로, 표면 VPL X₂에서의 BRDF가 Lambertian이라고 가정하는 경우가 많아요. 즉, fr(x₁,x₂,x₃)가 X₁과 X₃에 독립적이라는 뜻이죠. 이 경우, 입사 방향 X₃X₂를 저장할 필요가 없고, VPL "flux" [W]에 BRDF 값 [sr⁻¹]을 미리 곱해서 VPL "intensity" [W.sr⁻¹]를 얻을 수 있어요. VPL을 flux나 intensity로 생각하는 것보다, 식 (4)의 추정자에 대한 부분 평가로 생각하는 것이 더 간단하고 오류가 적답니다.
4. Virtual Point Lights 생성
이 섹션에서는 VPL을 분배하기 위해 사용되는 일반적인 랜덤 워크 절차를 설명하고, 장면에서 시각적으로 중요한 부분으로 VPL을 유도하는 몇 가지 변형에 대해 논의할 거예요.
4.1. 랜덤 워크 VPL 분배
장면에 VPL을 분배하기 위해, photon mapping에서 광자를 분배할 때 사용하는 것과 동일한 랜덤 워크 절차를 사용할 수 있어요 [Jen01]. 우리는 N개의 광 경로를 추적하는 것으로 시작하는데, 이는 M개의 VPL을 생성해요. 각 광 경로의 반사(버텍스)마다 하나씩이죠. VPL 추적 절차는 광원에서 시작되기 때문에, 잠시 동안 경로 버텍스 인덱싱 방식을 변경해서, 광원에서 0으로 시작하고 각 산란 이벤트마다 1씩 증가시키는 것이 더 자연스러워요. 이전 표기와 혼동을 피하기 위해, 광원에서 인덱싱된 경로 버텍스를 V로 표시합니다.
랜덤 워크는 먼저 빛의 출발점에서 경로의 첫 번째 정점을 생성하는 것으로 시작해요. 이때 확률 밀도 함수(PDF) p(v₀)를 사용하며, 보통 방사 출사율에 비례하게 설정합니다. 그 다음 과정은 다음과 같아요.
1. Initialize j := 0.
2. 다음 경로 정점을 샘플링해요. 먼저, 방향 wⱼ를 PDF p(wⱼ)로부터 샘플링합니다. 이 PDF는 빛의 출발점의 방향성 방출에 비례하거나, 다른 정점의 경우 일반화된 산란 함수에 비례합니다. 참여 매체가 없는 장면에서는 이 방향이 다음 경로 정점을 고유하게 결정해요. 매체를 고려할 때는, 광선 Vj를 따라 산란 거리 tj를 샘플링해야 해요. 보통 매체 투과율에 비례하는 PDF p(tⱼ)를 사용합니다. 균질 매체의 경우 PDF에 대한 해석적 표현이 존재하고 [LW96], 그렇지 않으면 Woodcock 추적법을 사용할 수 있어요 [WMHT65]. 샘플링된 거리가 wⱼ를 따라 가장 가까운 표면을 넘어서면, 다음 경로 정점 Vj+1은 표면 교차점이 됩니다. 그렇지 않으면, 다음 정점은 매체 내에 위치하게 돼요.
3. VPL을 생성해요. 생성된 경로 정점 Vj+1의 위치에 가상 점광원(VPL)을 저장합니다. VPL의 "플럭스"는 다음과 같이 계산해요.
앞서 언급했듯이, 각 VPL에 대해 VPL 위치에서의 산란 함수 f(vⱼ₊₁), 입사 방향 wⱼ, 그리고 Vj+1이 표면에 위치할 경우 표면 법선도 함께 저장해요.
4. 경로를 종료해요. 러시안 룰렛을 사용해서 확률 (1-qⱼ+1)로 랜덤 워크를 종료합니다.
그림 7: 이 그림은 랜덤 워크를 구성할 때 VPL의 "flux"를 계산하는 데 필요한 항목들을 보여줘요.
확률 qj+1은 보통 표면이나 부피적 점 Vj+1의 반사율에 비례해요 [PH10].
5. 랜덤 워크가 러시안 룰렛을 통과하면, j := j+1로 설정하고 2단계로 돌아가세요.
모든 랜덤 워크가 끝나면, 각 VPL의 "flux"를 생성된 총 빛 경로 수 N으로 나눠요.
원래의 표기법과 경로 정점 인덱싱 방식으로 돌아가면, 위에서 설명한 랜덤 워크 하나가 X2X3, X2X3X4 등의 경로 접두사를 만들어내요. 이 접두사는 식 (4)의 추정치를 평가하는 데 사용할 수 있답니다. 사실, 위 절차로 생성된 VPL의 "flux"는 X1과 독립적인 추정치의 모든 항목에 정확히 대응해요.
4.2. 개선된 VPL 생성
이제 주어진 카메라 뷰에서 가장 필요한 곳에 VPL을 생성하는 다양한 방법에 대해 이야기해 볼게요. 이런 대체 VPL 분포 방법을 개발해야 하는 이유는, 앞서 설명한 기본 VPL 추적 알고리즘이 종종 장면의 보이는 부분에 크게 기여하지 않는 영역에 많은 VPL을 생성할 수 있기 때문이에요. 예를 들어, 카메라에 보이는 부분이 작은 큰 환경을 생각해 보세요. 게다가, 기본 VPL 추적 알고리즘이 오목한 기하학적 특징을 따라 생성하는 VPL의 밀도는 지역적 상호 반사를 충실히 렌더링하기에 보통 충분하지 않답니다.
4.2.1. 중요하지 않은 VPL의 거부
Georgiev와 Slusallek [GS10]이 제안한 간단한 VPL 분포 개선 방법은 이미지에 크게 기여하지 않는 VPL을 거부하는 것이에요. 이 알고리즘의 목표는 이미지에 대략적으로 비슷한 총 기여를 하는 여러 VPL을 생성하는 것이랍니다. 알고리즘은 앞서 설명한 VPL 추적 알고리즘을 사용해 후보 VPL을 생성해요. 각 후보 VPL에 대해 총 이미지 기여도 Φᵢ를 추정합니다. 그런 다음, 실제 VPL 기여도 Φᵢ를 목표 "평균" 기여도 Φᵥ로 나눈 비율로 주어진 확률 pᵃᶜᶜ로 VPL을 수용해요:
수용되면, VPL 플럭스를 pᵃᶜᶜ로 나누어 편향되지 않도록 해요.
그림 8: 표준 VPL 샘플링(왼쪽)과 VPL 거절 샘플링 알고리즘[GS10](오른쪽)으로 동일한 수의 VPL로 렌더링된 장면입니다. 이미지 제공: Iliyan Georgiev.
"평균" VPL 기여도 Φᵥ를 추정하는 간단한 방법은 여러 개의 파일럿 VPL을 실행하고 저해상도 이미지를 렌더링하는 거예요. 애니메이션을 렌더링할 때는 이전 프레임의 정보를 사용할 수도 있답니다. 후보 VPL의 이미지 기여도 Φᵢ를 추정하려면 몇 개의 픽셀만 선택해서 저해상도 이미지를 렌더링하면 돼요. Φᵥ와 Φᵢ의 추정치는 특별히 정확할 필요는 없어요. 그림 8은 이 알고리즘의 결과 예시를 보여줍니다.
4.2.2. Metropolis Instant Radiosity
위에서 설명한 거절 샘플링 접근법은 간단하지만 중요한 단점이 있어요. Segovia 등[SIP07]이 제안한 Metropolis Instant Radiosity 알고리즘은 독립적인 랜덤 워크 기반의 표준 VPL 추적 알고리즘을 Metropolis-Hastings 샘플러로 대체하여 이 문제를 해결합니다.
광원이 카메라에 연결되는 경로를 생각해 보세요. 3장에서 논의한 것처럼, 카메라에서 두 번째 정점은 VPL로 해석될 수 있어요. 이 경로가 빛을 카메라에 연결하기 때문에, 이렇게 생성된 VPL은 중요한 이미지 기여도를 가질 가능성이 높아요. 이제 Metropolis Light Transport 알고리즘[Vea97]에서처럼 Metropolis-Hastings 절차를 사용하여 모든 가능한 빛 경로의 공간을 탐색할 수 있습니다. 경로가 변형될 때마다, 변형된 경로의 카메라에서 두 번째 정점은 새로운 VPL을 생성합니다. Segovia 등[SIP07]은 이렇게 생성된 모든 VPL이 이미지에 동일한 총 플럭스를 기여한다고 보여줍니다.
논의. 매우 다르지만, VPL 거부 알고리즘 [GS10]과 Metropolis Instant Radiosity [SIP07] 모두 각 VPL이 이미지에 대략 동일한 기여를 하는 VPL 세트를 생성합니다. 이로부터, 두 알고리즘이 생성한 VPL 세트가 유사한 품질을 가질 것이라고 예상할 수 있습니다. 복잡한 장면에서는, 빛이 카메라에 도달하기 위해 여러 번 반사되는 경우, 거부 알고리즘이
많은 VPL을 거부하기 때문에 성능이 저하될 수 있습니다. 반면, VPL 거부 접근법은 간단하지만, Metropolis Instant Radiosity는 상당한 구현 노력이 필요합니다. 마지막으로, 두 알고리즘 모두 VPL 분포가 전체 이미지에 대한 VPL의 기여에 의해 결정되기 때문에 지역적 상호 반사 문제를 해결하지 못합니다.
4.2.3. Sampling VPLs from the Camera
지금까지 논의된 VPL 분포 알고리즘에 의해 생성된 VPL의 밀도는 일반적으로 기하학적 공동에서 지역 간섭 반사를 충실히 렌더링하기에 불충분합니다. 이 문제를 해결하기 위해서는 광원에서 시작하는 대신 카메라에서 경로를 추적하여 VPL을 분배하는 것이 더 합리적입니다. 이 접근 방식은 렌더링될 이미지에 중요한 위치에서 VPL을 생성할 수밖에 없지만, 해결해야 할 몇 가지 중요한 기술적 문제가 있습니다: 첫째, 이러한 VPL을 광원에 명시적으로 연결하여 완전한 빛 전송 경로를 형성할 수 있도록 해야 합니다. 둘째, VPL 플럭스를 계산하는 것은 특정 VPL 위치를 생성하는 확률 밀도의 평가를 포함하며, 이는 VPL이 카메라에서 생성될 때 더 복잡하고 비용이 많이 듭니다.
카메라에서 경로를 추적하여 VPL을 생성하는 아이디어는 [SIMP06a]에서 양방향 즉각적인 라디오시티라는 이름으로 등장했습니다. 이것은 Davidovič et al. [DKH* 10]에 의해 사용되었으며, 그들은 카메라에서 생성된 VPL을 지역 VPL(광원에서 경로를 추적하여 생성된 글로벌 VPL과 대조적으로)이라고 언급합니다. 우리는 후자의 접근 방식을 5.3절에서 더 자세히 설명합니다.
5. Lighting in Many-Light Methods
VPL이 생성되면, many-light 알고리즘은 이를 사용해 장면을 조명해요. 이는 장면 내 여러 위치에서 Eq. (2)의 방출 복사를 Eq. (4)의 추정기를 사용해 평가하는 것을 의미해요. 3장에서 논의한 것처럼, 이는 모든 M개의 VPL을 합산하여, Eq. (5)의 항목들로 가중치를 준 "flux" Φᵢ를 더하는 방식으로 할 수 있어요. 여기서 x½ⁱ는 i번째 VPL의 위치랍니다.
위의 방정식은 many-light 방법의 핵심 부분으로, 꽤 간단하고 효율적으로 평가할 수 있지만, 자세히 살펴보면 이 알고리즘의 큰 문제가 드러나요. VPL을 표면 점에 연결할 때 사용하는 기하학적 항 G(x,y)에는 특이점이 포함되어 있어요. 이는 음영 점과 VPL 사이의 거리의 제곱 역수로, 거리가 임의로 작아질 수 있거든요. 극한에서는 0이 될 수 있어요. 그래서 VPL이 음영 점에 미치는 기여도, 그리고 추정기의 분산이 무한정 커질 수 있답니다. 실제로는, 이는 높은 강도의 얼룩으로 보이는 산만한 아티팩트 때문에 렌더링 품질이 저하되는 결과를 초래해요 (그림 9).
그림 9: 기하학적 항의 특이점을 고려하지 않으면, 높은 강도의 얼룩이 생겨 렌더링 품질이 저하됩니다 (왼쪽). 여러 기술이 이 문제를 해결하여 이러한 아티팩트가 없는 이미지를 생성합니다 (오른쪽). 이미지 제공: Edgar Velázquez-Armendáriz.
간접 조명의 추정치를 항상 동일한 VPL 세트에 연결하여 상관시키는 것은 알고리즘의 수학적 정확성을 손상시키지 않아요. 추정치는 편향되지 않지만, 일부 점 X₁의 경우 분산이 매우 높아서 렌더링에 구조적인 아티팩트가 발생할 수 있어요.
이러한 아티팩트를 피하기 위한 간단하고 인기 있는 방법은 기하학적 항을 사용자 정의 최대값 b로 제한하는 거예요. 이를 제한된 기하학적 항이라고 부를게요.
G(x,y)를 Eq. (8)의 추정식에서 G₆(x,y)로 대체하면 아티팩트를 피할 수 있지만, 단거리 광 전송을 부분적으로 억제하게 되어서 편향된 해를 얻게 돼요. 제한된 기하학적 항을 사용해 렌더링한 이미지는 특히 움푹 들어간 곳이나 모서리에서 어두운 영역이 생기거든요(예시는 그림 10을 참고하세요). 게다가, 선택적으로 광 전송을 억제하면 재질의 외관에 심각한 영향을 미칠 수 있어서 피해야 해요 [KFB10].
100%
5.1. 최종 수집을 이용한 편향 보정
Kollig과 Keller [KK04]는 편향 B(x₁ X₀), 즉 제한으로 인해 제거된 에너지를 원래의 기하학적 항과 제한된 기하학적 항으로 얻은 전송의 차이로 표현해요. Eq. (8)을 조정해서 제거된 VPL 조명만을 추정하면, 잔여 기하학적 항 Gᵣ(x,y)를 다음과 같이 정의할 수 있어요:
편향을 보정하기 위해 Kollig과 Keller는 보상 항을 평가하는데, 이는 렌더링 방정식과 매우 유사해요. 유일한 차이점은 원래의 기하학적 항이 Gr(x,y)로 대체된다는 점이에요.
그림 10: 제한되지 않은 VPL 렌더링(왼쪽)과 제한된 VPL 렌더링(가운데)을 편향 없는 해(오른쪽)와 비교한 모습입니다.
이 보상은 VPL 조명을 제거하고 나서, 그 결과를 제한된 VPL 조명 결과에 추가해요. 저자들은 보상 평가를 위해 지역화된 최종 수집 방법을 제안했어요. 주변 표면에 광선을 쏘고, 교차점에서 입사광을 추정한 다음, 제거된 VPL 조명에 해당하는 에너지만 원래의 셰이딩 지점으로 되돌려 보내는 방식이에요. 보상이 지역화되어 있지만, 입사광은 VPL을 포함한 모든 광원의 기여를 더해서 추정해요. 보상 중에도 제한이 발생할 수 있어서, 이 기술은 재귀적이고 빠르게 경로 추적으로 변질될 수 있어요(그림 11 참조). Raab 등 [RSK08]은 이 전략을 확장해서 참여 매체가 있는 장면을 처리했어요. 편향 보상을 통해 비편향 결과를 얻는 비용이 제한된 전송의 계산 시간을 몇 배 초과할 수 있어서, 실용적인 응용에는 덜 매력적일 수 있어요.
5.2. 대략적인 편향 보상
많은 광원 접근법의 주요 특징 중 하나인 짧고 예측 가능한 렌더링 시간을 유지하기 위해, 두 가지 출판물에서는 잔여 전송의 통합을 더 효율적으로 만들어서 편향 보상의 높은 계산 비용을 해결하고자 했어요.
그림 11: 인근 VPL의 기여가 제한되어 있기 때문에 (보라색 화살표) (왼쪽), Kollig과 Keller [KK04]는 잔여 광 전송을 수집하기 위한 새로운 경로 세그먼트를 구성하고 (중간), 정점이 제한이 발생하는 영역 밖으로 나갈 때까지 재귀적으로 계속합니다 (오른쪽).
Novák 등 [NED11]은 한 번 계산된 제한된 솔루션에서 추가적인 광 전송을 계산하여 누락된 에너지를 복원할 수 있다고 언급했어요. 그들의 접근 방식을 직관적으로 설명하기 위해, 우리는 렌더링 방정식의 재귀적 형식을 사용할 것이고, 일반화된 전송 연산자 T를 정의하기 위해 연산자 표기법을 사용할 거예요 (Arvo 등 [ATS94]의 정신을 따라).
또한, 우리는 경계가 있는 전송 연산자 Tb와 잔여 전송 연산자 Tr을 정의해요. 이 둘은 T와는 다르게 각각 G₆(x,y)와 Gr(x,y)로 대체된 기하학적 항에서만 차이가 나요. VPL이 장면에서 방출을 제외한 모든 빛을 나타낸다고 가정하면, 임의의 점에서 나가는 복사는 간결하게 표현할 수 있어요:
위 유도 과정의 첫 번째 단계는 잔여 간접 조명의 근사치 TrΩ를 정확한 해당 광 전송으로 대체한 다음, 방정식을 재귀적으로 확장하는 것이에요. 결과적으로, 전체 전송은 직접 조명과 경계 전송 TbL만으로 계산할 수 있음을 보여줘요. 하지만, 잔여 전송 연산자를 반복적으로 적용하려면 먼저 저장해야 해요. Novák 등은 경계 전송을 스크린 공간에 저장하는 방법을 선택했어요. 이 방법은 필터와 같은 연산을 사용하여 잔여 에너지를 효율적으로 계층적으로 계산할 수 있게 해주죠. 단점은 보이지 않는 표면에서의 보상 에너지가 부족하고, 이미지에서 샘플링이 부족한 경사각에서 보이는 표면은 특별한 처리가 필요하다는 점이에요.
Engelhardt 등 [ENSD12]은 참여 매체에서의 편향 보상을 다루어요. 이들의 접근 방식은 Raab 등 [RSK08]의 원래 경로 추적 기반 방법에서 영감을 받았어요. 왜냐하면 부피에서는 나중에 보상하기 위해 경계 전송을 저장하는 것이 비현실적이기 때문이에요. 그들은 잔여 에너지를 신중하게 분석하고, 시각적 품질에 거의 영향을 미치지 않으면서 렌더링 속도를 크게 높이는 근사치를 제공해요. 먼저, 두 번의 보상 단계로 거의 모든 잔여 에너지를 회복할 수 있음을 보여주고, 보상 중에 국부적으로 균질한 매체를 가정할 수 있음을 증명해요. 그들은 새로운 보상 정점에 대한 가시성 테스트를 생략할 수 있어 GPU 친화적이며, 마지막으로 VPL에 연결할 때 분산을 줄이기 위한 최적화된 샘플링 전략도 논의해요.
5.3. Bias Compensation Using Local Lights
앞서 언급한 보정 기법들과 유사하게, Davidovič 등 [DKH*10]은 빛의 이동을 경계가 있는 글로벌 컴포넌트와 잔여 로컬 컴포넌트로 나누어요.
글로벌 컴포넌트는 장거리 빛의 이동을 담당하고, 로컬 컴포넌트는 단거리 반사와 간접적인 광택 하이라이트에 해당해요. 이들은 각 컴포넌트의 특정 구조를 활용해서 각각에 맞춘 솔루션을 설계했답니다. 구체적으로, 가능한 많은 에너지를 글로벌 컴포넌트에서 처리하고, 로컬 컴포넌트에는 로컬 반사만 남겨두는 방식이에요. 이 접근법은 일반적인 글로벌 조명 솔루션보다 훨씬 효율적이랍니다.
글로벌 컴포넌트는 빛의 원천에서 추적된 고전적인 "글로벌" VPLs로 계산돼요. 많은 수의 글로벌 VPLs를 효율적으로 처리하기 위해, 6장에서 설명된 확장 가능한 다중 조명 방법 중 하나를 사용할 수 있어요. Davidovič 등 [DKH*1]은 Matrix Row Column 샘플링 [HPB07]과 유사한 GPU 기반 가시성 클러스터링 접근법을 제안했어요.
지역 컴포넌트는 "local" VPL이라고 불리는 것들로 처리돼요. 이들은 카메라에서 경로를 추적해서 분포시키거든요. 지역 VPL은 오목한 지형을 가진 지역에서 국소적인 전송을 계산하도록 설계됐어요. 그래서 이 지역 VPL은 그 VPL을 샘플링하기 위해 경로가 추적된 픽셀 주변의 작은 타일에만 기여해요. 게다가, 지역 VPL과 그 VPL이 기여하는 픽셀 사이에는 가림 현상이 없다고 가정해요. 그래서 타일 내의 픽셀에 지역 VPL의 기여도를 계산할 때 가시성 검사를 생략할 수 있답니다. 이 근사는 방법의 효율성의 근원이 되는데요, 이는 대부분의 에너지를 포함하고 대부분의 간접 그림자를 처리하는 글로벌 컴포넌트 덕분에 가능해요. 마지막으로, 지역과 글로벌 컴포넌트를 합산해서 완전한 글로벌 조명 솔루션을 얻어요.
5.4. Avoiding the Singularity: Virtual Spherical Lights
Hašan 등 [HKWB09]은 제한된 빛 전송으로 인한 편향을 보상하는 대신, 처음부터 특이점을 피하려고 해요. 그들은 밝은 얼룩의 강도가 광택 있는 BRDF에 의해 악화될 수 있다는 점을 발견했어요. 그래서 보상이 임의로 비싸질 수 있답니다. 이는 음영 지점과 VPL이 정렬되어 두 BRDF 항 중 하나(또는 둘 다)가 그 방향에서 큰 값을 가질 때 발생해요. 지오메트리 항으로 인한 아티팩트는 일반적으로 국소화되어 있지만(주로 모서리에서 발생), 후자는 장면의 재료가 충분히 광택이 있으면 큰 거리에서도 발생할 수 있어요.
저자들은 먼저 photon light라는 개념을 소개해요. 이건 특정 반경을 가진 구 안에서 표면에 에너지를 분산시키는 점광이에요. 이 이름은 photon mapping과의 연결에서 영감을 받았는데, 여기서 각 photon은 주변 표면에 에너지를 기여하거든요. 기여도를 효율적으로 평가하기 위해, photon light 안의 모든 점에 대해 원래 VPL의 가시성을 사용하고, VPL 주변의 표면이 평면이라고 가정해요. 이렇게 해서
새로운 조명 원소인 virtual spherical light (VSL)을 만들었어요. VSL의 장점은 특이점의 원인이 되는 점 대 점 평가를 구형 조명이 차지하는 입체각에 대한 적분으로 대체한다는 거예요. 게다가 이 적분은 두 BRDF의 곱을 입체각에 걸쳐 평균화하니까, VSL은 특이점 아티팩트를 주변 표면에 걸쳐 블러링하여 효과적으로 피할 수 있답니다. photon light의 개념은 photon mapping의 final gathering처럼 편향을 도입하지만, 에너지를 주변 표면에 공간적으로 재분배하여 보존해요. VSL은 Lightcuts [WFA*05]나 Matrix Row-Column Sampling [HPB07] 같은 확장 가능한 다중 조명 방법과 결합할 수 있어요 (섹션 6 참조).
5.5. Avoiding the Singularity: Virtual Ray/Beam Lights
참여 매체가 포함된 장면에서는, Novák 등 [NNDJ12b]이 빛과 눈 경로의 전체 구간을 활용하는 방법을 제안해요. 랜덤 워크의 꼭짓점에서 개별 VPL을 만드는 대신, 워크의 각 선형 구간을 연속적인 virtual ray light (VRL)로 바꾸는 거죠. 그런 다음 점 대 점 평가를 광선 길이에 대한 적분으로 대체하고, 이는 중요도 샘플링을 사용하여 수치적으로 평가해요. 선분을 따라 에너지를 분산시키면 특이점의 정도가 확실히 줄어들고, 실제 시나리오에서는 거의 또는 전혀 경계가 필요하지 않아서, 이후의 편향 보정 필요성을 줄여준답니다.
특이점을 완전히 제거하기 위해, 같은 저자들은 VRLs을 가상 빔 라이트(VBLs)로 확장하는 방법을 제안해요 [NNDJ12a]. 이 아이디어는 무한소의 광선을 유한한 두께의 원통형 영역에 에너지를 분산시키는 것이에요(그림 12를 참조하세요). VSLs의 정신을 이어받아, 이는 특이점을 피하면서 약간의 조명을 흐리게 만들지만, 물질과 매체의 외관은 전송을 제한할 때보다 더 잘 보존된답니다. 저자들은 또한 렌더링 알고리즘을 점진적으로 공식화하여, 각 VBL의 두께가 시간이 지남에 따라 줄어들고, 흐림이 감소하며, 통합이 일관된 결과를 얻도록 했어요.
6. 다중 라이트 방법의 확장성
앞선 섹션에서는 VPLs가 어떻게 생성되고, 표현되고, 평가되는지에 대해 논의했어요. 이번 섹션에서는 다른 문제로 초점을 옮겨볼게요. 많은 VPLs가 주어졌을 때, 어떻게 그들의 기여를 효율적으로 계산할 수 있을까요? 이 질문은 매우 중요해요. 왜냐하면 많은 라이트 방법의 정확성은 사용된 VPLs의 수에 크게 의존하기 때문이죠. VPLs가 적으면 조명은 대략적으로만 재구성될 수 있어요. 이는 작은 장면이나 실시간 애플리케이션에서는 충분할 수 있지만, 복잡한 장면에서 고품질의 렌더링을 생성하려면, 광택 하이라이트, 간접 그림자, 근접 색상 블리딩과 같은 세부적이고 국소화된 간접 조명 효과를 많이 포착해야 해요. 이러한 효과를 정확하게 시뮬레이션하려면 수천 또는 수백만 개의 VPLs가 필요할 수 있어요. 개별 VPLs의 효과는
그림 12: Hašan et al. [HKWB09]에 의해 제안된 것처럼, 가상 포인트 라이트는 특이점을 피하기 위해 가상 구형 라이트로 확장될 수 있어요 (특히 광택 BRDFs의 경우). 참여 매체가 있는 장면을 렌더링하기 위해, Novák et al.은 광 경로의 선형 세그먼트를 광선 라이트로 변환하고 [NNDJ12b], 이를 빔 라이트로 확장하여 [NNDJ12a], 효과적으로 특이점을 피하는 방법을 제안해요.
종종 눈에 잘 띄지 않지만, Eq. (8)을 백만 개의 VPL에 대해 선형으로 무작정 계산하는 것은 비용이 너무 많이 들고 비효율적이에요. 대신, 계산량을 훨씬 줄이면서도 정확한 근사 평가를 선호하게 되죠. VPL의 수가 늘어날 때 비용이 천천히, 또는 서브-선형적으로 증가하는 알고리즘을 우리는 확장 가능하다고 부를 거예요.
또한, 확장성을 높이는 것은 분산 감소로 볼 수 있어요. 만약 어떤 알고리즘이 백만 개의 VPL을 처리하면서도 몇 백 개의 자원만 사용한다면, 이는 계산량을 고정한 상태에서 추정치의 노이즈를 줄이는 것과 같아요. 주요한 몬테카를로 분산 감소 기법으로는 층화, 적응 샘플링, 중요도 샘플링이 있어요. 아래에서 논의할 확장 가능한 알고리즘들은 층화와 적응성을 신중하게 결합하거나 중요도를 캐싱하는 방식에 기반하고 있어요.
우리는 서브-선형 확장성을 가진 몇 가지 실용적인 알고리즘을 논의할 거예요. 이들은 수백만 개의 VPL을 사용해도 효율적으로 이미지를 렌더링할 수 있기 때문에, 이러한 확장 가능한 다중 조명 알고리즘은 여러 가지 장점을 가지고 있답니다 [KHA* 12]:
이들은 모든 조명 소스의 통합을 하나로 만들어 줘요. 전역 조명, 환경 조명, 복잡한 소스로부터의 직접 조명이 단순히 VPL로 변환되어 단일 알고리즘으로 평가되거든요.
서브-선형 확장성 덕분에 매우 효율적이에요. 다른 방법들의 품질을 훨씬 적은 비용으로 달성할 수 있답니다.
이들은 조명 표현의 품질(얼마나 많은 VPL이 생성되는지)과 평가의 품질(그 VPL들을 평가하는 데 얼마나 많은 노력을 기울이는지)을 분리해요. 많은 VPL을 대략적으로 평가함으로써, 이러한 알고리즘은 최종 결과를 정확하게 예측하는 저비용, 저소음의 미리보기 이미지를 생성할 수 있답니다.
그림 13: 확장 가능한 many-light 알고리즘은 VPL 조명을 평가할 때 서브리니어 비용을 달성할 수 있어요. 이들은 VPL을 클러스터링하여 many-light 평가의 정확성을 조정할 수 있게 하죠. 예를 들어, 멀리 떨어진 VPL 그룹은 더 밝은 대표 VPL 하나로 대체될 수 있어요.
이들은 다양한 기하학, 조명, 차폐 및 재질 특성을 가진 광범위한 모델에 걸쳐 확장성을 제공해요.
6.1. VPL Clustering
이 섹션에서 논의하는 방법들은 공통된 통찰을 활용해요: 많은 VPL 집합 내에서 각 VPL이 동일하게 기여하지 않는다는 점이에요. 많은 VPL은 관심 영역에 거의 기여하지 않기 때문에 중요도가 낮아요. 예를 들어, VPL이 멀리 있거나 차폐된 경우죠. 하지만 일반적으로 소수의 VPL은 매우 중요해요. 예를 들어, 광택 하이라이트에 기여하는 VPL은 정확하게 처리해야 하거든요. 일반적이고 확장 가능한 알고리즘은 이러한 비균일한 VPL 중요성을 활용하여 계산을 줄이려고 해요. 가장 중요한 VPL을 식별하고 평가하면서, 중요하지 않은 VPL은 드물게 평가하려고 하죠.
아래에서 논의할 알고리즘들은 중요도를 추정하고 평가할 VPL 세트를 선택하는 방식에서 차이가 있지만, 모두 동일한 프레임워크를 사용해요. 각 알고리즘은 유사한 VPL들을 함께 클러스터링해요. 중요하지 않은 VPL들은 큰 클러스터에, 중요한 VPL들은 작은 클러스터에 배치하는 클러스터링을 선택하죠. 그림 13을 보면 이해가 쉬워요. 클러스터 내의 VPL들이 충분히 유사하다고 가정해서, 이들의 집합적인 효과를 단 하나의 더 밝은 대표 VPL을 평가함으로써 근사할 수 있다고 보는 거예요. 클러스터 내에서 대표 VPL을 무작위로 선택하고 그 파워를 적절히 조정하면, 이러한 대표 근사치들의 합은 경로 적분의 계층적 몬테카를로 평가와 동등해져요. 여기서 각 클러스터의 도메인에서 단일 샘플만 추출하거든요. 만약 이 알고리즘들이 모든 VPL의 수보다 훨씬 작은 클러스터 집합, 보통 '컷'이라고 불리는 것을 찾을 수 있다면, 컷 근사는 무차별 평가의 확장 가능한 대안이 됩니다. 우리는 세 가지 방법(또는 클래스)을 논의할 거예요.
Lightcuts [WFA*05, WABG06, WKB12],
Matrix Row-Column Sampling [HPB07, HVAPB08], 그리고
LightSlice [OP11]입니다.
이들은 VPL 중요도를 추정하는 방식과 이미지를 생성하기 위해 컷을 계산하는 빈도에서 차이가 있지만, 모두 컷 선택이라는 기본 아이디어를 공유해요. Multidimensional Lightcuts [WABG06]는 컷의 아이디어를 조명뿐만 아니라 모든 조명-수신자 쌍으로 확장해서 더 넓은 범위의 효과와 차원에서 확장성을 달성해요. 마지막으로, 이 섹션에서 논의할 마지막 방법은 VPL들을 클러스터링하는 대신 셰이딩 포인트에 가장 관련 있는 VPL들을 선택하는 방식을 택합니다.
6.2. Lightcuts
Lightcuts [WFA*05]는 최초의 실용적이고 확장 가능한 manylight 방법이었어요. 조명이 계산되어야 하는 각 수신 지점에서, Lightcuts는 분석적인 클러스터별 오류 범위와 지각적 기준을 기반으로 맞춤형 컷을 생성해요. 첫 번째 단계로, VPLs는 공간적 및 방향적 유사성을 기준으로 이진 트리로 조직됩니다. 수신기를 위한 컷을 선택하려면, 모든 조명을 하나의 클러스터에 넣는 것과 같은 간단하고 거친 클러스터링으로 시작해요. 이는 조명 트리의 루트 노드만으로 구성된 컷에 해당하죠. 그런 다음, 현재 컷에서 오류 범위가 가장 큰 클러스터를 선택하고, 이를 조명 트리에서 자식 노드로 대체하여 세분화합니다. 이 과정은 컷의 모든 클러스터에 대한 오류 범위가 일반적으로 전체의 2%로 설정된 지각 기반 임계값 아래로 내려갈 때까지 반복됩니다. 컷의 크기는 일반적으로 VPLs의 수에 거의 의존하지 않아서, VPLs의 수가 증가함에 따라 전체 평가에 비해 매우 큰 속도 향상을 가져옵니다. 분석적 오류 범위의 사용은 가장 중요한 VPLs가 항상 발견되고 평가되도록 보장하여 추정치를 견고하게 만듭니다. Davidovič 등 [DGS12]은 Lightcuts의 점진적이고 GPU 친화적인 변형을 설명합니다.
하지만 오류 범위를 사용하는 데에는 몇 가지 단점도 있어요. 오류 범위는 차폐를 무시하고 종종 지나치게 보수적이어서 최적보다 큰 컷을 초래하죠. 게다가 새로운 재료 모델에 대한 좋은 오류 범위를 개발하는 것은 도전적이고, 충분히 유사한 재료에 대한 범위가 아직 개발되지 않은 경우에는 어렵습니다. Lightcuts는 인접한 수신 지점의 컷이 종종 매우 유사하다는 사실을 활용하지 않고, 대신 각 지점에 대해 처음부터 컷을 다시 생성합니다.
6.3. Matrix Row-Column Sampling
Lightcuts와는 달리, Matrix Row-Column Sampling (MRCS) [HPB07]는 전체 이미지에 대해 하나의 글로벌 컷을 계산해요. 컷 생성이 전체 프레임에 걸쳐 분산되기 때문에, 이 방법은 Lightcuts에 비해 두 가지 장점이 있어요.
1. VPL의 중요성을 측정할 때, 일반적인 재료에 대해 비용이 많이 들거나 알 수 없는 오류 경계를 각 VPL의 이미지 기여도를 드문드문 샘플링한 직접 추정치로 대체해요. 이렇게 하면 MRCS는 재료와 조명 유형(특히 VSLs)을 쉽게 추가할 수 있고, 컷 선택 알고리즘에 가시성 정보를 포함할 수 있어요.
2. VPL의 중요성과 VPL의 기여도는 모두 그림자 맵을 사용하여 추정할 수 있어요. 그래픽 하드웨어를 사용해 계산을 가속화하면, MRCS는 매우 빠르고 노이즈가 적은 렌더링을 달성할 수 있답니다.
물론 몇 가지 단점도 있어요. 컷이 드문드문 샘플링된 데이터로부터 한 번만 계산되기 때문에, MRCS는 Lightcuts보다 적응력이 떨어지고, 몇 픽셀에만 영향을 미치는 광택 하이라이트 같은 VPL 조명의 작은 특징을 놓칠 수 있어요.
글로벌 컷을 계산하기 위해, MRCS는 VPL 평가 문제를 큰 행렬 M으로 모델링해요. M의 행은 각 픽셀을 통해 보이는 표면 포인트를 나타내고, M의 열은 VPL을 나타내요. 각 항목 M(i,j)는 i번째 픽셀을 통해 카메라에 도달하는 j번째 VPL의 분수 에너지를 나타내요. MRCS의 핵심 통찰은 M이 보통 매우 구조화되어 있고, 종종 저랭크 행렬이라는 점이에요. 그래서 M의 요소를 부분 샘플링한 축소 행렬 R로 잘 근사할 수 있답니다. MRCS는 R을 계산하고, 이를 사용해 컷을 계산한 다음, 그 컷을 사용해 원래 행렬 M을 근사하는 것으로 구성돼요.
R을 계산하기 위해, MRCS는 한 개의 VPL에 의해 조명된 장면의 작은 샘플링 이미지를 계산해요. 위의 행렬 모델에서, 각각의 이미지는 M의 한 열을 샘플링한 것에 해당해요. 모든 VPL에 대해 작은 이미지를 생성하는 것은 비용이 너무 많이 들기 때문에, MRCS는 이 계산을 위해 VPL의 작은 부분집합만 선택해요. 이렇게 작은 이미지들을 모두 합치면 R이 되죠. R을 사용해 컷을 계산하려면, MRCS는 먼저 R의 열을 클러스터링해서 비슷한 이미지 기여를 가진 VPL들을 그룹으로 묶어요. 그런 다음, 다른 모든 VPL들은 R에서의 열 유사성과 기하학적 근접성을 모두 포함하는 오류 메트릭을 최소화하여 초기 클러스터에 매핑돼요. 저자들은 이 메트릭이 주어진 클러스터링 문제에 최적임을 증명하고, 컷을 계산하기 위한 효율적인 2단계 근사 알고리즘을 제시해요.
MRCS 접근법은 전체 애니메이션을 렌더링하는 데도 확장되었어요 [HVAPB08]. 애니메이션 프레임의 행렬을 3D 배열(텐서)로 연결하고, 시간적 일관성을 활용해 필요한 클러스터 대표 수를 더 줄였어요. Davidovič 등 [DKH*은 MRCS의 변형인 visibility clustering을 제안했어요.
6.4. LightSlice
LightSlice [OP11] 알고리즘은 Lightcuts의 지역적으로 적응된 컷 아이디어와 MRCS의 전역 최적화 장점을 결합해요. LightSlice의 저자들은 Lightcuts가 수신 지점마다 컷을 다시 계산하여 세부적인 조명 효과를 포착할 수 있는 반면, MRCS는 이러한 컷 계산 중 많은 부분이 전역 VPL 클러스터의 공유 집합을 다시 계산하는 데 낭비된다는 것을 발견했어요. LightSlice 알고리즘은 이러한 공유 전역 클러스터를 한 번 식별하고, 이를 지역별 슬라이스 클러스터 세분화의 시작점으로 재사용함으로써 성능을 향상시켜요.
LightSlice 알고리즘은 다음과 같이 작동해요:
1. 이미지에 대한 모든 수신자 포인트를 생성하고, 기하학적 근접성을 기준으로 그룹으로 묶어 슬라이스라고 불러요.
2. 각 슬라이스에서 대표 수신자 포인트를 선택한 다음, 모든 슬라이스 대표들에 대해 MRCS를 실행해요. 이렇게 하면 모든 슬라이스에 대한 초기 글로벌 컷과 슬라이스 대표들의 빛 전송을 설명하는 축소된 행렬 R이 형성돼요.
3. 각 슬라이스 i에 대해, R을 슬라이스 i의 행과 다른 인근 슬라이스의 행만 포함하는 더 작은 행렬 Rⁱ로 제한해요. Rⁱ를 사용해 높은 비용의 지역 클러스터를 식별하고 분할하여 각 슬라이스에 대한 지역화된 컷을 생성함으로써 i에 대한 글로벌 클러스터링을 반복적으로 개선해요.
지역화된 슬라이스별 컷을 사용하면, LightSlice는 단일 글로벌 컷에 비해 필요한 평균 컷 크기를 줄일 수 있고, 희소한 샘플링으로 인해 지역적으로 중요한 VPLs가 누락될 가능성도 줄일 수 있어요. 또한, 초기 글로벌 컷을 지역 시작점으로 재사용함으로써 컷 선택 비용을 크게 줄일 수 있답니다.
6.5. Multidimensional Lightcuts
Multidimensional Lightcuts [WABG06]는 클러스터와 컷의 범위를 확장해서, 빛뿐만 아니라 수신 지점도 포함시켜요. 그래서 훨씬 더 다양한 효과에 대해 확장 가능한 성능을 달성할 수 있답니다. 픽셀을 계산할 때, 개별 수신 지점의 값보다는 영역 전체의 평균 조명을 원하게 되죠. 예를 들어, 이 영역은 앤티앨리어싱을 위해 이미지 공간에 걸쳐 있거나, 심도 효과를 위해 조리개에 걸쳐 있거나, 모션 블러를 위해 시간에 걸쳐 있거나, 볼륨 렌더링 같은 효과를 위해 공간적으로 확장될 수 있어요. 렌더링할 때, 이러한 영역은 일반적으로 샘플링을 통해 많은 수신 지점으로 변환되지만, 각 지점에 대해 별도로 컷을 평가하는 것은 비효율적이에요. 왜냐하면 이 지점들은 종종 빛에 대한 민감도와 조명 정확도 요구 사항이 매우 다르기 때문이죠. 대신 Multidimensional Lightcuts는 픽셀에 대한 모든 빛-수신 지점 쌍에 대해 계층 구조를 구축하고, 그 컷은 이 훨씬 더 큰 점-쌍 공간의 분할이에요. 이를 가능하게 하기 위해, 점-쌍 계층 구조는 빛 트리와 수신 트리의 데카르트 곱으로 암묵적으로 표현되며, 이 수신 트리는 gather tree라고도 불려요. 컷 선택 과정은 Lightcuts 방법과 유사하게, 클러스터별 오류 경계를 분석적으로 사용하고, 지각적 임계값에 도달할 때까지 컷을 정제해요. 주요 차이점은 클러스터 정제가 이제 각 단계에서 빛 또는 수신 정제 중 하나를 선택할 수 있다는 점이에요. 전반적으로 이 기술은 픽셀당 많은 수신 지점과 많은 수의 VPL이 필요한 효과를 계산할 때 렌더링 비용을 크게 줄여준답니다. 이 방법은 또한 각 픽셀의 다양한 조명 구성 요소 간의 노력을 적응적으로 균형 잡아요. 예를 들어, 밝은 하이라이트가 있을 경우, 자동으로 다른 구성 요소들, 예를 들어 볼륨 조명이나 확산 조명은 더 낮은 정확도와 비용으로 계산할 수 있게 해줘요.
Bidirectional Lightcuts [WKB12]는 이전 방법을 확장해서 더욱 다양한 효과를 처리할 수 있게 했어요. 여기에는 광택 반사, 피하 산란, 그리고 단거리 간접 조명이 포함되죠. 이 방법의 목표는 앞서 언급한 편향 보상 방법과 비슷하지만, 픽셀당 추가적인 수신 지점을 더하는 방식으로 작동해요.
6.6. Importance Caching for VPL Selection
Georgiev 등 [GKPS12]은 확장성을 개선하기 위한 다른 접근법을 제안했어요. 이 방법은 장면의 특정 위치에서 가장 관련성이 높은 VPL을 중요도 캐싱을 통해 선택하는 거예요. 전처리 단계에서, 모든 VPL의 기여도를 장면의 여러 위치에서 계산하고 캐싱해 둡니다. 이미지 렌더링 중에 VPL 기여도를 계산할 때, 근처 몇몇 위치에서 캐싱된 기여도를 이산 확률 분포로 사용해서 가장 관련성 높은 VPL을 무작위로 샘플링해요.
이러한 확장 가능한 접근법들은 많은 빛 방법에서 사용할 수 있는 VPL의 유효한 수를 크게 늘렸어요. 그래서 더 높은 정확도와 이미지 품질을 달성할 수 있게 되었답니다.
7. Interactive and Real-Time Many-Light Rendering
인터랙티브하고 실시간으로 렌더링할 때 가장 큰 도전 과제는 오프라인 방식과 비교했을 때 제한된 시간이에요. 이 때문에 생성하고 사용할 수 있는 VPL의 수가 제한되죠. 보통 몇 백에서 몇 천 개 정도로요. 그리고 이런 제약 하에서 충실하게 렌더링할 수 있는 재료의 종류도 제한돼요. 개념적으로 보면, 주요 차이점은 가시성 계산에 있어요. VPL 생성, 셰이딩, 그림자 처리에 레이 캐스팅 대신 래스터라이제이션을 사용하거든요. 다음 섹션에서는 이러한 측면을 다루고, 인터랙티브 프레임 속도에서 특히 어려운 참여 매체 렌더링과 제한된 수의 VPL을 사용할 때 이미지 품질과 시간적 안정성을 향상시키는 기술에 대해 전망해 볼 거예요.
7.1. Many-Light Generation in Interactive Rendering
일반적인 실시간 시나리오에서는 렌더링 시간이 주로 셰이딩과 그림자 처리 비용에 의해 지배되고, VPL 생성에는 덜 영향을 받아요. 즉, 처리할 수 있는 VPL의 수가 적기 때문에, 공간 인덱싱 구조가 최적화되지 않았거나 최적이 아니더라도, VPL을 생성하기 위한 몇 가지 광 경로를 추적하는 데 충분해요. 사용할 수 있다면 꼭 사용해야 해요.
VPL은 래스터라이제이션만으로도 생성할 수 있어요. 반사 그림자 맵 [DS05] (RSMs)는 그림자 맵과 유사하게 주요 광원에서 장면을 렌더링해서 직접 조명된 표면을 포착하죠. 깊이 외에도, RSMs는 위치, 법선, 반사된 플럭스를 저장하고, 각 픽셀은 작은 광원으로 해석될 수 있어요. 또는 무작위로 선택된 픽셀 집합이 VPL로 사용될 수 있답니다. 비슷한 아이디어가 이전에 가상 쌍극자 광원을 생성하는 데 사용되었어요.
반투명한 물체를 렌더링하는 방법이에요 [DS03]. 원래 RSM 작업에서는, VPLs의 기여를 저해상도 이미지에 누적하고 업샘플링 시 가장자리에서 정제했어요. 이후 Dachsbacher와 Stamminger [DS06]는 지연 셰이딩과 영향 범위가 제한된 영역을 사용하여 빛의 기여를 누적하는 방법을 제안했어요. 또한, 기본 RSM의 중요도 샘플링도 도입했답니다.
Ritschel 등 [REH*11]은 RSM에서 VPLs를 선택할 때 이미지에 대한 기여도를 추정하여, RSM의 중요도 샘플링을 위한 확률 요소를 얻는 방법을 제안했어요. 두 경우 모두, 이전에 생성된 VPLs에 대해 추가로 계산된 RSM을 재귀적으로 계산하여 더 긴 빛 경로를 만들 수 있어요 (이는 [RGK*08]에서 사용되었어요). 레스터화나 복셀화를 기반으로 광선을 캐스팅하는 다양한 방법이 존재하며, 물론 빛 경로를 추적하는 데 사용할 수 있지만, 이 보고서에서는 다루지 않아요.
7.2. Many-Light Shading in Interactive Rendering
프로그래머블 그래픽 하드웨어는 사실상 무수히 많은 광원으로부터 셰이딩을 할 수 있지만, 많은 광원을 사용하는 렌더링은 거의 항상 지연 셰이딩 기법과 함께 사용돼요 [DWS*88, ST90]. VPLs의 영향 범위를 제한해서 셰이딩 속도를 높이는 방법도 있지만 [DS06], 이는 먼 거리에서 전달되는 빛을 제거하기 때문에 선호되지 않아요. 대신, 셰이딩 신호를 부분적으로 샘플링하고 이후에 보간하는 방법이 주로 사용돼요. 이를 위해 대부분의 기법은 교차 샘플링(interleaved sampling)을 사용해요 [KH01]. 이 방법은 Wald et al. [WKB*02]에 의해 처음으로 많은 광원 렌더링에 사용됐어요. 단일 픽셀의 셰이딩은 모든 VPLs를 사용하지 않고, 대신 각 픽셀은 VPLs의 분리된 하위 집합에 의해 조명돼요. 그 이유는 인접한 픽셀들이 종종 가까운 위치에 있고 비슷한 방향의 기하학을 나타내기 때문에, 그들의 셰이딩도 비슷할 것이라는 점이에요. 교차 셰이딩은 이후에 엣지 인식 이미지 필터를 사용한 후처리 단계에서 인접 픽셀에 걸쳐 전송돼요. Segovia et al. [SIMP06b]는 동일한 VPLs 하위 집합에 의해 조명된 픽셀들이 같은 타일 서브 버퍼에 저장되도록 지연 셰이딩 버퍼를 재구성하는 GPU 친화적인 교차 샘플링 구현을 설명해요. 교차 샘플링은 렌더링 속도를 크게 높여주지만, 매우 세밀한 기하학과 노멀 매핑에서는 앨리어싱 아티팩트가 발생하기 쉽고, 광택 있는 BRDFs에서는 문제가 될 수 있어요. 이러한 문제들은 Segovia와 Wald [SW10]에 의해 해결됐는데, 그들은 표면의 노멀에 의존하는 입사 복사조도 대신 입사 복사장(radiance field)을 필터링하는 방법을 제안했어요.
Nichols와 Wyman [NW09, NW10]은 매끄러운 표면이 있는 영역에서 간접 조명이 천천히 변하는 반면, 기하학적 세부 사항은 더 많은 음영 평가가 필요하다는 관찰을 바탕으로 계층적 음영 기법을 제안합니다. 그들의 기술은 불연속성을 감지하기 위해 깊이 버퍼의 최소-최대 mipmap을 사용합니다. 그런 다음 간접 조명은 매끄러운 영역(최소-최대에서 변화가 적은)에서 다중 해상도 지연 음영 버퍼에서 계산됩니다.
mipmaps)는 저해상도 버퍼에서 음영 처리되고, 세부 영역은 고해상도 버퍼에서 처리됩니다. 해상도 피라미드는 최종 이미지에 적응된 양선형 보간 기법을 사용하여 결합됩니다. 교차 샘플링 접근 방식은 VPL에서 그림자 계산과 직교하며, 다중 해상도 스플래팅은 매끄러운 음영 신호를 가정합니다(즉, 그림자 경계를 감지하지 않으므로 경계를 넘어 흐려집니다).
많은 수의 광원으로 음영 계산을 추가로 가속화할 수 있는 방법은 타일 음영을 사용하는 것입니다: 이미지 평면을 타일로 세분화하고, 각 타일에 대해 가시 표면에 영향을 미칠 수 있는 광원 목록을 작성합니다. 각 타일은 모든 광원을 평가하지 않고 독립적으로 처리될 수 있습니다 [OA11]. Olsson et al. [OBA12]은 이 아이디어를 확장하여 광원을 타일과 깊이에 따라 클러스터링했습니다.
7.3. Visibility Computation in Interactive Rendering
VPLs로부터 음영을 계산할 때마다, 그 음영 지점이 실제로 빛을 받는지 아니면 가려져 있는지를 확인해야 해요. 이를 위해 거의 모든 인터랙티브 방법들은 음영을 계산하기 전에 각 VPL에 대한 (반)구형 가시성을 계산하거든요. 원래의 instant radiosity 구현에서는 shadow volumes의 변형을 사용했지만 [Kel97], 이후의 거의 모든 구현에서는 shadow mapping을 사용해요. 이 기술은 견고하고 유연하며, 수백 개의 VPL의 기여가 누적될 때 생기는 주요 단점인 들쭉날쭉한 그림자 가장자리가 크게 문제되지 않기 때문이에요. VPL이 (반)구를 비추기 때문에, shadow maps는 큐브, 포물면 [HS98], 또는 팔면체 [ED08] 맵과 같은 적절한 매개변수를 사용해 렌더링됩니다.
각 VPL의 가시성 또는 shadow map을 계산하는 것은 종종 인터랙티브 manylight 구현에서 가장 시간이 많이 드는 부분이에요. 이 단계를 빠르게 하는 한 가지 방법은 반복적인 계산을 피하고 시간적 일관성을 활용하는 것이에요. Laine 등 [LLK07]은 VPL이 이미지에 기여하는 동안 유지하고, 프레임당 몇 개만 무효화하고 재배치하는 방법을 제안했어요. 그들의 방법은 단일 반사 간접 조명에 대해서만 VPL을 유지하는데 (이 제한은 ray casting으로 VPL을 계산할 때 완화될 수 있어요), 정적 장면이나 동적 기하학에서의 정적 간접 조명에만 제한됩니다.
다른 전략으로는 가시성을 덜 정확하게 계산하는 방법이 있어요. 이 방법은 간접 조명에 있어 많은 경우 충분한 것으로 나타났어요 [YCK*09]. Ritschel 등 [RGK*08]은 저해상도와 저품질의 불완전한 그림자 맵(ISM)을 계산했어요. 수백에서 수천 개의 그림자 맵이 장면 기하학의 점 표현에서 병렬로 렌더링되죠. 각 그림자 맵당 몇 천 개의 점 샘플만 사용되기 때문에, 결과 맵에는 구멍이 생기고 이를 이미지 공간의 휴리스틱으로 채워야 해요. 점 표현은 미리 계산되지만, 애니메이션을 지원하기 위해 장면과 함께 변형될 수 있어요. 후속 연구에서 Ritschel 등 [REH*11]은 이러한 점 집합을 뷰에 적응적으로 선택하여 그림자 맵의 품질을 개선하는 방법을 설명해요.
Holländer 등 [HREB11]도 다중 뷰 렌더링 문제를 다루고, 그림자 맵을 계산하는 데 사용할 수 있는 점진적이고 GPU 친화적인 LoD 알고리즘을 제시했어요. Micro-rendering [REG*09]은 점 계층 구조와 대규모 병렬 하이브리드 래스터화-레이캐스팅 기법을 사용하여 물이 새지 않는 반구형 이미지를 렌더링하면서 가시성 계산을 처리해요. 이 방법은 반구의 왜곡도 지원하는데, 원래는 확산 및 광택 표면 모두에 대한 빠른 최종 수집을 위해 설계되었어요.
Popov 등 [PGSD13]은 많은 조명 렌더링을 가속화하는 데 사용할 수 있는 전역 가시성 캐싱 기법을 제안했어요. 이들은 쿼리의 두 끝점을 양자화하여 가시성 쿼리를 캐시하고 재사용해요. 오류를 제어하기 위해 양자화는 기하학, 샘플링 밀도 및 조명 신호의 변동에 적응해요.
최근에는 또 다른 근사 표현이 많은 관심을 받고 있어요. 어떤 장면 기하학도 복셀화할 수 있어서 간단한 레이 마칭으로 가시성을 계산할 수 있거든요. 복셀화 자체는 큰 연구 분야이므로, 자세한 개요는 Crassin의 박사 논문 [Cra11]을 참조하세요.
7.4. Visibility in Participating Media
장면에 참여 매체가 있을 때, 두 지점 간의 상호 가시성은 이진적이지 않아요. 왜냐하면 광선이 이동하면서 부분적으로 흡수되거나 산란될 수 있기 때문이죠. 깊이 대신에, deep shadow maps [LV00]는 하나의 지점에서 모든 가능한 깊이에 있는 각 픽셀(방향에 해당하는)까지의 부분 가시성을 샘플링하고 저장해요. 이러한 기능적 표현은 일정한 비용으로 투과율이나 가시성을 조회할 수 있도록 해주죠. Salvi 등 [SVLL10]은 GPU에 적합한 deep shadow maps의 변형인 adaptive volumetric shadow maps (AVSMs)을 제시했어요. 이는 단조로운 투과 함수의 근사를 저장하죠. AVSMs는 Engelhardt 등 [ENSD12]에 의해 참여 매체의 상호작용 렌더링을 위해 적응되기도 했어요. VPLs의 기여를 눈 광선을 따라 모으는 것은 점광원에 의한 단일 산란을 누적하는 것과 같아요. 단일 산란을 효율적으로 계산하는 다양한 방법이 존재하지만, 대부분의 연구는 crepuscular rays의 고품질 렌더링을 목표로 하고 있어요 (예: [ED10, CBDJ11, Wym11] 또는 [RDGK12] 참조). 이는 산란 매체에서 VPLs에는 보통 필요하지 않거나, 균일한 매체에 제한하고 가시성을 무시하는 분석적 적분에 의존하죠 [Peg09].
7.5. Improving Quality and Temporal Stability
렌더링 품질의 중요한 요소는 VPLs의 수예요. VPLs의 수가 적으면 주로 확산 장면에는 충분할 수 있지만, 광택 있는 표면이 있는 장면에는 훨씬 더 많은 수가 필요해요 [KFB10]. 게다가, VPLs는 랜덤 워크를 사용하여 생성되며 같은 난수라도 장면이
변경되면 생성된 VPLs의 위치나 기여도가 달라질 수 있죠. 이 때문에 산만한 시간적 깜빡임이 발생할 수 있답니다. 당연히 인터랙티브 시나리오에서는 VPLs의 수를 임의로 늘릴 수 없어서 특별한 기술이 개발되어야 했어요.
VPLs를 점광원이 아니라 특정 표면 영역에서의 간접 조명을 나타내는 면광원으로 고려하는 것도 하나의 해결책이에요. 대표적인 방법으로는 처음에 더 많은 VPLs를 생성하고, 셰이딩 전에 이를 클러스터링하는 것이 있어요. 클러스터의 크기가 표면 영역의 추정치가 되고, VPLs의 누적 기여와 함께 가상의 면광원을 만들어내죠 [DGRS09]. 면광원에서의 가시성은 소프트 섀도우 방법을 사용해 효율적으로 평가할 수 있어요, 예를 들어 [ADM*08]처럼요. RSMs를 사용할 때는 클러스터링을 RSM의 이미지 공간에서 직접 계산할 수도 있답니다 [PKD12].
8. Conclusions
최근 몇 년간 많은 조명을 사용하는 렌더링이 주목받고 있는 데는 이유가 있어요. 이 방법들은 비교적 빠르고, 종종 GPU에 친화적이며, 좋은 서브-선형 확장성을 가진 변형들이 존재해요. 다양한 재료로 고품질 이미지를 렌더링할 수 있고, 무엇보다도 렌더링 비용이 대개 예측 가능하거든요. 하지만 이런 장점에도 불구하고 대가가 따르죠. 우리가 본 것처럼, 본질적인 측면 중 하나는 가상의 조명을 생성하기 위한 광 경로를 만드는 것이에요. 이 경로들이 장면을 조명하는 데 사용되죠. 광 경로를 대략적으로 샘플링하면 산란 함수(표면의 BRDF, 매체의 위상 함수)에서 날카로운 모드와 관련된 문제가 발생할 수 있어요. 즉, 빛의 전송 방향성이 높을 때 말이죠. 게다가, VPL 생성이나 클러스터링에서처럼 시간적 안정성도 명확히 다뤄야 해요. 그림 14는 논의된 방법들의 개요를 제공하며, 목표와 특이점을 대략적으로 분류하고 설명하고 있어요.
원칙적으로, many-light 방법들은 photon mapping을 포함한 여러 다른 방법들과 마찬가지로, 동일한 bidirectional path tracing 프레임워크에서 유도될 수 있어요. 최근에 활발히 연구되고 있는 photon mapping은 (예: [HOJ08, HJ09, KZ11, HJ11, JNSJ11, KD13b] 참조) 빛의 경로를 추적한 후, 밀도 추정이나 최종 수집을 수행해요. 이 최종 수집은 본질적으로 VPLs로부터 기여를 모으는 것과 같답니다. 최근 전역 조명 연구의 트렌드는 개념적으로 관련된 방법들을 일반적인 프레임워크로 통합하여 경로 공간의 다양한 하위 공간을 구성하는 것이에요. 즉, 서로 다른 경로 구성 전략을 통해 다양한 빛 전송 현상을 계산하는 것이죠 (예: [GKDS12, HPJ12, KD13a]). Dammertz 등 [DKL10]의 연구는 좋은 예로, 확산 반사에 대한 VPL 렌더링을 광택 및 반사에 대한 specular gathering과 caustics에 대한 photon tracing과 결합했어요. 가능한 모든 세계의 장점을 취하는 이 자체로 명백한 아이디어는 기존 방법들의 단순한 조합이 아니랍니다. 우리는
이러한 아이디어들이 many-light 방법에 영향을 미치는 것을 보았고, 이것이 미래에 더 견고하고 효율적인 전역 조명 방법으로 이어질 것이라고 믿어요.
감사의 말씀 이 연구는 독일 자르브뤼켄에 있는 Intel Visual Computing Institute, DFG의 DA 1200/1-1 연구비, 그리고 체코 과학 재단의 P202-13-26189S 연구비의 지원을 부분적으로 받았습니다.
References
[ADM*08] ANNEN T., DONG Z., MERTENS T., BEKAERT P., SEIDEL H.-P., KAUTZ J.: 실시간, 모든 주파수의 그림자를 동적 장면에서 구현. ACM Transactions on Graphics (Proc. SIGGRAPH) 27, 3 (2008), 1-8. 14
[ATS94] ARVO J., TORRANCE K., SMITS B.: 전역 조명 알고리즘의 오류 분석을 위한 프레임워크. SIGGRAPH '94 (New York, NY, USA, 1994), ACM, pp. 75-84. 8
[Aut13] AUTODESK INC.: Autodesk 360 Rendering, 2013. http://rendering.360.autodesk.com/. 2
[CBDJ11] CHEN J., BARAN I., DURAND F., JAROSZ W.: 1D 최소-최대 mipmaps를 사용한 실시간 볼륨 그림자. ACM SIGGRAPH 상호작용 3D 그래픽 및 게임 심포지엄 논문집 (2011), pp. 39-46.
[Crall] CRASSIN C.: GigaVoxels: 대규모 및 상세한 장면의 효율적인 탐색을 위한 Voxel 기반 렌더링 파이프라인. 박사 학위 논문, 그르노블 대학교, 2011. 13
[DGRS09] DONG Z., GROSCH T., RITSCHEL T., SEIDEL H.-P.: 클러스터된 가시성을 이용한 실시간 간접 조명. Vision, Modeling and Visualization 회의 논문집 (2009), 187-196. 14
[DGS12] DAVIDOVIČ T., GEORGIEV I., SLUSALLEK P.: GPU를 위한 Progressive lightcuts. ACM SIGGRAPH 2012 토크 (2012). 10
[DKH* 10] DAVIDOVIČ T., KŘIVÁNEK J., HAŠAN M., SLUSALLEK P., BALA K.: 세밀한 광택 조명을 위한 글로벌 및 로컬 가상 조명 결합. ACM Graphics Transactions (SIGGRAPH Asia 논문집) 29, 6 (2010), 143:1-143:8. 6, 8, 11
[DKL10] DAMMERTZ H., KELLER A., LENSCH H.: Progressive point-light-based global illumination. Computer Graphics Forum 29, 8 (2010), 2504-2515. 14
[DS03] DACHSBACHER C., STAMMINGER M.: Translucent shadow maps. In Proc. Eurographics Workshop on Rendering (2003), pp. 197-201. 12
[DS05] DACHSBACHER C., STAMMINGER M.: Reflective shadow maps. In Proc. ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (2005), pp. 203-208. 12
[DS06] DACHSBACHER C., STAMMINGER M.: Splatting indirect illumination. In Proc. ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (2006), pp. 93-100. 12
[DWS*88] DEERING M., WINNER S., SCHEDIWY B., DUFFY C., HUNT N.: The triangle processor and normal vector shader: a vlsi system for high performance graphics. In Computer Graphics (Proc. SIGGRAPH) (1988), pp. 21-30. 12
[ED08] ENGELHARDT T., DACHSBACHER C.: Octahedron 환경 맵. Vision, Modeling and Visualization 회의록 (2008), pp. 383-388. 13
[ED10] ENGELHARDT T., DACHSBACHER C.: 참여 매체에서 단일 산란을 고려한 그림자와 황혼 광선의 에피폴라 샘플링. ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (2010), 119-125. 13
[ENSD12] ENGELHARDT T., NOVÁK J., SCHMIDT T.-W., DACHSBACHER C.: 이질적인 참여 매체가 있는 장면 렌더링을 위한 근사 편향 보상. Computer Graphics Forum (Proc. Pacific Graphics) 31, 7 (2012), 2145-2154. 1, 8, 13
[GKDS12] GEORGIEV I., KŘIVÁNEK J., DAVIDOVIC T., SLUSALLEK P.: 정점 연결 및 병합을 통한 광 전송 시뮬레이션. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) 31, 6 (2012), 192:1-192:10. 14
Dachsbacher, Křivánek, Hašan, Arbree, Walter, Novák / 다중 조명 방법을 통한 확장 가능한 현실적 렌더링
100%
그림 14: 이 표는 이 보고서에서 설명한 다중 조명 렌더링 방법들의 개요를 제공해요. 주어진 응용 프로그램이나 필요에 맞는 적절한 방법을 찾는 데 도움이 되도록 구성했답니다.
[GKPS12] GEORGIEV I., KŘIVÁNEK J., POPOV S., SLUSALLEK P.: 복잡한 조명을 위한 중요도 캐싱. Computer Graphics Forum (Proc. of Eurographics) 31, 3 (2012), 701-710. 12
[GS10] GEORGIEV I., SLUSALLEK P.: 가상 점광원의 간단하고 견고한 반복 중요도 샘플링. Eurographics short papers (2010). 5,6
[HJ09] HACHISUKA T., JENSEN H. W.: 확률적 점진적 포톤 매핑. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) 28, 5 (2009), 141:1-141:8. 14
[HJ11] HACHISUKA T., JENSEN H. W.: 포톤 경로 가시성을 이용한 견고한 적응형 포톤 추적. ACM Transactions on Graphics 30, 5 (2011), 114:1-114:11. 14
[HKWB09] HAŠAN M., KŘIVÁNEK J., WALTER B., BALA K.: 광택 있는 장면의 다중 조명 렌더링을 위한 가상 구형 조명. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) 28, 5 (2009), 143:1-143:6. 8,9
[HOJ08] HACHISUKA T., OGAKI S., JENSEN H. W.: 점진적 포톤 매핑. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) 27, 5 (2008), 130:1-130:8. 14
[HPB07] HAŠAN M., PELLACINI F., BALA K.: 다중 조명 문제를 위한 행-열 샘플링. ACM Transactions on Graphics (Proc. SIGGRAPH) 26, 3 (2007), 26. 8,9, 10
[HPJ12] HACHISUKA T., PANTALEONI J., JENSEN H. W.: 견고한 광 전송 시뮬레이션을 위한 경로 공간 확장. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) 31, 6 (2012), 191:1-191:10. 14
[HREB11] HOLLÄNDER M., RITSCHEL T., EISEMANN E., BOUBEKEUR T.: Manylods: 병렬 다중 뷰 레벨-오브-디테일
실시간 글로벌 조명을 위한 선택. Computer Graphics Forum (Proc. Eurographics Symposium on Rendering) 30, 4 (2011). 13
[HS98] HEIDRICH W., SEIDEL H.-P.: 뷰 독립적인 환경 맵. Proc. SIGGRAPH/Eurographics Workshop on Graphics Hardware (1998), pp. 39-45. 13
[HVAPB08] HAŠAN M., VELÁZQUEZ-ARMENDÁRIZ E., PELLACINI F., BALA K.: 다수의 조명 애니메이션을 렌더링하기 위한 텐서 클러스터링. Computer Graphics Forum (Proc. Eurographics Symposium on Rendering) 27, 4 (2008), 1105-1114. 10, 11
[Jen01] JENSEN H. W.: 포톤 매핑을 사용한 현실적인 이미지 합성. A. K. Peters, Ltd., Natick, MA, USA, 2001. 5
[JM12] JAKOB W., MARSCHNER S.: 매니폴드 탐색: 어려운 스펙큘러 전송이 있는 장면을 렌더링하기 위한 마코프 체인 몬테카를로 기법. ACM Transactions on Graphics (Proc. SIGGRAPH) 31, 4 (2012), 58:1-58:13. 4
[JNSJ11] JAROSZ W., NOWROUZEZAHRAI D., SADEGHI I., JENSEN H. W.: 광자 포인트와 빔을 사용한 체적 복사율 추정의 포괄적인 이론. ACM Transactions on Graphics 30, 1 (2011), 5:1-5:19. 14
[Kaj86] KAJIYA J. T.: 렌더링 방정식. Computer Graphics (Proc. SIGGRAPH) (1986), pp. 143-150. 2
[KD13a] KAPLANYAN A., DACHSBACHER C.: 전체적이고 견고한 광 전송을 위한 경로 공간 정규화. Computer Graphics Forum (Proc. of Eurographics) 32, 3 (2013). 14
[KD13b] KAPLANYAN A. S., DACHSBACHER C.: 적응형 점진적 광자 매핑. ACM Transactions on Graphics 32, 2 (2013). 14
Dachsbacher, Křivánek, Hašan, Arbree, Walter, Novák / 다중 조명 방법을 통한 확장 가능한 현실적 렌더링
[Kel97] KELLER A.: Instant radiosity. In SIGGRAPH '97 (1997), pp. 49-56. 1, 2, 3, 4, 13
[KFB10] KRIVÁNEK J., FERWERDA J. A., BALA K.: 전역 조명 근사치가 재질 외관에 미치는 영향. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) 29, 4 (2010), 112:1-112:10. 7, 13
[KH01] KELLER A., HEIDRICH W.: Interleaved sampling. In Proc. Eurographics Workshop on Rendering (2001), pp. 269-276. 12
[KHA*12] KŘIVÁNEK J., HAŠAN M., ARBREE A., DACHSBACHER C., KELLER A., WALTER B.: 다중 조명 방법을 사용한 현실적인 렌더링 최적화. In ACM SIGGRAPH 2012 Courses (2012), pp. 7:1-7:217. 9
[KK04] KOLLIG T., KELLER A.: 약한 특이점이 있는 조명. 몬테카를로 및 준몬테카를로 방법 (2004), 245-257. 7
[KZ11] KNAUS C., ZWICKER M.: 점진적 포톤 매핑: 확률적 접근법. ACM Transactions on Graphics 30, 3 (2011), 25:1-25:13. 14
[LLK07] LAINE S., LEHTINEN J., KONTKANEN J.: 실시간 간접 조명을 위한 증분 즉시 라디오시티. Eurographics Symposium on Rendering의 논문집 (2007), pp. 4-8. 13, 14
[LV00] LOKOVIC T., VEACH E.: Deep shadow maps. In SIGGRAPH '00 (2000), pp. 385-392. 13
[LW96] LAFORTUNE E. P., WILLEMS Y. D.: 양방향 경로 추적을 사용한 참여 매체 렌더링. Eurographics Workshop on Rendering의 논문집 (1996), pp. 91-100. 5
[NED11] NOVÁK J., ENGELHARDT T., DACHSBACHER C.: 가상 점광원을 사용한 상호작용 고품질 전역 조명을 위한 화면 공간 편향 보정. ACM Interactive 3D Graphics and Games의 논문집 (2011), pp. 119-124. 8
[NNDJ12a] NOVÁK J., NOWROUZEZAHRAI D., DACHSBACHER C., JAROSZ W.: 점진적 가상 빔 라이트. Computer Graphics Forum (Eurographics Symposium on Rendering 논문집) 31, 4 (2012), 1407-1413. 9
[NNDJ12b] NOVÁK J., NOWROUZEZAHRAI D., DACHSBACHER C., JAROSZ W.: 참여 매체가 있는 장면을 렌더링하기 위한 가상 광선 라이트. ACM Transactions on Graphics (SIGGRAPH 논문집) 31, 4 (2012), 60:1-60:11. 9
[NW09] NICHOLS G., WYMAN C.: 간접 조명을 위한 다중 해상도 스플래팅. Proc. ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (2009), pp. 83-90. 12
[NW10] NICHOLS G., WYMAN C.: 적응형 다중 해상도 스플래팅을 사용한 인터랙티브 간접 조명. IEEE Transactions on Visualization and Computer Graphics 16, 5 (2010), 729-741. 12
[OA11] OLSSON O., ASSARSSON U.: 타일드 셰이딩. Journal of Graphics, GPU, and Game Tools 15, 4 (2011), 235-251. 13
[OBA12] OLSSON O., BILLETER M., ASSARSSON U.: 클러스터드 지연 및 전방 셰이딩. Proc. of ACM SIGGRAPH / Eurographics conference on High Performance Graphics (2012), pp. 8796. 13
[OP11] OU J., PELLACINI F.: Lightslice: 다중 조명 문제를 위한 매트릭스 슬라이스 샘플링. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) (2011). 10, 11
[Peg09] PEGORARO V.: 참여 매체에서의 빛 전파의 효율적인 물리 기반 시뮬레이션. 박사 학위 논문, 유타 대학교 컴퓨팅 학부, 2009. 13
[PGSD13] POPOV S., GEORGIEV I., SLUSALLEK P., DACHSBACHER C.: 적응형 양자화 가시성 캐싱. Computer Graphics Forum (Eurographics 논문집) 32, 3 (2013). 13
[PH10] PHARR M., HUMPHREYS G.: 물리 기반 렌더링: 이론에서 구현까지. Morgan Kaufmann Publishers, 2010. 2,3,5
[PKD12] PRUTKIN R., KAPLANYAN A., DACHSBACHER C.: 실시간 전역 조명을 위한 반사 그림자 맵 클러스터링. Eurographics 단편 논문집 (2012). 14
[RDGK12] RITSCHEL T., DACHSBACHER C., GROSCH T., KAUTZ J.: 인터랙티브 전역 조명의 최신 기술. Computer Graphics Forum 31, 1 (2012), 160-188. 13
[REG*09] RITSCHEL T., ENGELHARDT T., GROSCH T., SEIDEL H.-P., KAUTZ J., DACHSBACHER C.: 확장 가능한 병렬 최종 수집을 위한 마이크로 렌더링. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) 28, 5 (2009), 132:1-132:8. 13
[REH* 11] RITSCHEL T., EISEMANN E., HA I., KIM J., SEIDEL H.-P.: 불완전한 그림자 맵을 뷰 적응형으로 만들기: 대규모 동적 장면에서의 고품질 전역 조명. Computer Graphics Forum (Proc. Eurographics Symposium on Rendering) 30, 3 (2011). 1, 12, 13
[RGK*08] RITSCHEL T., GROSCH T., KIM M. H., SEIDEL H. P., DACHSBACHER C., KAUTZ J.: 간접 조명의 효율적인 계산을 위한 불완전한 그림자 맵. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) 27, 5 (2008), 1. 12, 13
[RSK08] RAAB M., SEIBERT D., KELLER A.: 참여 매체를 포함한 편향 없는 전역 조명. In Monte Carlo and Quasi-Monte Carlo Methods 2006 (2008), pp. 591-606. 7, 8
[SIMP06a] SEGOVIA B., IEHL J. C., MITANCHEY R., PÉROCHE B.: 양방향 인스턴트 라디오시티. In Proceedings of Eurographics Symposium on Rendering (2006), pp. 389-398. 6
[SIMP06b] SEGOVIA B., IEHL J.-C., MITANCHEY R., PÉROCHE B.: 교차된 샘플 패턴의 비교차 지연 셰이딩. Proc. SIGGRAPH/Eurographics Workshop on Graphics Hardware (2006). 12
[SIP07] SEGOVIA B., IEHL J. C., PÉROCHE B.: 메트로폴리스 인스턴트 라디오시티. Computer Graphics Forum 26, 3 (2007), 425-434. 6
[ST90] SAITO T., TAKAHASHI T.: 3D 형태의 이해 가능한 렌더링. Computer Graphics (Proc. SIGGRAPH) 24, 4 (1990), 197206. 12
[SVLL10] SALVI M., VIDIMČE K., LAURITZEN A., LEFOHN A.: 적응형 볼륨 그림자 맵. Computer Graphics Forum (Proc. Eurographics Symposium on Rendering) (2010), pp. 12891296. 13
[SW10] SEGOVIA B., WALD I.: 인스턴트 글로벌 일루미네이션을 위한 화면 공간 구형 고조파 필터. Tech. rep., Intel Corporation, 2010. 12
[Vea97] VEACH E.: Robust Monte Carlo Methods for Light Transport Simulation. PhD 논문, Stanford University, 1997. 4,6
[WABG06] WALTER B., ARBREE A., BALA K., GREENBERG D. P.: Multidimensional lightcuts. ACM Transactions on Graphics (Proc. SIGGRAPH) 25, 3 (2006), 1081-1088. 10, 11
[WFA*05] WALTER B., FERNANDEZ S., ARBREE A., BALA K., DONIKIAN M., GREENBERG D. P.: Lightcuts: a scalable approach to illumination. ACM Transactions on Graphics (Proc. SIGGRAPH) 24, 3 (2005), 1098-1107. 9, 10
[WKB*02] WALD I., KOLLIG T., BENTHIN C., KELLER A., SLUSALLEK P.: Interactive global illumination using fast ray tracing. In Proc. Eurographics Workshop on Rendering (2002), pp. 15-24. 12
[WKB12] WALTER B., KHUNGURN P., BALA K.: Bidirectional lightcuts. ACM Transactions on Graphics (Proc. SIGGRAPH) 31, 4 (2012), 59:1-59:11. 1, 10, 12
[WMHT65] WOODCOCK E., MURPHY T., HEMMINGS P., T.C. L.: 복잡한 기하학적 구조를 가진 원자로 및 기타 시스템에서 몬테카를로 중성자 계산을 위한 GEM 코드에서 사용된 기술들. Applications of Computing Methods to Reactor Problems (1965), Argonne National Laboratory, pp. 557-579. 5
[Wym11] WYMAN C.: Voxelized shadow volumes. ACM SIGGRAPH / Eurographics 고성능 그래픽스 회의 논문집 (2011), pp. 33-40. 13
[YCK*09] YU I., Cox A., KIM M. H., RITSCHEL T., GROSCH T., DACHSBACHER C., KAUTZ J.: 간접 조명에서 근사적인 가시성이 지각에 미치는 영향. ACM Transactions on Applied Perception 6, 4 (2009), 1-14. 13




























