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 in 5 minutes
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yumcyawiz
September 07, 2017
Programming
0
140
Ray Tracing in 5 minutes
Slide for OSK 2017 Summer Lightning Talk.
yumcyawiz
September 07, 2017
Tweet
Share
More Decks by yumcyawiz
See All by yumcyawiz
rtcamp 10 (vk-illuminati)
yumcyawiz
1
510
ReSTIRの数理と実装 (rtcamp10)
yumcyawiz
1
1.7k
fredholm(rtcamp9)
yumcyawiz
0
160
フォトンマッピングをパス空間から考える
yumcyawiz
0
520
fredholm
yumcyawiz
0
330
Introduction to volume rendering
yumcyawiz
0
2.6k
OSK#p-ray2020年度講義: 古典的レイトレーサーの実装
yumcyawiz
0
290
Ray Tracing: Overview
yumcyawiz
7
1.3k
GLSLでパストレーシングしてコーネルボックスを出す
yumcyawiz
0
590
Other Decks in Programming
See All in Programming
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
160
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
540
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
110
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
150
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
200
OTP を自動で入力する裏技
megabitsenmzq
0
110
AHC061解説
shun_pi
0
380
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
340
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
340
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
410
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
2
750
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
290
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
For a Future-Friendly Web
brad_frost
183
10k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
What's in a price? How to price your products and services
michaelherold
247
13k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
290
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
240
Abbi's Birthday
coloredviolet
2
5.4k
Scaling GitHub
holman
464
140k
Ruling the World: When Life Gets Gamed
codingconduct
0
170
Transcript
Ray Tracing in 5 minutes
レイトレーシング(Ray Tracing)とは?
None
超リアル!!!
どうやって生成するのか
None
光が目に届くまで
光が目に届くまで
光が目に届くまで 反射
でも目に届く光はごくわずか
逆から追跡する
逆から追跡する レイ(Ray)
逆から追跡する レイ(Ray) レイ(Ray)
None
画像にする スクリーン
画像にする スクリーン
画像にする スクリーン
画像にする
必要なもの レイと物体の衝突判定
レイの数学的表現 始点 方向
Ԧ Ԧ レイの数学的表現
Ԧ Ԧ レイの数学的表現
Ԧ レイの数学的表現 Ԧ + Ԧ
球のベクトル方程式 Ԧ − Ԧ 2 = 2 Ԧ Ԧ
レイが球面上にあるとき Ԧ = Ԧ + Ԧ
レイが球面上にあるとき Ԧ = Ԧ + Ԧ Ԧ + Ԧ −
Ԧ 2 = 2 Ԧ + Ԧ − Ԧ ⋅ ( Ԧ + Ԧ − Ԧ ) = 2 ⋮ 最終的にtに関する2次方程式
代数的な計算で衝突点が求まる
ポリゴンの場合 三角形の集合で表される
ポリゴンの場合 すべての三角形と衝突計算を行う
計算が重い!!!
最適化手法 ・空間分割法 ・BVH(Bounding Volume Hierarchy)
もっと簡単な方法はないのか?
レイマーチング
レイマーチング
レイマーチング
レイマーチング
レイマーチング
レイマーチング 衝突
計算量が増えるが、複雑な形状を 簡単に扱える
こんなことできます
こんなことできます
興味のある方は→
Physically Based Rendering
物理的に正しく光の強さを計算する
写真のようにリアルな画像が生成できる
光の強さとは?
光の強さ = 光子の数
放射束Φ Φ = ある領域を単位時間に通過する光子の数
カメラのセンサー 画素が受け取る光子 = 放射束×露光時間
カメラのセンサー 画素に入ってくる放射束が分 かればよい
放射束面密度 = Φ ある一点を単位時間に通過する光子の数
放射輝度 = 2Φ cos ある一点にある方向から単位時間に来る 光子の数
カメラのセンサー 半球に渡って放射輝度を積分して放射束面密 度を得る = න Ω , cos
カメラのセンサー 一画素の全範囲に渡って放射束面密度を 積分して放射束を得る Φ = න න Ω (, )
cos
めっちゃ数値積分する
数値積分 I =
数値積分 () 等間隔で点をサンプリングする
数値積分 () 短冊部分を足し合わせる
高次元だとサンプリング 数が爆発的に増える
モンテカルロ積分
確率的にサンプリング点 を生成する
モンテカルロ積分 () 確率密度( )でサンプリング点を生成 1 2 3 4 5 6
モンテカルロ積分 () 一様分布なら = − 1 2 3 4 5
6
モンテカルロ積分 () = σ= () () で計算できる 1 2 3
4 5 6
カメラのセンサー 確率密度 で画素に点 をサンプリング 一画素の面積
カメラのセンサー 確率密度 で方向をサンプ リング 半球全体
カメラのセンサー 一画素を通過する放射束が計算できる = = ( ) = ,
cos ( )
カメラのセンサー = = ( ) = , cos
( ) サンプリング数を増やすと近似精度が上がる
モンテカルロ積分の問題点
モンテカルロ積分の問題点 収束が遅い
モンテカルロ積分の問題点 サンプリング数をとすると に比例
モンテカルロ積分の問題点 サンプリング数を100倍にしても10倍の 精度向上しか見込めない
カメラのセンサー = = ( ) = , cos
( ) ( , )を計算する必要がある
None
入射放射輝度の計算 ( , )
入射放射輝度の計算 ( , ) どれだけの光が反射されるのか?
双方向反射率分布関数(BRDF) (, , )
双方向反射率分布関数(BRDF) (, , ) 入射光が出射方向にどれだけ反射されるかを表す
反射される放射輝度 , = න , , (, ) cos
反射される放射輝度 , = න , , (, ) cos が発光している場合も加えると
レンダリング方程式(LTE) , = , + න , , (, )
cos Physically Based Renderingで最も重要な式 発光 反射光
レンダリング方程式(LTE) , = , + න , , (, )
cos この方程式をモンテカルロ積分でひたすら解く
レンダリング方程式を解くことでリアルな画像が得られる
この続きを知りたい方は
#ρ-rayに入ろう!!!
ありがとうございました