VPL サンプリングのための効率的な可視関数の確率的評価
Efficient Probabilistic Visibility Evaluation for VPL Sampling
名畑 豪祐＊

岩崎 慶＊

土橋 宜典†

西田 友是‡

Kosuke NABATA＊ Kei IWASAKI＊ Yoshinori DOBASHI† and Tomoyuki NISHITA‡＊Wakayama University

和歌山大学

＊

†

北海道大学/JST CREST

†

‡

‡

広島修道大学/UEI リサーチ

Hokkaido University/JST CREST
Hiroshima Shudo University/UEI Research

1 はじめに間において，より多くのサンプルを計算できる．しかしながら，可視判定を確率的に行うため，可視判定を省略する確率を高く

CG の分野において，写実的な画像の効率的な生成は重要な研するほど，可視判定結果に対する分散が増加し，生成される画像究課題の一つである．写実的な画像は，映画，産業デザイン，建にノイズが生じる．そこで，確率的評価による分散の増加量とサ築設計，ゲームなど様々な分野で使用されている．写実的な画像ンプル数の関係を考慮し，与えられた時間内で分散を最小とすを生成するには直接光の寄与だけでなく，間接光の寄与も考慮る確率の導出を行う．また，VPL の寄与の位置・方向に関するする必要があるため，計算コストが高く，画像生成に多くの時間コヒーレンスを利用し，寄与の大きい VPL を重点的にサンプリを要する．

ングする手法を提案する．本研究により，正確に可視関数を評価

近年，効率的に写実的な画像を生成する手法として，多光源レした場合と比較して，同時間レンダリングにおいて，よりノイズンダリング法がよく研究されている[1,2]．この手法では，あらかの少ない画像を生成することができる．また，確率的に可視判定

じめシーン中に大量の仮想的な点光源（Virtual Point Light,を行う先行研究[9]と比較して，2.5 倍の可視判定削減率の向上VPL）を設置しておき，輝度を計算するシェーディング点では，を達成した．

入射する直接光，間接光の寄与を VPL の寄与で近似する．このとき，設置する VPL の数が多いほど近似精度が向上するが，計算時間は VPL 数に比例して増加する．そのため，少量の VPLをサンプリングし，VPL 全体の寄与を推定する手法が一般的で

2 研究背景2.1 先行研究ある[3,4,5]．推定結果には誤差が含まれるが，寄与の大きい VPL

多光源レンダリング法による輝度計算において，少量の VPLを重点的にサンプリングするか，サンプル数を増やすことによをサンプリングし，輝度を推定する手法が多く提案されている．

り誤差を低減することができる．

VPL の寄与は，放射強度，BRDF，幾何項，可視関数の積で計VPL の寄与を計算するには，シェーディング点と VPL 間の算される．これら 4 つの項の積に比例した VPL のサンプリング可視判定が必要となる．可視判定を行うには，シェーディング点を行うことで，分散の小さい高精度な推定を行うことができる．

から VPL に向かうレイとシーン中のすべての物体で交差判定

Wang らは，BRDF に比例した入射方向のサンプリングを利用を行う必要があり，最先端の高速化データ構造を使用しても非することで，放射強度・BRDF・幾何項の積に比例したサンプリ常に計算コストが高い処理である．そのため，VPL の寄与計算ング方法を提案した[3]．Georgiev らは，VPL の寄与を記録するにおいて，可視判定のための計算時間が支配的となっており，同キャッシュ点を使用することで，単純なシーンにおいて，VPL時間でより多く VPL をサンプリングするには，可視判定の高速の寄与に比例したサンプリングを行う方法を提案した[4]．Wu化が重要である．

らは，シェーディング点と VPL のクラスタ間で可視判定結果の本研究では，VPL の寄与計算において，可視判定を確率的に平均値を使用することで，複雑なシーンにおいても，VPL の寄行うことで，可視判定回数を削減し，効率的に写実的な画像を生与に比例したサンプリング方法を提案した[5]．しかしながら，成する手法を提案する．提案法では，ある確率で可視判定を省略

これらの手法は，VPL とシェーディング点の可視判定の高速化し，それ以外では実際に可視判定を行う．そのため，可視判定をを行っていない．特に[4][5]は，可視関数を考慮したサンプリン省略する確率を大きくするほど，可視判定回数を削減でき，同時グを行っているため，サンプリングされた VPL とシェーディン

グ点間は互いに可視である確率が高く，確率的評価によって可視判定回数の削減が期待できる．のためには確率関数の選択が重要となる．
理想的な確率関数の選択のために，式(2)の分散を考える．式

計算コストが高い可視判定の効率化を行う手法も多く提案されている．Popov らは，類似する経路間で可視判定結果を再利用することで，可視判定回数を削減する手法を提案した[6]．しかしながら，生成される画像には，経路空間の量子化による誤差が含まれる．Billen らは，可視判定の交差判定対象を確率的に選択することで，交差判定回数を削減する手法を提案した[7][8]．
しかしながら，同時間レンダリングにおいて分散が増加する結果となっており，実用的ではない．Veach は，画像生成の効率を考慮したロシアンルーレット法により，可視判定回数を削減する手法を提案した[9]．しかしながら，双方向パストレーシングにおいて導入された手法であるため，保守的な仮定を立てており，低効率である．名畑らは，可視判定結果を記録するキャッシ
ュ点を使用することで，可視判定回数を削減する手法を提案した[10]．しかしながら，すべての VPL に対して寄与計算を行っているため，計算コストが高いという問題がある．
提案法は，Veach の提案した画像生成の効率を考慮したロシ(2)の分散は以下の式で計算される．
̂𝑣𝑎𝑟 [𝐿𝑟 (𝑥, 𝑥𝑣)] =2

𝑁𝑣𝑝𝑙

𝐼 (𝑦𝑖, 𝑥) 𝑓𝑟 (𝑦𝑖, 𝑥, 𝑥𝑣) 𝐺 (𝑥, 𝑦𝑖) 𝑉 (𝑥, 𝑦𝑖)
1∑{− 𝐿𝑟 (𝑥, 𝑥𝑣)} 𝑝 (𝑦𝑖)𝑁𝑝 (𝑦 )
𝑖=1

(3)

𝑖

式(3)より，確率関数𝑝が𝐼･𝑓𝑟 ･𝐺･𝑉/𝐿𝑟 と類似するほど，つまり，VPL の寄与に比例するほど，分散を低減することができる．
確率関数の選択の他に分散を低減する方法としては，多数のサンプルを用いて推定することが挙げられる．式(3)より，推定値の分散はサンプル数𝑁に反比例して減少する．そのため，サンプリングを効率的に行うことができれば，同時間のレンダリングにおいて，より多くのサンプルをとることができ，低分散の推定が可能となる．
本研究では，𝐼(𝑦𝑖 , 𝑥)𝑓𝑟 (𝑦𝑖 , 𝑥, 𝑥𝑣 )𝐺(𝑥, 𝑦𝑖 )を VPL𝑦𝑖 からの暫定的な寄与𝑡𝑖 と定義する．また，表記簡略化のため𝑉(𝑥, 𝑦𝑖 ), 𝑝(𝑦𝑖 )を，それぞれ𝑣𝑖 ,𝑝𝑖 と表記する．

アンルーレット法を，多光源レンダリング法に応用し，VPL の寄与の一部をキャッシングすることで，さらなる効率化を行う．

3 提案法

Veach の手法では，寄与が小さい VPL に対して可視判定を省略

本研究では，多光源レンダリング法において可視関数を確率する確率が高くなるのに対し，提案法では，寄与が小さい VPL的に評価することで効率的に写実的な画像を生成する手法を提だけでなく，近傍で可視判定結果が類似している VPL に対しても可視判定を省略する確率を高く設定することができる．

VPL の重点的サンプリング法を提案する．提案法は，前処理とレンダリング処理から成る．前処理では VPL・シェーディング

2.2 多光源レンダリング法による輝度計算

点のクラスタを使用して VPL の寄与に比例した確率分布の構

多光源レンダリング法では，入射する直接光，間接光の寄与を，VPL の寄与で近似した以下の式で，シェーディング点𝑥から視点𝑥𝑣 方向に反射する放射輝度𝐿𝑟 を計算する[2]．
𝐿𝑟 (𝑥, 𝑥𝑣 ) = ∑ 𝐼 (𝑦 , 𝑥) 𝑓 (𝑦 , 𝑥, 𝑥 ) 𝐺 (𝑥, 𝑦 ) 𝑉 (𝑥, 𝑦 )𝑟𝑖𝑣𝑖

築を行う．レンダリング処理では，構築した確率分布を使用し，輝度計算を行う．このとき，計算時間の大部分を占める可視関数の評価を確率的に行うことで，同時間内でより多くのサンプル𝑁𝑣𝑝𝑙𝑖案する．また，VPL・シェーディング点のクラスタを使用した

𝑖(1)

𝑖=1

ここで，𝑁𝑣𝑝𝑙 は VPL の数，𝑦𝑖 は𝑖番目の VPL， 𝐼は放射強度1，𝑓𝑟 は BRDF，𝐺は幾何項，𝑉は可視関数である．十分な近似精度を使用することができる．

3.1 確率分布の構築
VPL サンプリングにより，反射する放射輝度を高精度で推定を得るには，大量の VPL が必要であるが，計算時間は VPL のするには，VPL の寄与に比例した確率分布を用いる必要がある．

数に比例して増加する．そこで，少量の VPL をサンプリングし，VPL の寄与は，放射強度，BRDF，幾何項，可視関数の積で計式(1)の値を推定する．
𝐿 (𝑥, 𝑥 )≈ 𝐿̂ (𝑥, 𝑥 )算される．これらの項は，VPL とシェーディング点の両方に依𝑟𝑣𝑟存するが，放射強度については，VPL の光の放射特性を完全拡𝑣𝑁𝐼 (𝑦𝑠, 𝑥) 𝑓𝑟 (𝑦𝑠, 𝑥, 𝑥𝑣) 𝐺 (𝑥, 𝑦𝑠) 𝑉 (𝑥, 𝑦𝑠)
1(2)
= ∑𝑁
𝑝 (𝑦 )𝑠=1𝑠

ここで，
𝑁は VPL のサンプル数，𝑦𝑠 は𝑠回目の試行における VPL

散で近似することで，VPL のみに依存する項として扱うことができる[1]．そのため，BRDF，幾何項，可視関数の積の高精度な近似値が得られれば，おおよそ VPL の寄与に比例した確率分布を構築することができる．

サンプルであり，確率関数𝑝に従いサンプリングされる．使用す位置と法線が類似するシェーディング点と，位置と光の放射る確率関数は任意に選択でき，式(2)の期待値は式(1)と一致する．

方向が類似する VPL 間では，BRDF，幾何項，可視関数の積もただし，推定値の分散は確率関数に大きく依存し，効率的な推定類似する．そこで提案法では，VPL，シェーディング点を，位置1 VPL 生成点に入射するフォトン放射束と BRDF の積で計算される．

と法線（VPL の場合は光の放射方向）に基づきクラスタリング小となる値を使用する．提案法の可視関数の推定値の分散は以[11]する．そして，各 VPL クラスタと各シェーディング点クラ下の式で計算される．

スタ間で，少量の要素（10 個程度）をサンプリングし，BRDF，(𝑣𝑖 𝑞𝑖 − 𝛼𝑖 )2(7)𝑞𝑖 (1 − 𝑞𝑖 )式(7)より，𝛼𝑖 = 𝑣𝑖 𝑞𝑖 のとき，確率的評価による分散は0 となる．

幾何項，可視関数の積の平均値を計算する．各シェーディング点クラスタでは，この平均値を使用して VPL とシェーディング点間の寄与を近似し，確率分布を構築する．
しかしながら，VPL とシェーディング点の位置関係などによって，BRDF，幾何項，可視関数の積のよい近似値が得られない場合がある．そこで提案法では，サンプリングした要素の分散とVPL クラスタの要素数の積を誤差の指標として，誤差の大きいVPL クラスタを分割する．そして，分割した VPL クラスタとシェーディング点クラスタで，再度，BRDF，幾何項，可視関数

𝑣𝑎𝑟[𝑉̃(𝑥, 𝑦𝑖 )] =しかしながら，可視関数の値𝑣𝑖 は未知であるため，可視関数の近似値が必要となる．提案法では，各シェーディング点クラスタと各 VPL クラスタ間で可視関数値の平均を計算しておき，シェーディング点𝑥が所属するシェーディング点クラスタ，VPL𝑦𝑖 が所属する VPL クラスタ間の可視関数値の平均を𝑣𝑖 の近似値𝑟𝑖 として用い，𝛼𝑖 = 𝑟𝑖 𝑞𝑖 とする．式(4)，式(7)に𝛼𝑖 = 𝑟𝑖 𝑞𝑖 を代入した式は以下となる．
𝑉̃(𝑥, 𝑦𝑖 ) = 𝑣 − 𝑟 𝑞𝑖𝑖 𝑖
それ以外{ 1 − 𝑞𝑖𝑞𝑖 (𝑣𝑖 − 𝑟𝑖 )2𝑣𝑎𝑟[𝑉̃(𝑥, 𝑦𝑖 )] =1 − 𝑞𝑖

以下か，VPL クラスタ数が指定数に達するまで行う．

3.2 可視関数の確率的評価可視関数は 2 点間の可視性を表す関数で，シェーディング点𝑥と VPL𝑦𝑖 間の可視関数𝑣𝑖 は，𝑥と𝑦𝑖 が互いに可視の場合 1 を返確率𝑞𝑖 で選択𝑟𝑖の積の平均値を計算する．以上の分割処理を，誤差の指標が閾値

(8)

(9)

3.2.2 確率𝒒𝒊 の計算し，それ以外は 0 を返す．可視関数の評価は計算コストが高く，可視関数を確率的に評価した場合，可視関数の推定値の分散

VPL の寄与計算において，可視関数評価の計算時間が支配的での増加量と，1 サンプル当たりの計算時間はトレードオフの関ある．そこで提案法では，以下の式を用いて可視関数の値を推定係にある．そこで，推定値の分散は，サンプル数に反比例して減する．

少するという関係から，与えられた時間内で分散を最小とする
𝑉̃ (𝑥, 𝑦𝑖 ) =𝛼𝑖𝑞𝑖

確率𝑞𝑖 で選択確率𝑞𝑖 を導出する．

(4)𝑣𝑖 − 𝛼𝑖
それ以外{ 1 − 𝑞𝑖
また，可視関数の推定値の期待値𝔼[𝑉̃ (𝑥, 𝑦𝑖 )]は以下の式で計算される．

1 サンプルの場合において，提案法の可視関数の推定式(8)を用いたときの輝度の推定値の分散は以下の式で計算される．
𝑁𝑣𝑝𝑙
2
𝑡𝑗2 𝑞𝑗 (𝑣𝑗 − 𝑟𝑗 )(1)
(1)
𝑣𝑎𝑟[𝐿̃𝑟 (𝑥, 𝑥𝑣 )] = 𝑣𝑎𝑟[𝐿̂𝑟 (𝑥, 𝑥𝑣 )] + ∑ 2
𝑝𝑗
1 − 𝑞𝑗𝑝
𝑗=1 𝑗(10)𝛼𝑖𝑣𝑖 − 𝛼𝑖(1 − 𝑞𝑖 ) = 𝑣𝑖
𝑞 +(5)
𝑞𝑖 𝑖 1 − 𝑞𝑖
ここで，パラメータ𝛼𝑖 は任意の実数であり，推定値の期待値は真

ここで，𝑣𝑎𝑟[𝐿̂(1)𝑟 (𝑥, 𝑥𝑣 )]はサンプル数が 1 の場合の式(3)である．

値と一致する．提案法の可視関数の推定式では，確率𝑞𝑖 で可視関では必ず分散が増加する．次に，時間𝑇が与えられたときに，計数の評価を省略し，𝛼𝑖 /𝑞i を推定値とする．そして，確率(1 − 𝑞𝑖 )算できるサンプル数は以下の式で計算される．
𝑇 − 𝑡𝑥𝑁 = 𝑁𝑣𝑝𝑙∑𝑗=1 {𝑡𝑠𝑘𝑖𝑝 𝑞𝑗 + 𝑡𝑒𝑣𝑎𝑙 (1 − 𝑞𝑗 )}𝑝𝑗

𝔼[𝑉̃(𝑥, 𝑦𝑖 )] =で実際に可視関数を評価し，𝑣𝑖 に0か1の結果を代入した値を推定値とする．そのため，確率𝑞𝑖 を大きくするほど，計算コストがまた，第 2 項は可視関数の確率的評価による分散の増加量を表しており，可視関数を確率的に評価する場合，1 サンプルの場合高い可視関数の評価を省略でき，同時間においてより多くのサ=ンプルを計算することができる．
提案法では，可視関数を推定式で置き換えた以下の式で輝度計算を行う．

(11)

𝑁𝑣𝑝𝑙
𝑡𝑒𝑣𝑎𝑙 − 𝑡𝑑𝑖𝑓𝑓 ∑𝑗=1𝑞𝑗 𝑝𝑗

ここで，𝑡𝑥 はシェーディング点の生成にかかる時間，𝑡𝑠𝑘𝑖𝑝 と𝑡𝑒𝑣𝑎𝑙はそれぞれ可視関数評価を省略した場合，評価した場合の VPL

𝑁1𝑡𝑠 𝑉̃(𝑥, 𝑦𝑠 )𝐿̃𝑟 (𝑥, 𝑥𝑣) = ∑𝑁𝑝𝑠𝑇 − 𝑡𝑥

(6)

𝑠=1

可視関数の推定値の期待値が真値と一致するため，輝度の推定の寄与計算にかかる時間であり，𝑡𝑑𝑖𝑓𝑓 = 𝑡𝑒𝑣𝑎𝑙 − 𝑡𝑠𝑘𝑖𝑝とおいた．
式(10)，式(11)より，𝑁サンプルの場合において，輝度の推定値の分散は以下の式で表される．

値の期待値も真値と一致する．

𝑁𝑣𝑝𝑙
(1)

{ 𝑣𝑎𝑟[𝐿̂𝑟 (𝑥, 𝑥𝑣 )] + ∑3.2.1 パラメータ𝜶𝒊 の計算提案法では，可視関数を確率的に評価するため，可視関数の推定値には誤差が含まれる．そこで，パラメータ𝛼𝑖 には，誤差が最𝑗=1

𝑁2
𝑣𝑝𝑙
𝑡𝑒𝑣𝑎𝑙 − 𝑡𝑑𝑖𝑓𝑓 ∑𝑗=1𝑞𝑗 𝑝𝑗
𝑡𝑗2 𝑞𝑗 (𝑣𝑗 − 𝑟𝑗 )𝑝}{} (12)𝑗𝑇 − 𝑡𝑥
𝑝𝑗2 1 − 𝑞𝑗

なお，分散が最小となる確率𝑞𝑖 の計算において定数は影響しないため，以降定数(𝑇 − 𝑡𝑥 )−1 は省略する．VPL𝑦𝑖 に対する可視関数評価の省略確率を計算するために，式(12)を𝑞𝑖 について偏微分し，結果を 0 とおくと以下の式が得られる．

前の𝑀個のサンプルを使用した𝑞𝑘 ,𝑐𝑘 ,𝑐𝑘2 の平均値の計算が必要

𝑁𝑣𝑝𝑙となるが，移動平均アルゴリズムを用いることで効率的に計算

𝑡𝑖2 (𝑣𝑖 − 𝑟𝑖 )2 𝑡𝑒𝑣𝑎𝑙− ∑ 𝑞𝑗 𝑝𝑗 }{𝑝𝑖2 (1 − 𝑞𝑖 )2 𝑡𝑑𝑖𝑓𝑓
𝑗=1

𝑁𝑣𝑝𝑙
(1)

− { 𝑣𝑎𝑟[𝐿̂𝑟 (𝑥, 𝑥𝑣 )] + ∑𝑗=1(13)

2𝑡𝑗2 𝑞𝑗 (𝑣𝑗 − 𝑟𝑗 )𝑝𝑗 } = 0𝑝𝑗2 1 − 𝑞𝑗

できる．なお本研究では，使用する直前のサンプル数𝑀は VPLサンプル数とした．また，直前に VPL サンプルが存在しない場合は，可視関数評価の省略確率を 0 とした．

式(13)において，2 つの中括弧内の値の計算には，他の VPL に近似値𝑡̂,𝜎̂ 2 を直前の VPL サンプルから計算するため，良い近対する可視関数評価の省略確率が含まれるため，VPL𝑦𝑖 に対す似を行うには直前のシェーディング点と現在のシェーディングる可視関数評価の省略確率の計算は困難である．そのため提案

点で VPL からの寄与が相関している必要があり，シェーディン法では，シェーディング点において輝度計算を開始する直前のグ点の計算順序が重要となる．シェーディング点クラスタ内のVPL サンプルの情報を使用し，各中括弧内の値をそれぞれ𝑡̂,𝜎̂ 2

シェーディング点は，VPL からの寄与が相関していることが期で近似する．
（近似方法は 4.1 節で述べる．
）

待されるため，本研究では，シェーディング点クラスタを 1 つのレンダリング単位として，クラスタ内の全シェーディング点

𝑡𝑖2 (𝑣𝑖 − 𝑟𝑖 )2𝑡̂ − 𝜎̂ 2 = 0
𝑝𝑖2 (1 − 𝑞𝑖 )2(14)式(14)を𝑞𝑖 について解くことで，与えられた時間内で推定値の分で輝度計算が終了してから，次のクラスタを処理する方法を採用した．

散を最小とする可視関数評価の省略確率が得られる．
𝑡 2 (𝑣𝑖 − 𝑟𝑖 )2 𝑡̂
𝑞𝑖 = 1 − √ 𝑖𝜎̂ 2
𝑝𝑖2(15)式(15)では，パラメータ𝛼𝑖 の計算時と同様，未知の可視関数𝑣𝑖 が含まれるため𝑣𝑖 の近似が必要となる．平方根内に含まれる(𝑣𝑖 −𝑟𝑖 )2 について考えると，𝑟𝑖 はシェーディング点クラスタと VPLクラスタ間の可視関数の平均であることから，この項は平均値𝑟𝑖 と𝑣𝑖 の差の 2 乗である．そのためこの項は，シェーディング点クラスタと VPL クラスタ間の可視関数の分散によってよく近似できる．なお，可視関数の値は 0 か 1 であることから，シェーディング点クラスタと VPL クラスタ間の可視関数の分散は𝑟𝑖 − 𝑟𝑖2 で計算できる．また，式(15)において，可視関数評価の省略確率𝑞𝑖 が負になる場合があるが，その場合は𝑞𝑖 = 0として𝑉̂(𝑥, 𝑦𝑖 )を評価すればよい．

定している．そのため，実際には 0 より大きい値を持つ VPL とシェーディング点の組があるにも関わらず，平均値が 0 と推定された場合，その組のサンプリング確率は 0 となるため，推定値は真値に収束しない．
そのため提案法では，平均値を使用した確率分布と，すべてのVPL を一様にサンプリングする一様分布を用いて輝度計算を行う．なお，実際に 2 つの確率分布を用いて輝度計算を行う必要はなく，平均値を使用した確率分布と一様分布を平均した 1 つの確率分布を構築し，輝度計算を行えばよい．

提案法では，可視関数評価の省略確率の計算式（式(15)）中の(𝑣𝑖 − 𝑟𝑖 )2の項を，シェーディング点クラスタと VPL クラスタ̂ 𝟐 の計算
4.1 パラメータ𝒕̂,𝝈提案法の可視関数の確率的評価法において，VPL𝑦𝑖 に対する可視関数の省略確率の計算の際，他の VPL に依存する項𝑡̂,𝜎̂ 2 の計算が必要となる．提案法では，シェーディング点で輝度計算を開始する直前の𝑀個の VPL サンプルの情報を用いて推定する．
𝑀𝑡𝑒𝑣𝑎𝑙 1− ∑ 𝑞𝑘
𝑡𝑑𝑖𝑓𝑓 𝑀

(16)

𝑘=1

𝑀

𝜎̂ 2

提案法では，VPL クラスタとシェーディング点クラスタ間で，BRDF，幾何項，可視関数の積の平均値をサンプリングにより推4.2.2 可視関数評価の省略確率

4 実装の詳細𝑡̂ =4.2 バイアスの回避
4.2.1 VPL サンプリング

𝑀21𝑡𝑘 𝑉̃(𝑥, 𝑦𝑘 )1𝑡𝑘 𝑉̃(𝑥, 𝑦𝑘 )=∑() −( ∑)
𝑀𝑝𝑘
𝑀
𝑝𝑘
𝑘=1
𝑀𝑀

𝑘=1

𝑘=1

2

11=∑ 𝑐𝑘2 − ( ∑ 𝑐𝑘 )𝑀
𝑀間の可視関数の分散で近似する．分散が 0 の場合，可視関数評価の省略確率は 1 となるため，実際の可視関数の値と，シェーディング点クラスタと VPL クラスタ間の可視関数の平均値が異なる場合，推定値は真値に収束しない．そのため，シェーディング点クラスタと VPL クラスタ間の可視関数の分散を，適当な値で下限をクランプした値で(𝑣𝑖 − 𝑟𝑖 )2 の項を近似する．下限値は 0.1 程度に設定すれば良好な結果が得られている．

24.3 負値の可視関数

𝑘=1

(17)

ここで，𝑦𝑘 は直前の𝑘番目の VPL サンプルであり，𝑞𝑘 ,𝑡𝑘 ,𝑝𝑘 はそれぞれ VPL サンプル𝑦𝑘 に対する可視関数評価の省略確率，暫定的な寄与，サンプリング確率である．式(16)，式(17)では，直提案法による可視関数の推定値は 0 か 1 ではなく，負の値も取りうるため，放射輝度の推定値が負となることがある．現在の実装では，各ピクセルに対応する放射輝度値は負の値のまま保持しておき，最終的に画像として保存する際に，0 でクランプしRMSE = 0.100021(a) 一様サンプリング

RMSE = 0.068055(b) パワーサンプリング

RMSE = 0.051957(c) 提案法(可視関数評価)

RMSE = 0.047964
RMSE = 0.041961(d) Veachの手法(e) 提案法(確率的評価)
図1 同時間（150秒）レンダリング結果の誤差比較

RMSE = 0.397117(a) 一様サンプリング

RMSE = 0.356253(b) パワーサンプリング

RMSE = 0.228430(c) 提案法(可視関数評価)

RMSE = 0.201967
RMSE = 0.190752(d) Veachの手法(e) 提案法(確率的評価)
図2 同時間（160秒）レンダリング結果の誤差比較

RMSE = 0.084957(a) 一様サンプリング

RMSE = 0.067902(b) パワーサンプリング

RMSE = 0.048753(c) 提案法(可視関数評価)

RMSE = 0.046487
RMSE = 0.044169(d) Veachの手法(e) 提案法(確率的評価)
図3 同時間（400秒）レンダリング結果の誤差比較
表 1 シーン情報
解像度

三角形数

VPL 数

シェーディング点
クラスタ数

VPL
クラスタ数

𝑡𝑠𝑘𝑖𝑝
𝑡𝑒𝑣𝑎𝑙

図1

1,280×960

279K

100K

3,338

1,4170.25

図21,280×960

787K

250K

5,513

2,6030.34

図31,280×960

10M

500K

6,210

2,3180.15ている．そのため，0 以下の値がある場合，生成された画像は統計的に偏りのあるものとなる．しかしながら，可視関数の推定値自体は不偏推定量であり，サンプル数を増やすことで真値へ収束するため，問題はないと思われる．

5 実験結果
実験には，Intel Core i7-4790K 4.00GHz CPU，16.0GB を搭載した PC を使用し，マルチスレッドによる並列化を行っている．レイとシーンの交差判定に使用する高速化データ構造には，

表 2 同誤差画像の生成時間の比較（括弧内は高速化率）
提案法(可視関数評価)

Veach の手法

Veach の手法

提案法

平均削減率 = 24%

平均削減率 = 54%

平均削減率 = 20%

平均削減率 = 49%

平均削減率 = 13%

平均削減率 = 35%

提案法

図 1(c)

150 秒

134 秒(×1.12) 107 秒(×1.40)

図 2(c)

160 秒

147 秒(×1.09) 133 秒(×1.20)

図 3(c)

400 秒

371 秒(×1.08) 345 秒(×1.16)

SIMD 命令に最適化された 4 分木の BVH[12]を使用している．
なお，可視関数の推定式のパラメータである𝑡𝑒𝑣𝑎𝑙 と𝑡𝑠𝑘𝑖𝑝 は，可視関数の省略確率を 0 とした場合，1 とした場合で時間を事前に計測し，その平均値を用いた．また，他手法との比較の際に用いる推定値の誤差の指標には，RMSE (Root Mean SquareError)を使用する．比較対象は，確率関数が全 VPL で一定の一様サンプリング，VPL の放射強度に比例した確率分布のパワーサンプリング，先行研究である Veach の手法とする．また，可視関数の確率的評価法の有効性を示すために，提案法の確率分布を用い，可視関数は正確に評価する場合との比較も行う．なお，Veach の手法で用いる確率分布は提案法のものとし，可視関数の確率的評価法のみが異なるようにしている．
同時間レンダリングでの推定値の誤差の比較結果を図 1 から

図 4 可視関数の評価回数の削減率の可視化

図 3 に示す．なお，図 2 のシーンは適度な光沢反射材質を適用している．各シーンの情報は表 1 に示す通りである．図(a)(b)(c)より，提案法の確率分布を用いたサンプリング法が，一様サンプリング，パワーサンプリングより RMSE を減少できていることが分かる．また，図(c)(d)(e)より，Veach の提案した可視関数の確率的評価法では，RMSE の減少量がわずかであるのに対し，提案法の可視関数の確率的評価法では，RMSE をより減少させることができている．

(a): サンプル数 10(b): サンプル数 50
図 5 サンプル数の不足によるアーティファクト

提案法と Veach の手法で，図 1 から図 3 の(c)と同誤差の画像生成に必要な計算時間を計測した結果を表2に示す．
結果より，Veach の手法では，最大でも 1.12 倍の高速化率であるのに対し，提案法では 1.16 倍から 1.40 倍の高速化率が得られており，提案法の優位性が分かる．
提案法と Veach の手法で，可視関数の確率的評価法による，可視関数の評価回数の削減率の比較を行う．図 4 は，図 1 から
図 3 をレンダリングした際の可視関数の評価回数の削減率を可視化した画像である．結果より，提案法が Veach の手法より高い削減率が得られていることが分かる．特に，Veach の手法で6 制限事項提案法では，確率分布の構築の際，VPL クラスタとシェーデ
ィング点クラスタ間の要素をサンプリングし，BRDF，幾何項，可視関数の積の平均値を推定している．そのため，指向性の強い材質などでは正確な推定値が得られず，生成される画像にブロック状のアーティファクトが発生する（図 5(a)）．サンプル数を増加させることで，アーティファクトの発生を抑えることができるが（図 5(b)），確率分布構築の計算時間が増加してしまう．

は，分散の小さい平らな領域で削減率が 10%程度であるのに対し，提案法では，そのような領域でも可視関数の相関を利用することで 40%程度の削減率が得られている．図 3 のシーンで削減率が低くなっているが，このシーンはジオメトリが非常に複雑であり，可視関数の相関が小さいためと思われる．

7 まとめ
本研究では,確率的な手法を用いて可視判定回数を削減し，写実的な画像を効率的に生成する手法を提案した．提案法では，可視関数を確率的に評価するため，可視関数が新たな分散の要因となるが，可視関数評価を省略することによる計算コストの減少量と，可視関数の確率的評価による分散の増加量の関係を考慮した可視関数評価の省略確率を用いることで，与えられた時[11] J. Ou, and F. Pellacini, “LightSlice: Matrix Slice

間内でよりノイズの少ない画像を生成することができる．また，Sampling for the Many-Lights Problem”, ACM

VPL とシェーディング点のクラスタを使用し，おおよそ VPL のTransactions on Graphics, Vol. 30, No. 6, pp. 179:1-寄与に比例した確率分布を構築する手法を提案した．提案法の179:8, 2011.

可視関数の確率的評価法を用いることで，従来の可視関数の確[12] H. Dammertz, J. Hanika, and A. Keller, “Shallow

率的評価法と比較し，より効率的にレンダリングを行えること

Bounding Volume Hierarchies for Fast SIMD Rayを示した．

Tracing of Incoherent Rays”, Computer Graphics

今後の研究課題としては，双方向パストレーシングへの応用，GPU に適したアルゴリズムの開発などが挙げられる．
参考文献
[1]

C. Dachsbacher, J. Krivanek, M. Hasan, A. Arbree, B.
Walter, and J. Novak, “Scalable Realistic Renderingwith Many-light Methods”, Eurographics STAR, 2013.

[2]

A. Keller, “Instant Radiosity”, Proc. of SIGGRAPH ’97,
pp. 49-56, 1997.

[3]

R. Wang, and O. Akerlund, “Bidirectional ImportanceSampling for Unstructured Direct Illumination”,
Computer Graphics Forum, Vol. 28, No. 2, pp. 269-278,
2009.

[4]

I. Geogiev, J. Krivanek, S. Popov, and P. Slusallek,“Importance Caching for Complex Illumination”,
Computer Graphics Forum, Vol. 31, No. 2, pp. 701-710,
2012.

[5]

Y. T. Wu, and Y. Y. Chuang, “VisibilityCluster: Average
Directional Visibility for Many-Light Rendering”, IEEETransaction on Visualization and Computer Graphics,
Vol. 19, No. 9, pp. 1566-1578, 2013.

[6]

S. Popov, I. Georgiev, P. Slusallek, and C. Dachsbacher,“Adaptive Quantization Visibility Caching”, ComputerGraphics Forum, Vol. 32, No. 2, pp. 399-408, 2013.

[7]

N. Billen, B. Engelen, A. Lagae, and P. Dutre,“Probabilistic Visibility Evaluation for Direct
Illumination”, Computer Graphics Forum, Vol. 32, No.
4, pp. 39-47, 2013.

[8]

N. Billen, A. Lagae, and P. Dutre, “ProbabilisticVisibility Evaluation using Geometry Proxies”,
Computer Graphics Forum, Vol. 33, No. 4, pp. 143-152,
2014.

[9]

E. Veach, “Robust Monte Carlo Methods for Light
Transport Simulation”, PhD thesis, Stanford
University, 1998.

[10] 名畑豪祐, 岩崎慶, 土橋宜典, 西田友是, ”多光源レンダリ
ング法のための効率的な可視関数の確率的評価”，
VC/GCAD 合同シンポジウム 2014, pp. 13:1-13:6, 2014.

Forum, Vol. 27, No. 4, pp. 1225-1233, 2008.