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
RT Camp 10 Renderer
Search
kinakomoti-321
October 13, 2024
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RT Camp 10 Renderer
kinakomoti-321
October 13, 2024
More Decks by kinakomoti-321
See All by kinakomoti-321
Introduction for Fur, Hair Rendering
kinakomoti321
0
640
RT Camp 11 Renderer
kinakomoti321
0
85
Introduction for Projective Geometric Algebra
kinakomoti321
3
660
How were Quaternion discovered
kinakomoti321
2
1.4k
SH,MonoSH Lightmap Shader
kinakomoti321
1
1k
Henjou-Renderer
kinakomoti321
0
470
Volume Expression GGX(Microfacet)
kinakomoti321
1
4.1k
thin film interference BSDF and Bismuth Growing Algorithm
kinakomoti321
1
1.4k
Pathtracing technics for Caustics
kinakomoti321
0
2.2k
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Ruling the World: When Life Gets Gamed
codingconduct
0
250
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
From π to Pie charts
rasagy
0
200
Testing 201, or: Great Expectations
jmmastey
46
8.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
520
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
530
Odyssey Design
rkendrick25
PRO
2
690
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
240
Transcript
S K H O L E R E N D
E R E R レイトレ合宿 10 kinankomtoi
S K H O L E R E N D
E R E R • Skhole ギリシャ語で「暇」「余暇」、転じて「学問をする場所」 Schoolの語源 1 0 / 1 3 / 2 0 2 4 2 • なんかいい感じの単語でやりたかったので適当に付けた • 諸事情があり、かなりプリミティブなレンダラーになった
使 用 し た ラ イ ブ ラ リ •
VectorLikeGLSL (自作) : GLSLライクなvec, mat - Swittzle演算子対応 - めちゃくちゃバグあった • TinyGLTF • TinyObj • Nlohmann/ json : Jsonの入出力 • Cxxops : コマンドラインパーサー • GLFW • ImGUI 1 0 / 1 3 / 2 0 2 4 3
S C E N E 1 0 / 1 3
/ 2 0 2 4 4 • Blenderで制作 • 特に面白いことはない https://casual-effects.com/data/ • Mituba Knobをお借りしました
モ チ ベ ー シ ョ ン • 特殊なマテリアル作りたい -
特殊なマテリアルの設定がめんどくさい! • デバッグを楽にしたい - 静止画でデバッグするのはもうつらい・・・ • ポスプロちゃんとして~ • Causticsやりて~ • Vulkanをやりたい 1 0 / 1 3 / 2 0 2 4 5
目 標 1 0 / 1 3 / 2 0
2 4 6 • Vulkan Raytracing • Editor制作
目 標 1 0 / 1 3 / 2 0
2 4 7 • Vulkan Raytracing • Editor制作 • ポスプロ(Color Grading etc..) • Fast Multiple Scattering Approximate • VMF Diffuse: A unified rough diffuse BRDF • Interactive Rendering of Caustics using Dimension Reduction for Manifold Next-Event Estimation 特殊なマテリアル Caustics やりたい手法
目 標 1 0 / 1 3 / 2 0
2 4 8 • Vulkan Raytracing • Editor制作 • ポスプロ(Color Grading etc..) • Fast Multiple Scattering Approximate • VMF Diffuse: A unified rough diffuse BRDF • Interactive Rendering of Caustics using Dimension Reduction for Manifold Next-Event Estimation 特殊なマテリアル Caustics やりたい手法 間に合いませんでした
開 発記 1 0 / 1 3 / 2 0
2 4 9
1 0 / 1 3 / 2 0 2 4
10 ~ お盆 8月末 Vulkan Raytracing 入門 https://zenn.dev/nishiki/books/f468197dca2dd8 ゼロからVulkan Ray Tracing, Nishiki Nsightを導入したり Editor 制作
1 0 / 1 3 / 2 0 2 4
11 9月末 8月末 Editor 制作 Bounded VNDF Sampling for the Smith-GGX BRDF Visual Computing マテリアルの保存など アニメーション対応 オフスクリーン レンダリングなど
1 0 / 1 3 / 2 0 2 4
12 10/5 10/9 提出日 そろそろやばい・・・ Caustics アルゴリズム調査 HoudiniでVisualize 行けそうな感じ
1 0 / 1 3 / 2 0 2 4
13 10/5 10/9 提出日 一旦テストで提出、無事に通る Caustics アルゴリズム調査 10/6 テスト提出 OK
1 0 / 1 3 / 2 0 2 4
14 10/5 10/9 提出日 Causticsの実装を開始 Caustics アルゴリズム調査 10/6 テスト提出 OK 10/7 Caustics アルゴリズム実装 ある程度の解を見つけられるようになった 足りてない実装があったのでそれやれば ワンチャン行けるのでは・・・?
1 0 / 1 3 / 2 0 2 4
15 10/5 10/9 提出日 行けるかわからないので他のやりたかった 実装をやる Caustics アルゴリズム調査 10/6 テスト提出 OK 10/7 Caustics アルゴリズム実装 10/8 ポスプロ Fast Multiple Scattering VMF Diffuse テスト提出 ついでに提出
1 0 / 1 3 / 2 0 2 4
16 10/8が終わるころの思考 VMF Diffuseの実装 なんとか行けそう シーンももうちょい こだわろうかな ギリギリCausticsも できるかも・・・?
1 0 / 1 3 / 2 0 2 4
17
1 0 / 1 3 / 2 0 2 4
18 10/8が終わるころの思考 VMF Diffuseの実装 なんとか行けそう シーンももうちょい こだわろうかな ギリギリCausticsも できるかも・・・?
1 0 / 1 3 / 2 0 2 4
19 10/8が終わるころの思考 VMF Diffuseの実装 なんとか行けそう シーンももうちょい こだわろうかな ギリギリCausticsも できるかも・・・?
1 0 / 1 3 / 2 0 2 4
20 10/5 10/9 提出日 全てが崩壊 Caustics アルゴリズム調査 10/6 テスト提出 OK 10/7 Caustics アルゴリズム実装 10/8 ポスプロ Fast Multiple Scattering VMF Diffuse テスト提出
1 0 / 1 3 / 2 0 2 4
21 10/5 10/9 提出日 全てが崩壊 Caustics アルゴリズム調査 10/6 テスト提出 OK 原因が特定できずテスト提出まで 戻すことになった
1 0 / 1 3 / 2 0 2 4
22 10/5 10/9 提出日 10/6日時点のバージョンで提出することに・・・ Caustics アルゴリズム調査 10/6 テスト提出 OK 提出
画 像 が で な い ・ ・ ・ •
レンダリング時間が遅いとOUT • ちょっとでも複雑なシーンにするとOUT • 昔からのバージョンでも同様のバグ • ギリギリ行けそうなシーンと条件を探すことに 1 0 / 1 3 / 2 0 2 4 23
で き た の が こ れ 1 0 /
1 3 / 2 0 2 4 24
教 訓 1 0 / 1 3 / 2 0
2 4 25 バキ外伝 創面 2巻 より引用
や った ( や ろう とし た ) 手 法
の 概 要 1 0 / 1 3 / 2 0 2 4 26
1 0 / 1 3 / 2 0 2 4
27 Bounded VNDF Sampling for Smith–GGX BRDF • サーフェイス方向に向かうサンプルを抑制する VNDF Sampling • 実装はSpherical VNDFサンプリングにちょっと+する ぐらいでできる • 記事を書きました https://zenn.dev/kinankomoti/articles/cff2efa809e8a0 • (著者の人がいるので直接聞いてください)
1 0 / 1 3 / 2 0 2 4
28 Fast Multiple Scattering Approximation • Multiple Scatteringの近似式を導いた手法 • Closedな式で提供(わりとシンプル) • 通常のSingle Scatteringに補正項を加える • 実装については以前記事を書きました https://kinakomoti321.hatenablog.com/entry/2023 /12/29/185730
1 0 / 1 3 / 2 0 2 4
29 Fast Multiple Scattering Approximation • 2次光までを考慮している • Ground Truthと比べると割と近い感じになっている
1 0 / 1 3 / 2 0 2 4
30 VMF Diffuse : A unified rough diffuse BRDF • Roughnessを持つDiffuse BRDFを提案 • 砂のような粒状のLambertian Sphereを考えるこ とで求めている • ShaderToyで実装している人がいました(高次光 の式も含めて) https://www.shadertoy.com/view/MXKSWW
1 0 / 1 3 / 2 0 2 4
31 VMF Diffuse : A unified rough diffuse BRDF • 実装はえげつない近似式を書けばOK • 特にBRDF以外は何も必要がないはず
1 0 / 1 3 / 2 0 2 4
32 Interactive Rendering of Caustics using Dimmension Rendering for Manifold Next-Event Estimation • Coplanarity 条件というものを用いて、Causticsのパス 探索の次元を減らした手法 • 1回屈折, 1回反射によるCausticsのレンダリングが 可能 • Triangle内の探索アルゴリズムの実装は Houdiniで実装 したのがあるので興味がある人はどうぞ (あっているかはわかりません)
1 0 / 1 3 / 2 0 2 4
33 Interactive Rendering of Caustics using Dimmension Rendering for Manifold Next-Event Estimation • Coplanarity (同一平面)条件 屈折反射において入射、出射ベクトル、法線は 同一平面上に存在する必要がある P : Diffuse点 M : サーフェイス点 L : Light点 N_m : Mの法線 • Causticsのパスは少なくともこの条件を満たす • Coplanarity条件を満たす曲線上で探索
1 0 / 1 3 / 2 0 2 4
34 Interactive Rendering of Caustics using Dimmension Rendering for Manifold Next-Event Estimation • TriangleにおいてCoplanarityを満たす 重心座標(α, β)は
1 0 / 1 3 / 2 0 2 4
35 Interactive Rendering of Caustics using Dimmension Rendering for Manifold Next-Event Estimation • これを展開するとConicの式が出てくる • この曲線に沿って探索を行っていく
2 0 2 4 / 1 0 / 1 3
36 Interactive Rendering of Caustics using Dimmension Rendering for Manifold Next-Event Estimation • 実際の探索は次のtangentとRefractionVectorで表現される符号を使う • この正負が反転する境界点がCausticsパスの解 となる • Triangleを移動したり、分割したりして境界点 を探索する
2 0 2 4 / 1 0 / 1 3
37 Interactive Rendering of Caustics using Dimmension Rendering for Manifold Next-Event Estimation • 注意点 • ちょっと数式のミスがある • 式(22),(23)の係数が間違ってる (22) D -> E (23) C - > D • Conic Matrix Mの定義は多分次のようなやつ あとこれ多分縦ベクトル これは3次元ベクトル のはず(z=0と思われ)