Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【レイトレ合宿10】kagayaki_v3
Search
Yoshi's Dream
October 13, 2024
0
790
【レイトレ合宿10】kagayaki_v3
レイトレ合宿10で提出したレンダラの発表スライドです
Yoshi's Dream
October 13, 2024
Tweet
Share
More Decks by Yoshi's Dream
See All by Yoshi's Dream
【レイトレ合宿11】kagayaki_v4
runningoutrate
0
230
【KMC春合宿2024】実装視点で見るNeural Radiance Fields
runningoutrate
0
400
レイトレ合宿9セミナー資料 SVGFについて
runningoutrate
0
1.1k
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
990
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
The Pragmatic Product Professional
lauravandoore
37
7.1k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Practical Orchestrator
shlominoach
190
11k
Code Review Best Practice
trishagee
73
19k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
How to Ace a Technical Interview
jacobian
280
24k
Context Engineering - Making Every Token Count
addyosmani
9
470
Unsuck your backbone
ammeep
671
58k
Transcript
RTCamp10 1 Renderer Name: kagayaki_v3 Image Resolution Sample Per Pixel
Frame Per Second Num of Frames 768 x 768 20 24 142 Yoshi’s Dream (Twitter: @TTRS_Yoshi_CG)
kagayaki kagayaki(輝き) 名前の由来はとあるコンテンツ 『『輝き』とは、形のないものをさします。例えば、......(中略)……などなど、『キラキラとした輝き』を 持つ何か、です』 GPUレンダラ CUDA C / C++で実装
OptiXなどのレイトレAPIや外部ライブラリは基本使用せず,すべてソフト側で実装する方向性 2
kagayaki_v3に至るまで kagayaki_mypt (v0) 昨年度の提出物 バグだらけ kagayaki_v1 RGB Ray Tracing Spectral
Ray Tracing NeRF training and rendering NeRFを実装したあたりで悲惨なスパゲティ 3
kagayaki_v3に至るまで kagayaki_v2 作ったはいいものの,リファクタリングを序盤で放棄 GUIデバッガと化した kagayaki_v3 レイトレ合宿用に作るかと書き始めた 今回提出したもの コード行数はおよそ5000行だった(使いまわし含む) 4
kagayaki_v3 RGB Ray Tracer シーン表現 2-Level でシーンを表現(SceneData_D – Shape_D –
primitive_t) 現在は三角面のみ対応 BVHとして,TLAS, BLASともにH-PLOC [C. Benthin, et al. HPG2024]を実装(BVH2) LBVHとPLOC++が組み合わさった手法 BVHの最適化(メモリ削減,DFS順へのReorder)(今回不使用) シーン更新 各フレームで差分の存在するShapeのBLASと,TLASのみを再構築 光源面の個数と大きさは変動しないという制約がある 5
kagayaki_v3 レイトレLaunch処理 1次レイのみ最初に処理してshared memoryに保持 1ピクセルをWarp内のスレッドで集中的に処理 divergenceを気持ち軽減する 単純な1ピクセル1スレッドよりも70%高速化 しかし,レイの保証深度を深くするとむしろ遅い
kagayaki_v3 経路サンプリング処理 面光源へのNEE, パストレとのMIS フィルタリング処理 シーンの情報を利用してフィルタリング レンダリング画像をアルベドで除す 法線情報,深度情報などで重みづけしたカーネルを畳み込み アルベドを乗じて書き戻し 空間方向のみ考慮し,時間方向は気にしない
shared memoryに載せて高速化 レイトレの時間に比較すると微小な処理時間 7 処理前 処理後
kagayaki_v3 空間音響処理 これはレイトレではない Compact Explicit Finite Difference Time Domain (CE-FDTD)
法 [K. Kowalczyk, and M. Van Walstjun, 2011] レイトレ時に作成したBVHを用いてシーンのボクセルを作成 ボクセル上で波動方程式を解き,音圧の伝搬をシミュレーション shared memoryに載せることでメモリ節約と高速化 詳しくは明日のセミナーで話します 8
シーン Blenderで作成 反響,残響があるシーンを目指した 三角面: 15,172 tris リファレンス資料 Vaundy 『しわあわせ』 MV
jioyi 『cyanine』 ジャケット etc 9
音源 Kontaktの鐘とベースの音色をもとに,EQとコンプレッサーで音に重厚感の印象を付与 シミュレーションで計算できない周波数成分は発散を招くのでEQでハイカット 振り子の付け根に音源を設定している 10
使用したライブラリ等 プログラム(オフラインレンダリング) stb_image: 画像IOのライブラリ TinyObjLoader: OBJファイルの入力 Thrust: CUDA版のC++ stdライブラリみたいなもの curand:
乱数生成 アセット テクスチャ: McGuire Computer Graphics Archiveにあるテストシーンで用いられているテクスチャ モデル: Stanford Bunny 上記にないものはすべてフルスクラッチで実装,作成しました. 11
Thanks! 12