【コラム】

3Dグラフィックス・マニアックス

76 3Dモデルの変形までが可能な動的PRT(5)~SH Exp演算の大胆な近似による高速化

 

76/99

SH Exp演算の大胆な近似による高速化

SH Exp演算については定義通りのまじめな演算を行うのも一案だが、リアルタイムのパフォーマンスを向上させるために、ここでも近似手法を導入する。

ある値の指数は級数展開すると下図のように表すことができる。この計算はべき乗や除算が含まれるために計算負荷が高い。そこでSHEXP技法の開発研究グループでは最初の2つの項だけで近似するという大胆な手法を採択した。しかし、そのままだと誤差が大きすぎるため、重み付きの線形和で近似をする。

SHEXP演算を最初の2項だけで近似する大胆な手法を導入してパフォーマンスを稼ぐ

2つの線形項に掛ける2つの重み係数は、事前計算でテーブル化して用意しておく。となれば、この重み係数が重要になってくる。

SHEXP技法の研究開発グループでは、この2つの重み係数の算出には一般的な数値計算で用いられる最小二乗法を用いた。

ある遮蔽情報から、その遮蔽係数ベクトルgを求めて、これをSH Log演算でSH Log空間に変換してfとしたとき、fの値から最小二乗法で、その2つの重み係数a,bが求まるので、事前計算して作成するテーブルはfをキーにしてa,bを求める方針が考えられる。

しかし、これは実現が難しい。というのも、いくら登場する3Dモデルが球のみとはいうものの、球の重なり具合やその組み合わせは無数にあり、これに対応する自己遮蔽の状態gも無数にあるわけで、つまりはfも無数に存在することになってしまう。fをキーにしたテーブルはサイズが膨大になってしまい、現実味がないのだ。

SH Exp演算の概念図。パフォーマンス向上のために最初の線形項2つと重み係数を用いた計算に近似する。その重み係数はテーブルを用いる

あらゆる遮蔽情報についてのSH Log空間でのfを求め、そのfから対応する2つの重み係数a,bを得るというのが基本発想。しかし、遮蔽の組み合わせが膨大すぎる

そこで、さらに妥協条件を与える。それはfではなくてfの絶対値をキーにするという条件。さらに、その絶対値の上限と下限を決めてしまうという簡略化の妥協も組み込む。こうすることで、なんとかテーブル化が見込めそうに思えてくる。

テーブル化実現のためにさらに妥協案を導入する

妥協案としては大胆すぎるので、このままでは近似精度があまり良くない。そこで精度向上のための工夫を施す。

SH Log空間に変換された遮蔽係数ベクトルの要素のうち、絶対値が大きいのは最初の項だけなので、この最初の項のみはまじめにSH Exp計算を行うようにするのだ。絶対値が大きい最初の項の精度が上がれば、精度が向上する……これを狙うわけだ。

具体的には、SH Log空間の遮蔽係数ベクトルの最初の項と第2項以降を分解しも最初の項についてはSH Exp計算を行い、それ以降については、その大胆な2つの重み係数テーブルを用いた簡略計算を行うようにする。

精度に大きく影響する絶対値の大きい最初の項と、第2項以降で計算手法を使い分ける

この理屈を利用するためには、2つの重み係数を取得するためのテーブルを、SH Log空間の遮蔽係数ベクトルの最初の項を除いたうえで作成する必要がある

2つの重み係数を得るためのテーブル作成の第二案。前出の図と概念的には同じだが、SH Log空間の遮蔽係数ベクトルの最初の項を除いた事に対応したものにする

なお、このテーブルでは、キーとするfの値に絶対値の下限と上限を設定するという妥協案を適用したが、では、その条件を満たせない(範囲外の)fについてはどう取り扱えばよいのだろうか。

fの絶対値が下限上限を超えている場合、下限上限範囲に入るまで、その値を1/2にしていく。そして、下限上限範囲に入ったらテーブルから求めた係数a,bを取りだし、その値からSH Expの近似を求めるが、求めた値に対して、先ほどの1/2にした回数分だけ、Triple Product計算をするとつじつまが合うという。この理屈についての数学的な証明もここでは省略する。

テーブル外への対処の具体例

遮蔽係数ベクトルの統合をSH Log空間で行い、SH Exp演算で通常空間に戻せれば、あとは陰影処理(輝度計算)を行うだけだ。これについての処理系はPSF技法と理屈はまったく同じなので、これ以降の処理については解説を省略する。

自己変形可能な3Dモデルに対しても動的PRTが適用可能になったことでPRTの応用範囲は劇的に広がる

輝度計算時の反射モデルを変更すれば当然金属っぽい質感も表現可能だ

動的PRTの可能性

2002年に登場時、PRTは3Dゲームグラフィックスとは無縁な技術と思われてきたが、GPUの進化と、PRT技術そのものの進化により、3Dゲームグラフィックスへの応用への期待が高まってきたといえる。

特に3Dモデルが変形しても適用できるSHEXP技法の動的PRTは、ボーンスキニングされた3Dキャラクタにも対応できるということであり、人間や動物といった動的な3Dキャラクタ表現にも問題なく対応できることだ。これが広く活用されるようになれば、3Dゲームグラフィックスのリアリティは向上し、表現の幅もさらに拡張されることだろう。

本稿で取り扱ったPRTは遮蔽(影)に限定したテーマであったが、PRTとはもともと「光の伝搬」(RADIANCE TRANSFER)を「事前計算」(PRECOMPUTE)する一般形であるため、事前計算する要素を別のものにしたり、あるいは増やしていくことで、複雑かつ特殊な材質の表現も可能だ。例えば、皮膚のような半透明材質の表現や、二次反射光以降の複雑な相互反射の陰影処理なども可能だ。

現状のSHEXP技法の動的PRTでも、基本的に頂点単位の陰影処理となり、なおかつPRTの単位が球体近似化された形状単位になるので、細かいディテールにまで配慮した複雑な光の伝搬を再現できるわけではないが、一般的な反射モデルを用いたピクセル単位の陰影処理と組み合わせれば、そうした欠点も補えることだろう。

可能性は見えたとはいえ、3Dゲームグラフィックスに応用するには、まだまだ、処理速度やビデオメモリ容量の観点で乗り越えるべき課題は多いように思える。しかし、これはハードウェアの進歩でどうにかなる問題だ。

そういった意味において、今世代以降のPCゲーム等の先進エンジンなどでは、動的PRTの実装が始まる可能性は高い。

PRTの対象要素例。点PにおいてPRTできる要素はいっぱいある。ただし、取り扱う要素が多くなればなるほど計算負荷は高くなり、消費ビデオメモリ量は増える。しかし、これは、裏を返せば、GPU進化で解決できる問題とも言える

(トライゼット西川善司)

76/99

インデックス

連載目次
第99回 3D立体視の解体新書 - 立体視という知覚(4)~単眼立体視と両眼立体視の有効範囲の考察
第98回 3D立体視の解体新書 - 立体視という知覚(3)~両眼立体視
第97回 3D立体視の解体新書 - 立体視という知覚(2)~単眼立体視(2)
第96回 3D立体視の解体新書 - 立体視という知覚(1)~単眼立体視(1)
第95回 人工知性でコンテンツを生成するプロシージャル技術(19)
第94回 人工知性でコンテンツを生成するプロシージャル技術(18)
第93回 人工知性でコンテンツを生成するプロシージャル技術(17)
第92回 人工知性でコンテンツを生成するプロシージャル技術(16)
第91回 人工知性でコンテンツを生成するプロシージャル技術(15)
第90回 人工知性でコンテンツを生成するプロシージャル技術(14)
第89回 人工知性でコンテンツを生成するプロシージャル技術(13)
第88回 人工知性でコンテンツを生成するプロシージャル技術(12)
第87回 人工知性でコンテンツを生成するプロシージャル技術(11)
第86回 人工知性でコンテンツを生成するプロシージャル技術(10)
第85回 人工知性でコンテンツを生成するプロシージャル技術(9)
第84回 人工知性でコンテンツを生成するプロシージャル技術(8)
第83回 人工知性でコンテンツを生成するプロシージャル技術(7)
第82回 人工知性でコンテンツを生成するプロシージャル技術(6)
第81回 人工知性でコンテンツを生成するプロシージャル技術(5)
第80回 人工知性でコンテンツを生成するプロシージャル技術(4)
第79回 人工知性でコンテンツを生成するプロシージャル技術(3)
第78回 人工知性でコンテンツを生成するプロシージャル技術(2)
第77回 人工知性でコンテンツを生成するプロシージャル技術(1)
第76回 3Dモデルの変形までが可能な動的PRT(5)~SH Exp演算の大胆な近似による高速化
第75回 3Dモデルの変形までが可能な動的PRT(4)~SH Log演算とSH Log次元における遮蔽の統合
第74回 3Dモデルの変形までが可能な動的PRT(3)~帯域調和関数(Zonal Harmonics)の導入
第73回 3Dモデルの変形までが可能な動的PRT(2)~SH LogとSH Expとは?
第72回 3Dモデルの変形までが可能な動的PRT(1)~3Dモデルの変形に対応した動的PRT技術の台頭
第71回 限定条件付き動的PRT(2)~PSF技法におけるライティング
第70回 限定条件付き動的PRT(1)~動的PRT第一段階PSF技法とは?
第69回 事前計算放射輝度伝搬(PRT)~PRTの基本。静的PRT(4)
第68回 事前計算放射輝度伝搬(PRT)~PRTの基本。静的PRT(3)
第67回 事前計算放射輝度伝搬(PRT)~PRTの基本。静的PRT(2)
第66回 事前計算放射輝度伝搬(PRT)~PRTの基本。静的PRT(1)
第65回 事前計算放射輝度伝搬(PRT)~PRTとは?
第64回 表面下散乱によるスキンシェーダ(8)~表面下散乱とスキンシェーダ(6)
第63回 表面下散乱によるスキンシェーダ(7)~表面下散乱とスキンシェーダ(5)
第62回 表面下散乱によるスキンシェーダ(6)~表面下散乱とスキンシェーダ(4)
第61回 表面下散乱によるスキンシェーダ(5)~表面下散乱とスキンシェーダ(3)
第60回 表面下散乱によるスキンシェーダ(4)~表面下散乱とスキンシェーダ(2)
第59回 表面下散乱によるスキンシェーダ(3)~表面下散乱とスキンシェーダ(1)
第58回 表面下散乱によるスキンシェーダ(2)~ハーフライフ2で採用の疑似ラジオシティライティング(2)
第57回 表面下散乱によるスキンシェーダ(1)~ハーフライフ2で採用の疑似ラジオシティライティング(1)
第56回 水面の表現(5)~大きな波
第55回 水面の表現(4)~水面のライティング(2)
第54回 水面の表現(3)~水面のライティング(1)
第53回 水面の表現(2)~動的なさざ波
第52回 水面の表現(1)~水面表現の歴史
第51回 HDRレンダリング(11)~トーンマッピング
第50回 HDRレンダリング(10)~HDRブルーム/グレア処理
第49回 HDRレンダリング(9)~HDRテクスチャ
第48回 HDRレンダリング(8)~HDRレンダーターゲット
第47回 HDRレンダリング(7)~HDRレンダリングのプロセス
第46回 HDRレンダリング(6)~HDRレンダリングの歴史と動向(2)
第45回 HDRレンダリング(5)~HDRレンダリングの歴史と動向(1)
第44回 HDRレンダリング(4)~HDRレンダリングの第三の効能
第43回 HDRレンダリング(3)~HDRレンダリングの第二の効能
第42回 HDRレンダリング(2)~HDRレンダリングの第一の効能
第41回 HDRレンダリング(1)~HDRレンダリングとは?
第40回 ジオメトリシェーダ(11)~ジオメトリシェーダを活用した新表現(7)
第39回 ジオメトリシェーダ(10)~ジオメトリシェーダを活用した新表現(6)
第38回 ジオメトリシェーダ(9)~ジオメトリシェーダを活用した新表現(5)
第37回 ジオメトリシェーダ(8)~ジオメトリシェーダを活用した新表現(4)
第36回 ジオメトリシェーダ(7)~ジオメトリシェーダを活用した新表現(3)
第35回 ジオメトリシェーダ(6)~ジオメトリシェーダを活用した新表現(2)
第34回 ジオメトリシェーダ(5)~ジオメトリシェーダを活用した新表現(1)
第33回 ジオメトリシェーダ(4)~ジオメトリシェーダのアクセラレーション的活用(4)
第32回 ジオメトリシェーダ(3)~ジオメトリシェーダのアクセラレーション的活用(3)
第31回 ジオメトリシェーダ(2)~ジオメトリシェーダのアクセラレーション的活用(2)
第30回 ジオメトリシェーダ(1)~ジオメトリシェーダのアクセラレーション的活用・ステンシルシャドウボリューム技法の影生成を加速する
第29回 影の生成(10)~改良型デプスシャドウ技法(5)
第28回 影の生成(9)~改良型デプスシャドウ技法(4)
第27回 影の生成(8)~改良型デプスシャドウ技法(3)
第26回 影の生成(7)~改良型デプスシャドウ技法(2)
第25回 影の生成(6)~改良型デプスシャドウ技法(1)
第24回 影の生成(5)~デプスシャドウ技法
第23回 影の生成(4)~ステンシルシャドウボリューム技法(2)
第22回 影の生成(3)~ステンシルシャドウボリューム技法(1)
第21回 影の生成(2)~投射テクスチャマッピング技法
第20回 影の生成(1)~3Dグラフィックスにおける2つのカゲの存在
第19回 バンプマッピングの先にあるもの(3)~セルフシャドウ付き視差遮蔽マッピング
第18回 バンプマッピングの先にあるもの(2)~視差遮蔽マッピング
第17回 バンプマッピングの先にあるもの(1)~視差マッピング
第16回 微細凹凸表現の基本形「法線マップ」(3)
第15回 微細凹凸表現の基本形「法線マップ」(2)
第14回 微細凹凸表現の基本形「法線マップ」(1)
第13回 3Dグラフィックスの概念とレンダリングパイプライン(5)
第12回 3Dグラフィックスの概念とレンダリングパイプライン(4)
第11回 3Dグラフィックスの概念とレンダリングパイプライン(3)
第10回 3Dグラフィックスの概念とレンダリングパイプライン(2)
第9回 3Dグラフィックスの概念とレンダリングパイプライン(1)
第8回 GPUとシェーダ技術の基礎知識(8)
第7回 GPUとシェーダ技術の基礎知識(7)
第6回 GPUとシェーダ技術の基礎知識(6)
第5回 GPUとシェーダ技術の基礎知識(5)
第4回 GPUとシェーダ技術の基礎知識(4)
第3回 GPUとシェーダ技術の基礎知識(3)
第2回 GPUとシェーダ技術の基礎知識(2)
第1回 GPUとシェーダ技術の基礎知識(1)

もっと見る

関連キーワード

人気記事

一覧

新着記事

性能強化とデザイン刷新、東芝のホームノートPC最上位機「dynabook T85/A」はどこか変わった?
[12:06 9/25] パソコン
池松壮亮×斎藤工『無伴奏』キス直前のメイキング公開「チューされるんだ」
[12:00 9/25] エンタメ
Facebookアカウントを永久に消し去る方法
[12:00 9/25] 企業IT
[松本人志]SMAPへの紅白公開オファーに「なんか利用してる」
[11:51 9/25] エンタメ
松本人志、がん闘病ブログの小林麻央を称賛「偉人に近い」
[11:51 9/25] エンタメ