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
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 03
javiergs
PRO
1
490
AgentCoreとHuman in the Loop
har1101
5
240
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
210
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6.1k
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
440
CSC307 Lecture 08
javiergs
PRO
0
670
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
SourceGeneratorのススメ
htkym
0
200
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
160
Designing Experiences People Love
moore
144
24k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Designing Powerful Visuals for Engaging Learning
tmiket
0
240
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
110
The Invisible Side of Design
smashingmag
302
51k
From π to Pie charts
rasagy
0
130
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
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! まだまだ高速化できます! 頑張ります 幻の最終フレーム......