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.3k
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
410
ReSTIRの数理と実装 (rtcamp10)
yumcyawiz
1
1.4k
fredholm(rtcamp9)
yumcyawiz
0
130
フォトンマッピングをパス空間から考える
yumcyawiz
0
460
fredholm
yumcyawiz
0
290
Introduction to volume rendering
yumcyawiz
0
2.4k
OSK#p-ray2020年度講義: 古典的レイトレーサーの実装
yumcyawiz
0
280
GLSLでパストレーシングしてコーネルボックスを出す
yumcyawiz
0
550
Pybind11でC++とPythonのいいとこ取りをする
yumcyawiz
0
1k
Other Decks in Programming
See All in Programming
CSC305 Lecture 02
javiergs
PRO
1
260
Local Peer-to-Peer APIはどのように使われていくのか?
hal_spidernight
2
420
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
2
1.1k
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osk2025-duckdb
takahashiikki
1
230
CSC509 Lecture 01
javiergs
PRO
1
430
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
440
麻雀点数計算問題生成タスクから学ぶ Single Agentの限界と Agentic Workflowの底力
po3rin
5
2k
ABEMAモバイルアプリが Kotlin Multiplatformと歩んだ5年 ─ 導入と運用、成功と課題 / iOSDC 2025
akkyie
0
300
NetworkXとGNNで学ぶグラフデータ分析入門〜複雑な関係性を解き明かすPythonの力〜
mhrtech
3
910
スマホで海難事故は防げるか?年間2000件以上の小型船舶の事故に挑むアプリ開発
atsuki_seo
0
120
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
2
1.4k
CSC509 Lecture 03
javiergs
PRO
0
320
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
36
6.9k
Visualization
eitanlees
148
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
A Modern Web Designer's Workflow
chriscoyier
697
190k
We Have a Design System, Now What?
morganepeng
53
7.8k
4 Signs Your Business is Dying
shpigford
185
22k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
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.