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
レイトレ合宿6 xyz-renderer
Search
xyz600
September 04, 2018
Programming
1.3k
1
Share
レイトレ合宿6 xyz-renderer
レイトレ合宿6 で発表した資料
xyz600
September 04, 2018
Other Decks in Programming
See All in Programming
Make GenAI Production-Ready with Kubernetes Patterns
bibryam
0
100
The Monolith Strikes Back: Why AI Agents ❤️ Rails Monoliths
serradura
0
300
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
130
Running Swift without an OS
kishikawakatsumi
0
740
Vibe NLP for Applied NLP
inesmontani
PRO
0
290
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
320
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
260
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
130
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
220
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
880
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
230
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
2.9k
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Practical Orchestrator
shlominoach
191
11k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
270
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
130
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
720
The agentic SEO stack - context over prompts
schlessera
0
740
First, design no harm
axbom
PRO
2
1.2k
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
260
The Curse of the Amulet
leimatthew05
1
11k
Transcript
レイトレ合宿6 xyz-renderer Yuichi Sayama @xyz600600
やりたかったこと • オブジェクトをたくさん配置したい ◦ なんかかっこいい • シーンを自分で考えてみたい ◦ なんか楽しそう •
みんながやらなさそうな工夫を入れてみたい ◦ 独自性的なあれ • 高速化したい ◦ ノイズが目立たなくなる程度には
最終的に出来た絵
None
思ったよりリアルにならない…?? • もうちょい工夫の余地はあったはずだが、時間が足りずに断念 ◦ テクスチャ を単色以外にする ◦ BRDF の変更 ◦
車の種類を増やす • リアルなシーンに重要なことを知りたい • 画像の詳細 ◦ 1920 x 1080 ◦ 本番環境で 約200spp
工夫したこと 1. オブジェクトのClone 2. 2段BVH 3. MIS 付きのNext Event Estimation
4. 並列化方法
オブジェクトのClone • 300K Polygon の車をランダムにずらしながら計80台並べた • 全てにPolygonを持たせるとしんどいので、Polygonは共有 • Material は外部ファイルを6種類用意して、ランダムにload
• 交差判定は元のオブジェクトの空間へ引き戻して行う original obj (Polygon含む) ① original obj で交差判定 cloned obj (AABBの外枠だけ) ② cloned obj の座標に戻す 交差判定!
2段BVH • Clone されるオブジェクトが増えてきたので、BVHを2種類作った ◦ Objectの外枠のAABB+Polygonでない物体用 ◦ Polygon専用 • 実装はほとんど流用できるようにした
◦ 方法は「Bounding Volume Hierarchy (BVH) の実装 - 構築編」と同じ
MIS 付きのNext Event Estimation • CEDEC 2015 のBDPT 基礎資料[1]を参考にした •
最初は意味わからなくて敬遠してたけど、唐突に理解出来たので使った • 双方向パストレ、MLT は実装つらそう ◦ 来年こそは…! [1] https://www.slideshare.net/takahiroharada/introduction-to-bidirectional-path-tracing-bdpt-implementation-using-opencl-cedec-2015
並列化方法 • 画像全体を 16x16 に区切って、並列化 ◦ ロードバランスの調整は、Rayon(Rustの並列化ライブラリ)にお任せ ◦ (本当はRay Packet
を送ろうと思ったけど、時間が足りず) ◦ ローカルの i7-6700K(4C/8T)@4GHz より8.3倍 速い ◦ user / real ≒ 72 を見ると癒やされる…
やり残したこと • SIMD化 ◦ パーツとしては実装したけど、きちんと組み込むための時間が足りず • 双方向パストレ、MLT等の強いアルゴリズム実装 • 被写界深度 ◦
実装したけど、シーンがイマイチだったので却下