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
【レイトレ合宿10】kagayaki_v3
Search
Yoshi's Dream
October 13, 2024
0
370
【レイトレ合宿10】kagayaki_v3
レイトレ合宿10で提出したレンダラの発表スライドです
Yoshi's Dream
October 13, 2024
Tweet
Share
More Decks by Yoshi's Dream
See All by Yoshi's Dream
【KMC春合宿2024】実装視点で見るNeural Radiance Fields
runningoutrate
0
310
レイトレ合宿9セミナー資料 SVGFについて
runningoutrate
0
830
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Optimizing for Happiness
mojombo
376
70k
A designer walks into a library…
pauljervisheath
204
24k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
A Tale of Four Properties
chriscoyier
157
23k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Six Lessons from altMBA
skipperchong
27
3.5k
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