Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ray Tracing: Overview
Search
yumcyawiz
January 10, 2021
Programming
7
1.2k
Ray Tracing: Overview
lecture slides
yumcyawiz
January 10, 2021
Tweet
Share
More Decks by yumcyawiz
See All by yumcyawiz
rtcamp 10 (vk-illuminati)
yumcyawiz
1
350
ReSTIRの数理と実装 (rtcamp10)
yumcyawiz
1
980
fredholm(rtcamp9)
yumcyawiz
0
120
フォトンマッピングをパス空間から考える
yumcyawiz
0
430
fredholm
yumcyawiz
0
280
Introduction to volume rendering
yumcyawiz
0
2.2k
OSK#p-ray2020年度講義: 古典的レイトレーサーの実装
yumcyawiz
0
270
GLSLでパストレーシングしてコーネルボックスを出す
yumcyawiz
0
520
Pybind11でC++とPythonのいいとこ取りをする
yumcyawiz
0
970
Other Decks in Programming
See All in Programming
Instrumentsを使用した アプリのパフォーマンス向上方法
hinakko
0
250
20250429 - CNTUG Meetup #67 / DevOps Taiwan Meetup #69 - Deep Dive into Tetragon: Building Runtime Security and Observability with eBPF
tico88612
0
180
UMAPをざっくりと理解 / Overview of UMAP
kaityo256
PRO
3
1.5k
In geheimer Mission: AI Agents entwickeln
joergneumann
0
110
AIコーディングの本質は“コード“ではなく“構造“だった / The essence of AI coding is not “code” but "structure
seike460
PRO
2
420
バイラテラルアップサンプリング
fadis
3
530
MySQL初心者が311個のカラムにNot NULL制約を追加していってALTER TABLEについて学んだ話
hatsu38
2
140
LRパーサーはいいぞ
ydah
7
1.3k
eBPF超入門「o11yに使える」とは (20250424_eBPF_o11y)
thousanda
1
120
インプロセスQAにおいて大事にしていること / In-process QA Meetup
medley
0
170
開発者フレンドリーで顧客も満足?Platformの秘密
algoartis
0
220
Golangci-lint v2爆誕: 君たちはどうすべきか
logica0419
1
260
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
The Pragmatic Product Professional
lauravandoore
33
6.6k
How STYLIGHT went responsive
nonsquared
100
5.5k
Facilitating Awesome Meetings
lara
54
6.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
840
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Bash Introduction
62gerente
613
210k
Optimizing for Happiness
mojombo
378
70k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Transcript
Ray Tracing: overview 2021/01/10 OSK#p-ray Lecture01
What is Ray Tracing? レイトレーシングの概要
Ray Tracing • レイ(光線)を再帰的に追跡する計算手法のこと • 写実的なCGをレンダリングできる
Ray Tracingの例 写実的なCGをレンダリングできる
Ray Tracingの活用場面 • 映画 https://renderman.pixar.com/robot-room オフラインレンダリングではメジャーな手法
Ray Tracingの活用場面 • ゲーム https://www.nvidia.com/ja-jp/geforce/news/minecraft-with-rtx-beta-out-now-download-play/ 近年はリアルタイム向けにも活用され始めている
Ray Tracingの活用場面 • 光学設計 レンズ設計, 照明解析など
Ray Tracingの特徴 • 計算量が非常に多い • アルゴリズム自体はシンプル • 写実的なCGを出すには理論的な理解が必須 • こだわれるポイントが無限にある
→ 沼
Physically Based Rendering(PBR) 物理的に正しくレンダリングする
What is PBR? • 物理的に正しくレンダリングすること • 光の伝達を数式で記述, それの数値計算を行う PBRによって写実的なCGが生成できる
放射輝度 • ある点にある方向から来る光の強さを表す量 • CGではRGBで表されることが多い PBRで最も重要な物理量
レンダリング方程式 • ある1点から別の1点に移る光の流れを記述する積分方程式 PBRで最も重要な式 PBRとはレンダリング方程式の数値計算
レンダリング方程式 から に出る放射輝度 発光部分 与えられた方向にどれだけ反射するか (BRDF) 入射放射輝度 コサイン項 反射部分 から
に出る放射輝度 入射放射輝度 コサイン項 BRDF 半球全体 半球全体
レンダリング方程式の解 • ノイマン級数展開によって解を表すことができる • 次元積分の無限級数となる これを数値計算すれば写実的なCGが得られる 1回反射 2回反射 k回反射
Monte Carlo Ray Tracing レンダリング方程式の数値計算手法
レンダリング方程式の数値計算 • 高次元積分を含むため, 通常の数値積分は困難(次元の呪い) • モンテカルロ積分を利用する → Monte Carlo Ray
Tracing
モンテカルロ積分 • 被積分関数の評価点をランダムに生成し, 評価値/確率密度の平均を取る • 大数の法則により, サンプル数を増やせば求めたい積分値に収束 • 収束が遅い (
1 ) モンテカルロ積分
レンダリング方程式の数値計算 • パス ҧ = 0 1 ⋯ をランダムに生成してモンテカルロ積分 ≈
パスをいかにして生成するか?
Path Tracing • 視点からランダムに方向をサンプリングしていくことでパスを生成 • 光源に衝突しなかった場合は寄与が0
Next Event Estimation(NEE) • 光源上の点をサンプリングし, パスをその点とつなげる • パスが寄与を持ちやすくなる
Bidirectional Path Tracing(BDPT) • 視点と光源の両方からサブパスを生成し, それらを繋げてパスを作る • NEEの一般化
Metropolis Light Transport(MLT) • 寄与の大きいパスをMarkov Chain Monte Carlo(MCMC)を用いて重点的にサ ンプリング
Other Methods • Primary Sample Space Metropolis Light Transport(PSSMLT) •
Gradient Domain Path Tracing(GDPT) • Matrix Bidirectional Path Tracing(M-BDPT) • Stochastic Progressive Photon Mapping(SPPM) • Vertex Connection and Merging(VCM) • and more…
Related Technologies モンテカルロレイトレーシング周りの技術
Quasi Monte Carlo(QMC) • 準乱数を用いてモンテカルロ積分する方法 • 収束が通常のモンテカルロ積分より早い ( log )
Sobol列 QMC
BSDF • アーティストが操作しやすい様々なBSDF(BRDF + BTDF)が提案されている Physically-Based Shading at Disney, Brent
Burley, Walt Disney Animation Studios, 2012
Volume Rendering • 媒質内での光の吸収, 散乱, 発光も考慮したレンダリング https://github.com/sakanaman/kumo_viewer
Spectral Rendering • 物理的な波長を考慮してレンダリングする方法 • 光の分散を表現できる @sakanaoki181
Realistic Camera Model • 視点からのレイの生成にレンズを組み込む • 現実の写真レンズによる写り方を再現する
Bounding Volume Hierarchy(BVH) • レイとシーンの交差計算を効率化する空間分割法 • ポリゴンを含むようなシーンでは必須
The Latest Topics 最近の話題 https://www.minecraft.net/ja-jp/article/render-dragon-and-nvidia-ray-tracing
GPU Ray Tracing • Optix, Direct X Ray Tracing(DXR), Vulkan
Ray Tracing(VKR) • GPUの並列計算の強みを利用 • CPUより圧倒的に計算が早い https://devblogs.microsoft.com/directx/announcing-microsoft-directx-raytracing/
Realtime Ray Tracing • レイトレ専用回路を持つRTXの登場 • デノイザーと組み合わせることで部分的には実現している(e.g. Minecraft RTX) https://www.nvidia.com/ja-jp/geforce/news/minecraft-with-rtx-beta-out-now-download-play/
Path Guiding • 各点の入射放射輝度まで考慮した重点的サンプリング手法 • 機械学習の活用 https://github.com/Tom94/practical-path-guiding
Differentiable Rendering • シーンが微小に変化した時の放射輝度の変化を計算 • 機械学習と組み合わせることで, 画像からシーンの逆構築ができる (Inverse Rendering) https://mitsuba2.readthedocs.io/en/latest/src/inverse_rendering/diff_render.html
Thank you for listening.