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
450
0
Share
【レイトレ合宿11】kagayaki_v4
レイトレ合宿11にて提出したレンダラ kagayaki_v4のプレゼンスライドです.
Yoshi's Dream
November 16, 2025
More Decks by Yoshi's Dream
See All by Yoshi's Dream
【レイトレ合宿10】kagayaki_v3
runningoutrate
0
950
【KMC春合宿2024】実装視点で見るNeural Radiance Fields
runningoutrate
0
430
レイトレ合宿9セミナー資料 SVGFについて
runningoutrate
0
1.3k
Other Decks in Programming
See All in Programming
AI時代だからこそ「Bloc」を採用する価値があるのかもしれない
takuroabe
0
220
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
4
410
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
400
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
100
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1.1k
Transactional Change Stream Processing With Debezium and Apache Flink
gunnarmorling
1
110
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
440
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
660
ふにゃっとしない名前の付け方 〜哲学で茹で上げる、コシのあるソフトウェア設計〜
shimomura
0
130
Firefoxにコントリビューションして得られた学び
ken7253
2
170
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
5
790
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
0
130
Featured
See All Featured
HDC tutorial
michielstock
2
670
The Language of Interfaces
destraynor
162
26k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
160
A Tale of Four Properties
chriscoyier
163
24k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
240
We Are The Robots
honzajavorek
0
230
Designing for humans not robots
tammielis
254
26k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
930
The Invisible Side of Design
smashingmag
302
52k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
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! まだまだ高速化できます! 頑張ります 幻の最終フレーム......