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
【レイトレ合宿11】kagayaki_v4
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yoshi's Dream
November 16, 2025
Programming
0
290
【レイトレ合宿11】kagayaki_v4
レイトレ合宿11にて提出したレンダラ kagayaki_v4のプレゼンスライドです.
Yoshi's Dream
November 16, 2025
Tweet
Share
More Decks by Yoshi's Dream
See All by Yoshi's Dream
【レイトレ合宿10】kagayaki_v3
runningoutrate
0
820
【KMC春合宿2024】実装視点で見るNeural Radiance Fields
runningoutrate
0
410
レイトレ合宿9セミナー資料 SVGFについて
runningoutrate
0
1.2k
Other Decks in Programming
See All in Programming
CSC307 Lecture 10
javiergs
PRO
1
660
CSC307 Lecture 02
javiergs
PRO
1
780
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.4k
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
6
640
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
Gemini for developers
meteatamel
0
100
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
220
高速開発のためのコード整理術
sutetotanuki
1
410
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
280
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Google's AI Overviews - The New Search
badams
0
910
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Optimizing for Happiness
mojombo
379
71k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Six Lessons from altMBA
skipperchong
29
4.2k
AI: The stuff that nobody shows you
jnunemaker
PRO
2
270
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Transcript
RTCamp11 Renderer Name: kagayaki_v4 Yoshi’s Dream (Twitter: @TTRS_Yoshi_CG) Resolution: 1024x1024
102 images in 178s 1
kagayaki kagayaki(輝き) CUDA C++で記述.基本フルスクラッチ, RTコア不使用 kagayaki_v0(cudamypt) 2年前の提出物.バグの巣窟 kayagaki_v1 RGB /
Spectral Path Tracer / NeRF train and renderer kagayaki_v2は空き番地 kagayaki_v3 昨年の提出物 RGB Ray Tracer / 3D空間音響シミュレーター(低周波領域) 2
kagayaki_v4 RGB Ray Tracer シーン表現 Scene -> Shape -> Primitive
の2-Level階層構造 行列変換により座標系を変換できるようになった(kagayaki_v3では並進のみ) BLAS, TLAS共にH-PLOCのBVH2を実装 実装を工夫してTLAS, BLASの構築をkagayaki_v3より数十倍高速化 kagayaki_v3ではBLAS構築ごとにメモリを確保していたがそれを一回にまとめた MortonCodeの上位32bitにShapeIDを入れてソートすると,ソート後にはMortonCode配列において Shapeに含まれるプリミティブが区間になる(32bitは勿体ない気もする) H-PLOCのBLAS構築はまだ並列化できていない(stream分割で高速化)(LBVHなら簡単?(未検証)) TLASはアニメーション毎フレーム再構築 Scene … Shape Shape Shape …….. … 3
kagayaki_v4 レイトレ処理 1次レイを飛ばしてGbufferを計算 可視点からWavefront Path Tracing レイをキューで管理 キューの占有率をもとに貪欲法で次のカーネルを動的選択 SamplePixel AccumSurface
RussianRoulette AccumEnv Store to image NEE SampleNextRay ClosestHit hit miss hit miss RR fail RR pass : カーネル単位 4
kagayaki_v4 SamplePixel 次に処理するピクセルを決定する Gbufferを用いてPathをActivateする StaticSampler pixelID = atomicAdd(&cnt, 1u) %
nPixels ある程度サンプルが貯まるまで用いられる AdaptiveSampler(今回不使用) Bufferの統計量をもとに処理するピクセルを動的選択 abs((すべてのサンプルの推定量) – (半分のサンプルの推定量))に比例して選択 サンプル点数がある程度増えないと逆効果 選択方法は要改善(暗い所の分散を過小評価する) 出力画像 サンプル数分布(白: 多い) 5
kagayaki_v4 マテリアル表現 Lambert Diffuse 完全鏡面 Disney BRDF 昨年(kagayaki_v3)は交差判定に拘るあまり表現力を失っていた 複雑なマテリアルの評価処理は想像より重い ラフネスのグラデーション好き
比較的軽量なシーン 6
kagayaki_v4 サンプリング処理 各交差点でのNEE 面光源 + BSDFサンプリングのMIS ReSTIR DI (今回不使用) 面光源サンプリングによる初期サンプル生成
Spatial Reuseはunbiased Temporal Reuseはbiased (アニメーション時) ReSTIR GI (今回不使用) プライマリヒットからいつも通りレイトレをする Spatial Reuseのバイアスが取れない…… Unbiasedness >>>>> 速度 通常 1spp ReSTIR DI 1spp (M=32, Knb = 5) リファレンス リファレンス ReSTIR GI…? 7
kagayaki_v4 ReSTIR DI 実装構造 ReadGBuffer Sample M Initial Candidates Temporal
Reuse Spatial Reuse Shade : カーネル単位 8
kagayaki_v4 ReSTIR GI 実装構造 ReadGBuffer Sample 1 initial candidate ClosestHit
SampleNextRay LightSample UpdateReservoir ClosestHit AccumSurface RussianRoulette AccumEnv NEE SampleNextRay Temporal Reuse Spatial Reuse Shade hit miss hit miss RR Pass RR Fail no primary hit hit/miss cnt < Threshold cnt ≥ Threshold cnt += queueSize cnt = 0 : カーネル単位 : 直列実行単位 9
kagayaki_v4 その他 ファイル入出力: glTF デノイザー: なし 使用ライブラリ (これ以外はフルスクラッチ実装) Dear ImGUI:
GUI処理 tinyglTF: glTFロード stb_image: 画像IO C++ / CUDA標準ライブラリ(cub, thrust, curand) 10
シーン, アニメーション 締切3時間前から作成開始 ReSTIR GIのバイアスを解消しようと奮闘していましたがここで諦め…… 元々作りたかったアニメーションを作る時間はないのでアイデアを一部取り入れてBlenderで作成 動きを感じられるアニメーションを作りたいという気持ち → サンプル数減らしてでも長めのアニメーションを 2,
3個目のオブジェクトはレイトレ合宿9,10でレンダリングしたシーンがベースです(temporal reuse) 三角面: 87240枚 Blenderでの表示 11
シーン, アニメーション 使用アセット(これ以外はすべて自作です) Cornell Box: McGuire Computer Graphics Archiveより 石や岩や木などのテクスチャ:
Poly Havenより Blenderでの表示 12
Thanks! まだまだ高速化できます! 頑張ります 幻の最終フレーム......