Submit Search
Upload
確率的ライトカリング 理論と実装 (CEDEC2016)
•
4 likes
•
3,313 views
Takahiro Harada
Follow
Stochastic Light Culling by Yusuke Tokuyoshi and Takahiro Harada
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 80
Download now
Download to read offline
Recommended
コンピュテーショナルフォトグラフティの基礎
コンピュテーショナルフォトグラフティの基礎
Norishige Fukushima
待望のメジャーアップデート!Enlighten 4 レイトレなど最新機能ご紹介
待望のメジャーアップデート!Enlighten 4 レイトレなど最新機能ご紹介
Silicon Studio Corporation
CEDEC 2005 汎用的なシェーダ設計 イントロダクション
CEDEC 2005 汎用的なシェーダ設計 イントロダクション
Silicon Studio Corporation
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
Silicon Studio Corporation
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
Silicon Studio Corporation
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -
Silicon Studio Corporation
シリコンスタジオによるHDR出力対応の理論と実践
シリコンスタジオによるHDR出力対応の理論と実践
Silicon Studio Corporation
2014/02/23 CV勉強会発表資料 nksm_r
2014/02/23 CV勉強会発表資料 nksm_r
nakari1124
Recommended
コンピュテーショナルフォトグラフティの基礎
コンピュテーショナルフォトグラフティの基礎
Norishige Fukushima
待望のメジャーアップデート!Enlighten 4 レイトレなど最新機能ご紹介
待望のメジャーアップデート!Enlighten 4 レイトレなど最新機能ご紹介
Silicon Studio Corporation
CEDEC 2005 汎用的なシェーダ設計 イントロダクション
CEDEC 2005 汎用的なシェーダ設計 イントロダクション
Silicon Studio Corporation
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
CEDEC 2007 ゲーム開発者向け最新技術論文の解説・実装講座
Silicon Studio Corporation
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
Silicon Studio Corporation
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -
エンド・トゥ・エンドAI描画に至る道 - 高度構造化入力のためのニューラルネットワーク構成やインフラの検討 -
Silicon Studio Corporation
シリコンスタジオによるHDR出力対応の理論と実践
シリコンスタジオによるHDR出力対応の理論と実践
Silicon Studio Corporation
2014/02/23 CV勉強会発表資料 nksm_r
2014/02/23 CV勉強会発表資料 nksm_r
nakari1124
デジタルネイチャー研新入生課題サーベイまとめ
デジタルネイチャー研新入生課題サーベイまとめ
YukiZenimoto
CEDEC 2009 Imagire Day 続・レンダリスト養成講座
CEDEC 2009 Imagire Day 続・レンダリスト養成講座
Silicon Studio Corporation
3次元計測とフィルタリング
3次元計測とフィルタリング
Norishige Fukushima
Deep Learning Chapter12
Deep Learning Chapter12
Kei Uchiumi
機械学習向けCGデータの量産手法の検討
機械学習向けCGデータの量産手法の検討
Silicon Studio Corporation
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
Silicon Studio Corporation
3DCG住宅プレゼンテーションのグローバルイルミネーションをディープラーニングで推定!
3DCG住宅プレゼンテーションのグローバルイルミネーションをディープラーニングで推定!
Silicon Studio Corporation
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
Takahiro Harada
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
Takahiro Harada
Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)
Takahiro Harada
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Takahiro Harada
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Takahiro Harada
Introducing Firerender for 3DS Max
Introducing Firerender for 3DS Max
Takahiro Harada
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)
Takahiro Harada
対応点を用いないローリングシャッター歪み補正と 映像の安定化~並進から回転へスライド
対応点を用いないローリングシャッター歪み補正と 映像の安定化~並進から回転へスライド
doboncho
Foveated Ray Tracing for VR on Multiple GPUs
Foveated Ray Tracing for VR on Multiple GPUs
Takahiro Harada
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Takahiro Harada
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
Electronic Arts / DICE
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
Takahiro Harada
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Takahiro Harada
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Takahiro Harada
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
Takahiro Harada
More Related Content
What's hot
デジタルネイチャー研新入生課題サーベイまとめ
デジタルネイチャー研新入生課題サーベイまとめ
YukiZenimoto
CEDEC 2009 Imagire Day 続・レンダリスト養成講座
CEDEC 2009 Imagire Day 続・レンダリスト養成講座
Silicon Studio Corporation
3次元計測とフィルタリング
3次元計測とフィルタリング
Norishige Fukushima
Deep Learning Chapter12
Deep Learning Chapter12
Kei Uchiumi
機械学習向けCGデータの量産手法の検討
機械学習向けCGデータの量産手法の検討
Silicon Studio Corporation
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
Silicon Studio Corporation
3DCG住宅プレゼンテーションのグローバルイルミネーションをディープラーニングで推定!
3DCG住宅プレゼンテーションのグローバルイルミネーションをディープラーニングで推定!
Silicon Studio Corporation
What's hot
(7)
デジタルネイチャー研新入生課題サーベイまとめ
デジタルネイチャー研新入生課題サーベイまとめ
CEDEC 2009 Imagire Day 続・レンダリスト養成講座
CEDEC 2009 Imagire Day 続・レンダリスト養成講座
3次元計測とフィルタリング
3次元計測とフィルタリング
Deep Learning Chapter12
Deep Learning Chapter12
機械学習向けCGデータの量産手法の検討
機械学習向けCGデータの量産手法の検討
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
CEDEC 2012 コンピュータ・グラフィクス関連の最新論文紹介~Modular Radiance Transfer法の解説~
3DCG住宅プレゼンテーションのグローバルイルミネーションをディープラーニングで推定!
3DCG住宅プレゼンテーションのグローバルイルミネーションをディープラーニングで推定!
Viewers also liked
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
Takahiro Harada
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
Takahiro Harada
Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)
Takahiro Harada
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Takahiro Harada
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Takahiro Harada
Introducing Firerender for 3DS Max
Introducing Firerender for 3DS Max
Takahiro Harada
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)
Takahiro Harada
対応点を用いないローリングシャッター歪み補正と 映像の安定化~並進から回転へスライド
対応点を用いないローリングシャッター歪み補正と 映像の安定化~並進から回転へスライド
doboncho
Foveated Ray Tracing for VR on Multiple GPUs
Foveated Ray Tracing for VR on Multiple GPUs
Takahiro Harada
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Takahiro Harada
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
Electronic Arts / DICE
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
Takahiro Harada
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Takahiro Harada
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Takahiro Harada
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
Takahiro Harada
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
Satoshi Kodaira
Unity って何?
Unity って何?
Katsutoshi Makino
自由なデータ
自由なデータ
Takatsugu Nokubi
ラク(効率化)して作る! shurikenエフェクトのノウハウ。
ラク(効率化)して作る! shurikenエフェクトのノウハウ。
Takahiro Akiyama
レイトレ合宿4!? 実装紹介スライド
レイトレ合宿4!? 実装紹介スライド
Hisanari Otsu
Viewers also liked
(20)
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2017 GDC] Radeon ProRender and Radeon Rays in a Gaming Rendering Workflow
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
[2016 GDC] Multiplatform GPU Ray-Tracing Solutions With FireRender and FireRays
Physics Tutorial, GPU Physics (GDC2010)
Physics Tutorial, GPU Physics (GDC2010)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introduction to Monte Carlo Ray Tracing, OpenCL Implementation (CEDEC 2014)
Introducing Firerender for 3DS Max
Introducing Firerender for 3DS Max
Forward+ (EUROGRAPHICS 2012)
Forward+ (EUROGRAPHICS 2012)
対応点を用いないローリングシャッター歪み補正と 映像の安定化~並進から回転へスライド
対応点を用いないローリングシャッター歪み補正と 映像の安定化~並進から回転へスライド
Foveated Ray Tracing for VR on Multiple GPUs
Foveated Ray Tracing for VR on Multiple GPUs
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open...
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
4K Checkerboard in Battlefield 1 and Mass Effect Andromeda
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
A Parallel Constraint Solver for a Rigid Body Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Heterogeneous Particle based Simulation (SIGGRAPH ASIA 2011)
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
Using GPUs for Collision detection, Recent Advances in Real-Time Collision an...
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
A 2.5D Culling for Forward+ (SIGGRAPH ASIA 2012)
なぜなにリアルタイムレンダリング
なぜなにリアルタイムレンダリング
Unity って何?
Unity って何?
自由なデータ
自由なデータ
ラク(効率化)して作る! shurikenエフェクトのノウハウ。
ラク(効率化)して作る! shurikenエフェクトのノウハウ。
レイトレ合宿4!? 実装紹介スライド
レイトレ合宿4!? 実装紹介スライド
Recently uploaded
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Recently uploaded
(10)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
確率的ライトカリング 理論と実装 (CEDEC2016)
1.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. YUSUKE TOKUYOSHI (SQUARE ENIX CO., LTD.) TAKAHIRO HARADA (ADVANCED MICRO DEVICES, INC.) 確率的ライトカリング -理論と実装-
2.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 数万の光源で照らされたシーンを比較的小さい誤差で描画する方法のご紹介 ‒論文: “Stochastic Light Culling” (http://jcgt.org/published/0005/01/02/) GPU実装の解説 ‒リアルタイムレンダリング ‒オフラインパストレーシング 講演の対象者 ‒レンダリングの基礎知識をもっている人 ‒これからレンダリングの研究を始める人 本講演の目的
3.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. VIDEO 間接照明(65536 virtual point lights) Resolution: 1920×1152, GPU: AMD RadeonTM R9 290X
4.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ライトカリングの説明 確率的ライトカリング 間接照明のリアルタイム実装例 オフラインレンダリングへの応用 ‒パストレーシング用のカリングアルゴリズム ‒GPU実装 本日の流れ
5.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. LIGHT CULLING
6.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 光源が大量に存在 ‒自動生成される光源 ‒間接照明を表現するvirtual point lights (VPLs) [Keller97] まじめにやると膨大な計算量 多光源レンダリング VPLsを使った間接照明の光路
7.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 光源毎に光の影響範囲を制限 範囲外はシェーディングの対象外 光源を事前にカリングして高速化 ライトカリング 光源の影響範囲 光源を無視 (カリング可能) シェーディング対象 シェーディング点から遠い光源は寄与が小さいので無視
8.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. TILE-BASED CULLING [Olsson11; Harada12]
9.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. TILE-BASED CULLING [Olsson11; Harada12] 1 2 3
10.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. TILE-BASED CULLING [Olsson11; Harada12] 1 2 3
11.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. TILE-BASED CULLING [Olsson11; Harada12] 1 2 3 [1] [1,2,3] [2,3]
12.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 光源から遠い所が暗くなる ‒実際の光は無限の影響範囲を持つ ‒物理ベースの光源を扱えない (e.g., VPLs) 光源が多いほど誤差(bias)が累積 問題点 影響範囲を制限 無限の影響範囲 65536 VPLs使った間接照明 光が届かない
13.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 解に対する推定値の偏りを表す誤差 ライトカリングは全光源が暗めに偏っている Biasのある推定が常に解に収束しないとは限らないが、この場合は収束しない BIAS
14.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. STOCHASTIC LIGHT CULLING
15.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 基本的にロシアンルーレット法[Arvo90] 光の影響範囲をランダムに変更 ‒遠い光源も低確率でサンプリング Biasを分散(推定値のばらつきを表す誤差)に変える 光源数が多くなっても誤差が累積しない 手法の概要
16.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 各光源を確率的に殺す 生存確率: シェーディング点から見た光源の明るさに比例 生き残った光源のエネルギーは生存確率で割る ロシアンルーレット法 生存確率: 𝑝𝑖 𝑙 = min 𝑓 𝑙 𝛼 𝑖 , 1 光源のfall-off関数: 𝑓 𝑙 = 1 𝑙2 ユーザー定義の係数 大きいほど死にやすい 光源までの距離
17.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 0 0.5 1 0 5 10 確率的FALL-OFF関数 Clamping Stochastic 0 0.5 1 0 5 10 乱数𝜉𝑖 𝛼𝑖 𝑟𝑖 𝑟𝑖 (光の影響範囲)(光の影響範囲) 𝑓̂ 𝑙 = � 𝑓 𝑙 = 1 𝑙2 𝑙 < 𝑟𝑖 0 otherwise 𝑓̂ 𝑙 = � 𝑓 𝑙 𝑝𝑖 𝑙 = max 𝛼𝑖, 1 𝑙2 𝑝𝑖 𝑙 > 𝜉𝑖 0 otherwise
18.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 確率的FALL-OFF関数 Clamping Stochastic 0 0.5 1 0 5 10𝑟𝑖 (光の影響範囲) 𝑓̂ 𝑙 = � 𝑓 𝑙 = 1 𝑙2 𝑙 < 𝑟𝑖 0 otherwise 0 0.5 1 0 5 10 乱数𝜉𝑖 𝛼𝑖 𝑟𝑖 (光の影響範囲) 𝑓̂ 𝑙 = � 𝑓 𝑙 𝑝𝑖 𝑙 = max 𝛼𝑖, 1 𝑙2 𝑝𝑖 𝑙 > 𝜉𝑖 0 otherwise
19.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 確率的FALL-OFF関数 Clamping Stochastic 0 0.5 1 0 5 10𝑟𝑖 (光の影響範囲) 𝑓̂ 𝑙 = � 𝑓 𝑙 = 1 𝑙2 𝑙 < 𝑟𝑖 0 otherwise 0 0.5 1 0 5 10 乱数𝜉𝑖 𝛼𝑖 𝑟𝑖 𝑓̂ 𝑙 = � 𝑓 𝑙 𝑝𝑖 𝑙 = max 𝛼𝑖, 1 𝑙2 𝑝𝑖 𝑙 > 𝜉𝑖 0 otherwise (光の影響範囲)
20.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ランダムな光の影響範囲 1 light
21.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ランダムな光の影響範囲 64 lights1 light
22.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. シェーディング点毎に異なる光の影響範囲。事前にカリングできない 共通の範囲を使いたい ランダムな光の影響範囲 64 lights1 light
23.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. シェーディング点毎に異なる光の影響範囲。事前にカリングできない 共通の範囲を使いたい 解決法: 全シェーディング点で同じ乱数を使用 ランダムな光の影響範囲 64 lights1 light
24.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. シェーディング点毎に異なる光の影響範囲。事前にカリングできない 共通の範囲を使いたい 解決法: 全シェーディング点で同じ乱数を使用 ランダムな光の影響範囲 64 lights 1 light1 light
25.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. シェーディング点毎に異なる光の影響範囲。事前にカリングできない 共通の範囲を使いたい 解決法: 全シェーディング点で同じ乱数を使用 ‒推定に偏りがあるように見えるかもしれないが、実は偏ってない ‒Unbiased coherent sampling ランダムな光の影響範囲 64 lights 1 light1 light
26.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. シェーディング点毎に異なる光の影響範囲。事前にカリングできない 共通の範囲を使いたい 解決法: 全シェーディング点で同じ乱数を使用 ‒推定に偏りがあるように見えるかもしれないが、実は偏ってない ‒Unbiased coherent sampling ランダムな光の影響範囲 64 lights 64 lights1 light1 light
27.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 関連研究 ‒Virtual point lights (VPLs) [Keller97] ‒Lightcuts [Walter05] ‒Coherent path tracing [Sadeghi09] UNBIASED COHERENT SAMPLING 複数のシェーディング点が同じサンプル光路(VPL)を共有
28.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 関連研究 ‒Virtual point lights (VPLs) [Keller97] ‒Lightcuts [Walter05] ‒Coherent path tracing [Sadeghi09] “分散 = 高周波ノイズ”とは限らない ‒明るい斑点模様 ‒フリッカリング UNBIASED COHERENT SAMPLING 複数のシェーディング点が同じサンプル光路(VPL)を共有
29.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 関連研究 ‒Virtual point lights (VPLs) [Keller97] ‒Lightcuts [Walter05] ‒Coherent path tracing [Sadeghi09] “分散 = 高周波ノイズ”とは限らない ‒明るい斑点模様 ‒フリッカリング ‒バンディングアーティファクト UNBIASED COHERENT SAMPLING 複数のシェーディング点が同じサンプル光路(VPL)を共有 Stochastic light culling 8 lights
30.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 誤差が偏りなくばらつくこと 誤差が0に収束することは意味してない ‒よくある誤解のひとつ ‒T. Hachisuka. 2013. "Five Common Misconceptions about Bias in Light Transport Simulation" あえて誤差を0に収束させないunbiasedな手法もある (e.g., lightcuts) ‒許容誤差量を設定して過剰な計算を省く ‒誤差は許容量以下になるが、0には収束しない ‒実用的 “UNBIASED”の意味
31.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 分散の量を簡単にコントロール VPLsではシェーディング対象の平均光源数がほぼ一定に収束 ユーザー定義の許容誤差量𝜖 𝑚𝑚𝑚から生存確率のパラメータ𝛼𝑖を計算 ‒拡散反射を仮定 ‒光源の放射強度𝐼 𝜔′ も低周波な分布を仮定 許容誤差量の設定 𝛼𝑖 = 2𝜋𝜖 𝑚𝑚𝑚 𝐸max 𝜔′ 𝐼 𝜔′ カメラの露出 VPLの場合、VPL数𝑁に反比例: 𝐼 𝜔′ ∝ 1 𝑁 𝑟𝑖 ∝ 1 𝑁 VPL数 Stochastic Clamping 同じ許容誤差でのライティング時間 (ms)
32.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 本手法の処理の流れ 許容誤差量から生存確率のパラメータ𝛼𝑖を計算 ロシアンルーレット法を基に光源の影響範囲𝑟𝑖を決定 (光源毎の処理) Light culling (既存手法) 既存手法と同じ方法でシェーディング計算 シェーディング結果を生存確率で割る Shading 赤字が新たに追加された処理 カリング手法に依存しない Splatting [Dachsbacher06] Tile-based culling [Olsson11; Harada12] Clustered shading [Olasson12] …etc.
33.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. EXAMPLE IMPLEMENTATION OF REAL-TIME INDIRECT ILLUMINATION
34.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. Reflective shadow maps (RSMs) [Dachsbacher05] 各テクセル = VPLs VIRTUAL POINT LIGHTS (VPLS)の生成 深度 法線 反射率 VPLの位置 VPLの放射強度の計算に使用
35.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 論文ではRSMから重要なVPLを再サンプリングした 重要度: bidirectional RSM [Ritschel11] 速度優先なら、再サンプリングせず代わりに低解像度のRSMを使ってもいい RESAMPLING VPLS
36.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ピクセル毎に異なる光源を使ってシェーディング [Wald02] ‒8×8ピクセルのサンプリングパターン → ピクセルあたりの光源数は1/64に 誤差(分散)は高周波ノイズとして画面に現れる 後処理でノイズ除去フィルタリング INTERLEAVED SAMPLING 8×8 interleaved sampling ノイズ除去
37.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ピクセルに合わせてスレッドを割り当てるとdivergenceが発生 画面を8×8の部分領域にピクセルを並び替えて回避 [Segovia06] ‒部分領域内では同じ光源が使用される ‒Single passで実装 INTERLEAVED SAMPLINGのGPU実装 並び替え (ロード時) シェーディング 並び替え (ストア時) G-buffer 間接照明バッファ 拡大図
38.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. Interleaved samplingと確率的ライトカリングの組み合わせ 並び替えた部分領域に対してtiled deferred shading [Andersson11] ‒部分領域あたりの光源数は1/64に減っている ‒さらに確率的にカリングしてピクセルあたりの光源数を減らす ライトカリングを適用
39.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. Interleaved samplingと確率的ライトカリングの組み合わせ 並び替えた部分領域に対してtiled deferred shading [Andersson11] ‒部分領域あたりの光源数は1/64に減っている ‒さらに確率的にカリングしてピクセルあたりの光源数を減らす ライトカリングを適用
40.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. Interleaved samplingと確率的ライトカリングの組み合わせ 並び替えた部分領域に対してtiled deferred shading [Andersson11] ‒部分領域あたりの光源数は1/64に減っている ‒さらに確率的にカリングしてピクセルあたりの光源数を減らす ライトカリングを適用
41.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS フィルタリング前の間接照明成分 65536 VPLs, Resolution: 1920×1152, 𝜖 𝑚𝑚𝑚 = 0.0005, GPU: AMD RadeonTM R9 290X Shading time: 44.4 ms Shading time: 2.87 ms Shading time: 2.87 ms w/o light culling Stochastic light culling Light culling with clamping ranges
42.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS ノイズ除去フィルタリング、テクスチャ適用、直接照明追加 65536 VPLs, Resolution: 1920×1152, 𝜖 𝑚𝑚𝑚 = 0.0005, GPU: AMD RadeonTM R9 290X Total rendering time: 48.5 ms RMSE: 0.0017 Total rendering time : 7.0 ms RMSE: 0.0026 Total rendering time : 7.0 ms RMSE: 0.0377 w/o light culling Stochastic light culling Light culling with clamping ranges
43.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS 同じ計算時間での比較 1024 VPLs Stochastic light culling Light culling with clamping ranges Resolution: 1920×1152, 𝜖 𝑚𝑚𝑚 = 0.0005, GPU: AMD RadeonTM R9 290X
44.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS 同じ計算時間での比較 4096 VPLs Resolution: 1920×1152, 𝜖 𝑚𝑚𝑚 = 0.0005, GPU: AMD RadeonTM R9 290X Stochastic light culling Light culling with clamping ranges
45.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS 同じ計算時間での比較 16384 VPLs Resolution: 1920×1152, 𝜖 𝑚𝑚𝑚 = 0.0005, GPU: AMD RadeonTM R9 290X Stochastic light culling Light culling with clamping ranges
46.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS 同じ計算時間での比較 65536 VPLs Resolution: 1920×1152, 𝜖 𝑚𝑚𝑚 = 0.0005, GPU: AMD RadeonTM R9 290X Stochastic light culling Light culling with clamping ranges
47.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 確率的ライトカリング ‒誤差を考慮したライトカリング ‒Biasを分散に変えて誤差を収束 リアルタイム実装 ‒カリング自体の実装に変更なし ‒Interleaved samplingと組み合わせると効果的 制限事項 ‒低周波のBRDFを仮定 ここまでのまとめ
48.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. STOCHASTIC LIGHT CULLING FOR PROGRESSIVE PATH TRACING
49.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 1. イントロ ‒確率的ライトカリング + パストレーシング(ポイントライトのみ) 2. さらなる詳細 ‒ 確率的ライトカリング + パストレーシング(全部入り) 3. GPUでの実装 Demo time!! AGENDA
50.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. それぞれのシェーディング点において全てのライトからの寄与を求める 簡単ではない、計算コストが高い MANY LIGHT PROBLEM IN PATH TRACING 1.9M polys, 59,000 lights
51.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. それぞれのシェーディング点において全てのライトからの寄与を求める 手法として二つの可能性 1. それぞれのライトにおいて、一つ頂点をサンプリング ‒多くライトがあるシーンにおいて計算負荷が高い ‒1000ライトあれば、1000回シャドウレイをトレースしなければならない MANY LIGHT PROBLEM IN PATH TRACING
52.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. それぞれのシェーディング点において全てのライトからの寄与を求める 手法として二つの可能性 1. それぞれのライトにおいて、一つ頂点をサンプリング ‒多くライトがあるシーンにおいて計算負荷が高い ‒1000ライトあれば、1000回シャドウレイをトレースしなければならない 2. ライトを一つ選択し、一つ頂点をサンプリング ‒収束はライト選択する戦略に依存する ‒プログレッシブパストレーシングではより実用的 MANY LIGHT PROBLEM IN PATH TRACING
53.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. それぞれのシェーディング点において全てのライトからの寄与を求める 手法として二つの可能性 1. それぞれのライトにおいて、一つ頂点をサンプリング ‒多くライトがあるシーンにおいて計算負荷が高い ‒1000ライトあれば、1000回シャドウレイをトレースしなければならない ‒確率的ライトカリング => バイアスを加えることなくシャドウレイの数を減らす 2. ライトを一つ選択し、一つ頂点をサンプリング ‒収束はライト選択する戦略に依存する ‒プログレッシブパストレーシングではより実用的 MANY LIGHT PROBLEM IN PATH TRACING
54.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. それぞれのシェーディング点において ‒For 全てのライト (4ライト) ‒シャドウレイをトレース (visibility) ‒シェーディングし、寄与を足し合わせる W.O. STOCHASTIC LIGHT CULLING (POINT LIGHT)
55.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. STOCHASTIC LIGHT CULLING (POINT LIGHT) それぞれのシェーディング点において ‒For 全てのライト (4ライト) ‒If( !overlaps( ライトの影響範囲, 点 ) ) ‒ continue ‒シャドウレイをトレース (visibility) ‒シェーディングし、寄与を足し合わせる UNOPTIMIZED ライトの影響範囲は全てのシェーディング点に対し て固定 それぞれの点に重なっているライトを代わりに見 つける方が効率的 Stochastic Light Culling
56.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. それぞれのシェーディング点において ‒For 重なっている ライト (1ライト) ‒ライト上の頂点を一つ選ぶ ‒シャドウレイをトレース (visibility) ‒シェーディングし、寄与を足し合わせる STOCHASTIC LIGHT CULLING (POINT LIGHT) OPTIMIZED Stochastic Light Culling
57.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. STOCHASTIC LIGHT CULLING FOR POINT LIGHTS HitInfo hit = scene.intersect( from, to ); if( !hit.hasHit() ) continue; float4 hp = from + ( to - from ) * hit.m_f; // explicit connection for(int il=0; il<nLightSamples; il++) { const SampleInfo& l = ls[il]; float g = geomTerm( hp, hit.m_ns, l.m_x, l.m_n ); if( !scene.intersect( hp, l.m_x ).hasHit() ) { float4 f = scene.brdfEvaluate( hit.m_ns, m ); dst += f * l.m_le * g / l.m_pdfArea; } } DIRECT ILLUMINATION HitInfo hit = scene.intersect( from, to ); if( !hit.hasHit() ) continue; float4 hp = from + ( to - from ) * hit.m_f; // explicit connection (SLC) for(int il=0; il<nLightSamples; il++) { const SampleInfo& l = ls[il]; const float d2 = l2( hp - l.m_x ); if( SlcImpl::radius2( l.m_le, ALPHA, xi[il] ) < d2 ) continue; float g = geomTerm( hp, hit.m_ns, l.m_x, l.m_n ); if( !scene.intersect( hp, l.m_x ).hasHit() ) { float4 f = scene.brdfEvaluate( hit.m_ns, m ); float rrPdf = SlcImpl::computeRrPdf( hp, l, ALPHA ); dst += f * l.m_le * g / (l.m_pdfArea * rrPdf); } } PT (Base) PT + SLC
58.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. class SlcImpl { public: static float computeRt( const float4& le, float alpha ) { return sqrtf( dot3F4( float4(0.33f,0.33f,0.33f), le ) * ( 1.f/(M_PI*alpha) ) ); } static float computeRrPdf( const float4& vtx, const float4& lvtx, const float4& le, float alpha ) { float d2 = dot3F4( vtx-lvtx, vtx-lvtx ); float r_t = computeRt( le, alpha ); if( d2 > r_t*r_t ) return r_t*r_t / d2; return 1.f; } static float radius2( float r_t, float xi ) { return ( r_t*r_t / (1.f-xi) ); } }; STOCHASTIC LIGHT CULLING CODE
59.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. SPECIFICS FOR PATH TRACING
60.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ポイントライトだけの説明をした パストレーシングでは他にも様々なライトが使われる ほとんどのライトはエリアライト ‒確率的ライトカリングはエリアライトに使える?? 様々なライトの種類 Area IES Spot Point
61.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ライトの影響範囲を計算する必要あり どうやって?? エリアライトの影響範囲 Point light Area light
62.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ライトの影響範囲を計算する必要あり エリアライト == ポイントライトの集合 球をエッジ上で掃引したもの ‒簡単には求まらない エリアライトの影響範囲
63.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ライトの影響範囲を計算する必要あり エリアライト == ポイントライトの集合 Conservativeな影響範囲を計算 ‒一つの球として表現 ‒エリアライトの中心を求める ‒中心からエッジまでの最大距離(R) ‒球の半径を求める ‒R+r エリアライトの影響範囲 r R R Conservative bound
64.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. カリングされる確率がはっきりと定義されている MISを導入するのが容易 (implicit connection + explicit connection) Implicit connectionにおいて、ライトサンプリングでの確率は ‒[pdf of sampling the light vertex] x [SLC (Russian Roulette) probability] MULTIPLE IMPORTANCE SAMPLING (MIS)
65.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. BOUNDING SPHERE TREEを用いたカリング フラスタムカリングを使うことができない ‒シェーディング点がスクリーンスペースに並んでいない ‒カメラから直接見える点は例外 ‒ランダムに分布したシェーディング点 ‒ => 一般的なカリング方法を用いる必要がある ‒Bounding sphere treeを用いた ‒BVHの一種
66.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. それぞれのステップ(フレーム)において影響範囲が変わる それぞれのステップ(フレーム)において完全に再構築することもできる 確率的ライトカリングのオーバーヘッドを減らすために、木構造は一度だけ計 算されて、その後はリフィットに止める BOUNDING SPHERE TREEを用いたカリング 実装 nth step n+1th step
67.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS 収束の比較 ClampingStochastic Light CullingReference
68.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS 収束の速さ比較(CPU実装、同じ計算時間での比較) Uniform sampling Stochastic Light Culling 55,000 triangle lights, after 30s
69.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. STOCHASTIC LIGHT CULLING ON GPU
70.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 確率的ライトカリングはCPU実装ではとても良い GPUで実装するときに少し注意が必要 1. Work item (thread) の発散 ‒シェーディングとビジビリティのテストをそれぞれのリーフノードにおいて行うとコード の発散がひどい 2. Memory使用量 ‒多くのWIが並列に走っている ‒それぞれのWIで必要なメモリ量が少なくても、多くのWIだと問題になる ‒[# of lights] x [# of WIs] CHALLENGES
71.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. IMPROVING TREE TRAVERSAL & SHADING BVH巡回 リーフノードでシェーディング WORK ITEM DIVERGENCE while( nodeIdx ) { Node node = getNode( nodeIdx ); if( hit( node, ray ) ) { if( isLeaf( node ) ) { Ray shadowRay = createRay( node, ray ); if( !intersect( shadowRay) ) { pixel += shade( node, ray ); } nodeIdx = node.m_next; } else { nodeIdx = node.m_child; } } else { nodeIdx = node.m_next; } } Expensive computation deep in branches => Very bad
72.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. IMPROVING TREE TRAVERSAL & SHADING ツリー巡回しているときに、シェー ディングを行わないためには、ライ トの番号をバッファに保持し、後で シェーディングをする WORK ITEM DIVERGENCE while( nodeIdx ) { Node node = getNode( nodeIdx ); if( hit( node, ray ) ) { if( isLeaf( node ) ) { Ray shadowRay = createRay( node, ray ); if( !intersect( shadowRay) ) { pixel += shade( node, ray ); } nodeIdx = node.m_next; } else { nodeIdx = node.m_child; } } else { nodeIdx = node.m_next; } } Expensive computation deep in branches => Very bad
73.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. IMPROVING TREE TRAVERSAL & SHADING ツリー巡回しているときに、シェー ディングを行わないためには、ライ トの番号をバッファに保持し、後で シェーディングをする ツリー巡回中の発散は解決したが ‒シェーダー実行の時間がばらつく (ray cast + shade) ‒ライトの番号を蓄えるバッファが大き すぎる (# of lights x # of WIs) MEMORY FOOTPRINT while( nodeIdx ) { Node node = getNode( nodeIdx ); if( hit( node, ray ) ) { if( isLeaf( node ) ) { hitList[nHits++] = nodeIdx; nodeIdx = node.m_next; } else { nodeIdx = node.m_child; } } else { nodeIdx = node.m_next; } } for(i=0; i<nHits; i++) { Node node = getNode( hitList[i] ); Ray shadowRay = createRay( node, ray ); if(!intersect( shadowRay) ) { pixel += shade( node, ray ); } } Isolate expensive computation Loop over nHits, which varies a lot => Bad
74.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. IMPROVING TREE TRAVERSAL & SHADING ツリー巡回中の発散は解決したが ‒ライトの番号を蓄えるバッファが大き すぎる ‒=> 最大k個のライトだけを蓄える ‒=> 最大k回のシェーディングを行う リザーバサンプリング ‒全ての候補を蓄えずに最大k個を選 択することができる RESERVOIR SAMPLING while( nodeIdx ) { Node node = getNode( nodeIdx ); if( hit( node, ray ) ) { if( isLeaf( node ) ) { resevoirSampling( hitList, nodeIdx ); nodeIdx = node.m_next; } else { nodeIdx = node.m_child; } } else { nodeIdx = node.m_next; } } for(i=0; i<resevoirMax; i++) { if( nHits <= i ) continue; Node node = getNode( hitList[i] ); Ray shadowRay = createRay( node, ray ); if(!intersect( shadowRay) ) { pixel += shade( node, ray ); } } Loop at most reservoirMax (constant) => Good
75.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 前処理としてツリーはCPUで構築して、GPUに転送 複数のカーネルを実行してリフィット それぞれのカーネルで1レベル、リフィット for それぞれのツリーの深さ: ‒リフィットのカーネルを実行 BOUNDING SPHERE TREE REFIT __kernel void RefitOneLevelKernel( GLOBAL(BSTreeNode) gTree, GLOBAL(u32) gLevels, int cb_n, int cb_level ) { int gIdx = GET_GLOBAL_IDX; if( gIdx >= cb_n ) return; if( gLevels[gIdx] != cb_level ) return; int nodeIdx = gIdx; BSTreeNode* dst = &gTree[nodeIdx]; u32 c0 = dst->m_child0; u32 c1 = dst->m_child1; float4 v0 = gTree[ c0 ].m_volume; float4 v1 = gTree[ c1 ].m_volume; mergeChildVolumes( dst ); }
76.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS Uniform Sampling (RSME:0.0749) Stochastic Light Culling (RSME:0.0464) 5,000 triangle lights, after 2min
77.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. RESULTS Uniform Sampling (RSME:0.0355) Stochastic Light Culling (RSME:0.0203) 59,000 triangle lights, after 2min
78.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. Do we have time?? DEMO TIME!!
79.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. 確率的ライトカリングを紹介した ‒バイアスを加えないライトカリング 二つの応用例を紹介した ‒VPLを用いたリアルタイムGI ‒VPL + interleaved sampling ‒パストレーシングを用いたインタラクティブGI ‒エリアライトへの拡張 ‒GPUへの最適化 CLOSING
80.
© 2016 SQUARE
ENIX CO., LTD. and Advanced Micro Devices Inc. All Rights Reserved. ARVO, J., AND KIRK, D. 1990. Particle transport and image synthesis. SIGGRAPH Comput. Graph. 24, 4, 63–66. ANDERSSON, J. 2011. Directx 11 rendering in Battlefield 3. In GDC ’11. HARADA, T., MCKEE, J., AND YANG, J. C. 2012. Forward+: Bringing deferred lighting to the next level. In Eurographics ’12 Short Papers. KELLER, A. 1997. Instant radiosity. In Proc. SIGGRAPH’97, 49–56. OLSSON, O., AND ASSARSSON, U. 2011. Tiled shading. J. Graph. GPU, and Game Tools, 235–251. OLSSON, O., BILLETER, M., AND ASSARSSON, U. 2012. Clustered deferred and forward shading. In HPG’12, 87–96. RITSCHEL T., EISEMANN E., HA I., KIM J. D., SEIDEL H.-P. 2011. Making imperfect shadow maps view-adaptive: High-quality global illumination in large dynamic scenes. Comput. Graph. Forum 30, 8, 2258–2269. SADEGHI, I., CHEN, BIN., AND JENSEN, H. W. 2009. Coherent path tracing. Journal of Graphics, GPU, and Game Tools, 14, 2. SEGOVIA, B., IEHL, J. C., MITANCHEY, R., AND PE ROCHE, B. 2006. Non-interleaved deferred shading of interleaved sample patterns. In GH’06, 53–60. T. Hachisuka. 2013. Five common misconceptions about bias in light transport simulation. VEACH, E., AND GUIBAS, L. J. 1995. Optimally combining sampling techniques for Monte Carlo rendering. In SIGGRAPH ’95, 419–428. VITTER, J. S. 1985. Random sampling with a reservoir. ACM Trans. Math. Softw. 11, 1, 37–57. WALD I., KOLLIG T., BENTHIN C., KELLER A., SLUSALLEK P. 2002. Interactive global illumination using fast ray tracing. In EGWR’02, pp. 15–24. 2 WALTER, B., FERNANDEZ, S., ARBREE, A., BALA, K., DONIKIAN, M., AND GREENBERG, D. P. 2005. Lightcuts: A scalable approach to illumination. ACM Trans. Graph. 24, 3, 1098–1107. REFERENCES
Download now