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
340
【レイトレ合宿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
290
レイトレ合宿9セミナー資料 SVGFについて
runningoutrate
0
800
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Optimizing for Happiness
mojombo
376
70k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Rails Girls Zürich Keynote
gr2m
94
13k
Ruby is Unlike a Banana
tanoku
97
11k
Building Your Own Lightsaber
phodgson
103
6.1k
Documentation Writing (for coders)
carmenintech
65
4.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
Bash Introduction
62gerente
608
210k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
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