Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The SGGX Microflake Distribution 実装

1,862 views

Published on

A presentation on Mathematics and Implementation of Computer Graphics Techniques 2015

Published in: Technology
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { https://urlzs.com/UABbn } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

The SGGX Microflake Distribution 実装

  1. 1. The SGGX Microflake Distribution 実装 株式会社セガゲームス 今給黎 隆
  2. 2. • 主にビデオゲームの開発情報の共有 • 参加費:学生500円、一般2000円 • http://kyushucedec.jp/
  3. 3. The SGGX Microflake Distribution • SIGGRAPH 2015 – Eric Heitz (Karlsruhe Institute of Technology, NVIDIA) – Jonathan Dupuy (Univ. Montr´eal; LIRIS, Univ. Lyon 1) – Cyril Crassin (NVIDIA) – Carsten Dachsbacher (Karlsruhe Institute of Technology) • 論文の日本語訳 – https://github.com/imagire/SGGX_jp
  4. 4. モチベーション • ボリュームデータの物理ベースレンダリング – 3角形ポリゴンの集合では表しにくいデータの増大 • 木、服、もくもく – データ量が増大しやすい • データの削減 – 色 – 濃度 – 反射分布
  5. 5. 今回の結果 https://github.com/imagire/sggx_impl
  6. 6. SGGX概要 • 前提としての表面の反射理論 – マイクロファセット理論 • 金属等は様々な方向を向いた平面の集まりと捉えられる – アルべド、法線分布、屈折率、拡散/鏡面反射割合
  7. 7. GGX )()(,)()( iiiiooipo QdLfL    )()()1()( oi spec poi diff poip fmfmf      )( )( oi oi diff pf   oi oi spec p nn GDF f   ,,4 )(   hFFF o ,1)1( 00    2 22 2 11,     hn D )()( 0 iGGXGGX GGG    222 ,1, ,2 )(    nn n GGGX   )),(,0max(,  :Schlick近似のフレネル (h:ハーフベクトル, F0:正面反射率) :法線分布関数 (α:粗さ) 拡散反射: 鏡面反射: こんな近似項を 使うのがGGX (m:金属度合い)
  8. 8. ボリュームレンダリング • 放射伝達方程式
  9. 9. SGGX • ボリュームレンダリングする際に、ボリューム データの微視的な法線分布率を楕円体の データで表現 – 投影面積(散乱割合) – 位相関数 • GGXを裏面にも対称化:対称GGX=SGGX – 散乱には「拡散反射+鏡面反射」を適応
  10. 10. 実装方法 • パストレーサー「smallpt: Global Illumination in 99 lines of C++」を拡張 – http://www.kevinbeason.com/smallpt/ • パスの衝突検知の際に、検知したレイがボ リュームデータのAABB と交差するか調べ、 交差したら、ボリューム データの寄与を付与 – ボリュームデータ分解能 から、各ボクセルへの 交差位置を計算 – 確率的に入射レイの追加
  11. 11. 関与媒質の寄与の計算 • AABBの交差判定ののち ボリュームデータの各 グリッドとの交点を算出 • 乱数を用いて2次レイを 確率的に生成 0L l lt i )( oL    )())( )(1( 4 )( 0 ioi S oi Dslt l o Lfrm frm lt e LeL s s             散乱確率
  12. 12. 実装方法 • 新たに考えなくてはならない部分 はほとんどない – The SGGX Microflake Distribution Supplemental Material • 非常に多くの係数がコード付きで掲載 – https://drive.google.com/file/d/0BzvWIdpUp Rx_djVyMG9jMnltdTg/view?usp=sharing – GitHub (zhangwengame/SGGX- Plugin-for-Mitsuba) • 動くコードが存在(今回は未参照)   )())()(1( 4 )( 0 ioi s oi Dslt l o Lfrmfrm lt e LeL s s           散乱確率
  13. 13. 今回の結果 • できたこと – SGGXデータが与えられた際のパストレーシング – 密度・アルべドのデータとは異なる分解能に対応 • できないこと – 他のデータからのインポート
  14. 14. σy 2=σz 2=0.001 σx 2=σz 2=0.001 σ z 2=0.001σ x 2=0.0001
  15. 15. σx 1 1 ff ff ff ff 1 ff 80 80 ff ff ff ff 80 ff σy 1 ff 1 ff ff 1 ff ff 80 ff 80 ff ff 80 ff ff σz ff 1 1 ff 1 ff ff ff ff 80 80 ff 80 ff ff ff 空間的変化のある散乱係数
  16. 16. 濃度分布が変化する場合
  17. 17. SGGXについて • Pros – 高速:拡散、鏡面反射方向を決め、他の確率分 布関数等の計算もシンプルなので計算は速い • Cons – 拡散+鏡面反射の分離のモデルを仮定している が正当性は不明 – 反射特性よりも濃度情報によって形状は形作ら れるので、濃度情報の圧縮の研究は今後も必要
  18. 18. Future works • 拡散反射+鏡面反射で当てはまらないモデ ルへの適応の調査 • アルべド・密度に対するデータ圧縮 • リアルタイム対応 – 形状が楕円体を使っている点に事前計算しやす い部分があるかもしれない
  19. 19. ありがとうございました • 本家資料 – 論文 • https://drive.google.com/file/d/0BzvWIdpUpRx_dXJIMk9rdEdrd00/view?usp=sharing – 補足資料 • https://drive.google.com/file/d/0BzvWIdpUpRx_djVyMG9jMnltdTg/view?usp=sharing – Mitsubaレンダラ用プラグインソースコード • https://github.com/zhangwengame/SGGX-Plugin-for-Mitsuba – 登壇スライド • https://drive.google.com/file/d/0BzvWIdpUpRx_SDZnYWJYRDg3VWM/view • 今回向けの資料 – 前回のセッション資料 • http://www.slideshare.net/imagire/sggx – 論文の日本語訳 • https://github.com/imagire/SGGX_jp – 実装ソースコード • https://github.com/imagire/sggx_impl

×