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
Accelerate your Ray Tracer
Search
yumcyawiz
September 07, 2018
Programming
0
100
Accelerate your Ray Tracer
yumcyawiz
September 07, 2018
Tweet
Share
More Decks by yumcyawiz
See All by yumcyawiz
fredholm(rtcamp9)
yumcyawiz
0
84
フォトンマッピングをパス空間から考える
yumcyawiz
0
320
fredholm
yumcyawiz
0
210
Introduction to volume rendering
yumcyawiz
0
1.8k
OSK#p-ray2020年度講義: 古典的レイトレーサーの実装
yumcyawiz
0
240
Ray Tracing: Overview
yumcyawiz
7
1.2k
GLSLでパストレーシングしてコーネルボックスを出す
yumcyawiz
0
390
Pybind11でC++とPythonのいいとこ取りをする
yumcyawiz
0
830
Path Tracing in 5 minutes
yumcyawiz
1
300
Other Decks in Programming
See All in Programming
Patched fetch did not work
quramy
4
380
Google Sign-inの移行から始めるCredential Manager活用
clockvoid
0
300
エラーレスポンス設計から考える、0→1開発におけるGraphQLへの向き合い方
bicstone
5
1.5k
Crafting Cross-Platform Adventures: Building a Game Engine with Kotlin Multiplatform
dwursteisen
0
120
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
0
230
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
390
GraphQL あるいは React における自律的なデータ取得について
quramy
11
3k
Why Prism?
kddnewton
4
1.7k
XStateでReactに秩序を与えたい
gizm000
0
730
実践!難読化ガイド
mitchan
0
200
LangGraphでのHuman-in-the-Loopの実装
os1ma
3
1.1k
長期運用プロダクトの開発速度を維持し続けるためのリファクタリング実践例
wataruss
8
2.7k
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
73
8.9k
Designing on Purpose - Digital PM Summit 2013
jponch
114
6.8k
Designing the Hi-DPI Web
ddemaree
278
34k
How to train your dragon (web standard)
notwaldorf
85
5.6k
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
Typedesign – Prime Four
hannesfritz
39
2.3k
Faster Mobile Websites
deanohume
304
30k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
36
2.1k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
1
50
Java REST API Framework Comparison - PWX 2021
mraible
PRO
27
7.4k
Navigating Team Friction
lara
183
13k
Building Your Own Lightsaber
phodgson
101
6k
Transcript
ACCELERATE YOUR RAY TRACER 効率の良い衝突計算の方法
衝突計算の効率化 • 現在の実装は全ての物体と衝突するかを一つ一つ調べている(線形探索)
線形探索 このような場合でも物体一つ一つと衝突計算が行われる
衝突計算の効率化 • 現在の実装は全ての物体と衝突するかを一つ一つ調べている(線形探索) 圧倒的に無駄が多い
衝突計算の効率化 • 現在の実装は全ての物体と衝突するかを一つ一つ調べている(線形探索) 大量のポリゴンに対応することができない
効率化手法 • Bounding Volume Hierarchy(BVH) • Kd-Tree
BVH • 物体をBounding Volumeと呼ばれる枠で囲む • 衝突計算を行うときは、まず枠と衝突するか試す
BVH 枠と衝突しないので中の物体は見ない
BVH • 物体をBounding Volumeと呼ばれる枠で囲む • 衝突計算を行うときは、まず枠と衝突するか試す • さらにBounding VolumeをBounding Volumeで囲んで木構造にする
BVH まず全体の枠と衝突計算をする
BVH 中の枠と衝突計算をする
BVH 最終的に枠の中で線形探索して衝突物体を得る
BVHの木構造
枠の生成方法 • Axis Aligned Bounding Box(AABB)と呼ばれる長方形を枠として使うことが一 般的 • AABBとは各軸に平行な長方形のこと •
中の物体の合計の大きさに合わせるようにする
AABB
BVHによる衝突計算の流れ 1. 物体集合からBVHを生成 2. まず全体の枠と衝突計算 3. 当たったら中の要素を衝突計算 4. 当たったらさらに中の要素を衝突計算 …
5. 最終的な衝突物体を得る 再帰的な処理
BVHの生成方法 • 中央分割法(Median Split) • 等数分割法(Equal Size Split) • Surface
Area Heuristics(SAH) いずれも全体の枠の長さが最大となる軸を分割軸として選ぶ
Median Split 中央値の位置で分割する
左右で物体の数が等しくなるところで分割する Equal Size Split
SAHのコストが最も低くなるところで分割する SAH 50 10 40 30 45
SAHコストの計算方法 = + + : 木の走査のコスト : 親の枠の表面積 , :
子の枠の表面積 , : 子の枠に入っている物体数 :物体との衝突計算のコスト このコストが最小となる分割位置を選ぶ
比較 Equal Size Median SAH SAHが最も優れたBVHを生成できる