More Related Content
PDF
シェーダだけで世界を創る!three.jsによるレイマーチング PDF
PDF
CEDEC 2020 - 高品質かつ低負荷な3Dライブを実現するシェーダー開発 ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スク... PPTX
PDF
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計 PDF
3次元レジストレーションの基礎とOpen3Dを用いた3次元点群処理 PDF
【Unite Tokyo 2018】ユニティちゃんトゥーンシェーダー2.0使いこなしスペシャル ~こだわりの活用法を紹介します!~ PDF
中級グラフィックス入門~シャドウマッピング総まとめ~ What's hot
PPTX
PDF
【Unity道場 2月】シェーダを書けるプログラマになろう PPTX
PDF
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法 PPTX
はじめてのこんぴゅうとしぇえだあ〜ComputeShaderに入門してみた話〜 PDF
3DCGMeetup08_MayaRigSystem_mGear PDF
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!! PDF
【Unite Tokyo 2018】『崩壊3rd』開発者が語るアニメ風レンダリングの極意 PDF
Cinemachineで見下ろし視点のカメラを作る PDF
物理ベース?アート指向? ~尤もらしさと自由度を両立するレンズフレア表現 PPTX
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略 PDF
PDF
【Unity】より良い表現のためのライティング戦略 PPTX
OpenVRやOpenXRの基本的なことを調べてみた PDF
Introduction to YOLO detection model PPTX
【Unity道場Houdini編】Houdini Engine とプロシージャル法 PDF
PDF
ピクサー USD 入門 新たなコンテンツパイプラインを構築する PPTX
【Unity道場スペシャル 2017大阪】クォータニオン完全マスター PDF
Similar to GLSLtech2018 レイマーチングで半歩差のつく小技集
PPTX
リアルタイムレイトレーシングを用いたNPRペイント風レンダリング|CEDEC2025 PPTX
PDF
【Unite Tokyo 2019】〈七つの大罪〉をゲームで!高品質グラフィックを具現化するための技法と開発最適化のご紹介 PDF
PPTX
Shadow gunのサンプルから学べるモバイル最適化 PDF
PPTX
Gpuフォトンマッピング手法 h26-09-kgussan-第2回レイトレ合宿 PDF
輪読発表資料: Efficient Virtual Shadow Maps for Many Lights PPTX
PDF
coma Creators session vol.2 PDF
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを! PDF
Unity道場京都スペシャル トゥーンシェーディングとノンフォトリアリスティック風絵づくり入門_ KEY
シェーダーしよっ☆ Let's play shaders! PDF
PPTX
PDF
PDF
Introduction to Bidirectional Path Tracing (BDPT) & Implementation using Open... PDF
KLab Creative Seminar: ゼロから始めるベイク生活 PDF
確率的ライトカリング 理論と実装 (CEDEC2016) PPTX
GLSLtech2018 レイマーチングで半歩差のつく小技集
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
Topic: Shading
【お題】⼤域照明︕
レイマーチングの場合、
- SoftShadow
- Ambient Occlusion
による近似が⼀般的
リアルタイムレンダリングに向けた様々な⼿法が考案されている
ss=100/ao=0 ss=1/ao=0
ss=off/ao=0.35 ss=1/ao=0.35
無し Soft Shadowのみ
A.O. のみ Soft Shadow+A.O.
⼤域照明=無数の光源計算=無理︕
- 30.
- 31.
Topic: Shading (FutureWork)
【お題】より⾼品質な⼤域照明へ︕
Ambient Occlusion 疑似拡散反射光GI
AO計算を応⽤して拡散反射光GIを実装してみた【実装】
⼤域照明特有の「⾊にじみ」に挑戦
※⾊にじみ
近傍⾯からの拡散反射光が光源となって
うっすらと近傍⾯⾊が反映される現象
- 32.
- 33.
Topic: Shading (FutureWork)
【お題】より⾼品質な⼤域照明へ︕
AO計算を応⽤して拡散反射光GIを実装してみた【失敗】
失敗例(光らせすぎ)
物理的に正しくないので最終的には⼿調整
疑似拡散反射光GI
- 34.
Topic: Shading (FutureWork)
【お題】より⾼品質な⼤域照明へ︕
AO計算を応⽤して拡散反射光GIを実装してみた【応⽤】
反射⾯なら割と⾃然 集光模様︕ (in progress)
拡散反射⾯レンダリングでの結果は地味だったが、
応⽤範囲は意外に広い、かもしれない。
- 35.
- 36.
- 37.
Topic: After Effect
【お題】フォーカルブラー(マルチパス)
fragColor= vec4(render(ray), min(abs(hit.distance-focus)/100., 1.));
レンダリング結果
vec3(R,G,B)
焦点距離を0とした衝突表⾯までの距離を
0~1の範囲に正規化
1枚⽬︔レンダリング結果(RGB値)と、w値にレイトレースした距離を⼊れておく
2枚⽬︔1枚⽬から受け取ったw値に応じてサンプルポイントをずらした4点で平均化
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
vec4 col = getRenderdTexture(fragCoord);
vec2 b = vec2(col.w * BLUR * iResolution.x, 0);
fragColor = gamma((col + img(fragCoord+b.xy)
+ img(fragCoord-b.xy)
+ img(fragCoord+b.yx)
+ img(fragCoord-b.yx))/5.);
}
- 38.
- 39.
Topic: After Effect
【お題】フォーカルブラー(シングルパス)
voidmainImage(out vec4 fragColor, in vec2 fragCoord) {
vec4 col = render(ray);
col += render(blur_ray(ray, camera, LENS_BLUR)));
col += render(blur_ray(ray, camera, -LENS_BLUR)));
fragColor = gamma(col/3.);
}
// blur_ray() ... ターゲットを中⼼にLENS_BLUR分回転
焦点を合わせるターゲットを中⼼に
カメラを少し移動してレンダリングした
結果を平均化する。
⇒ 平均化分だけ全画⾯のレイトレが必要
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
Topic: Code Reading
【お題】神々の⾔葉を読む
-後付けで関数定義ができない
- 1ページで1シェーダが完結
- 命令がプリミティブ
- パラメータをハードコーディング
- 変数名に略称を⽤いることが多い
- こなれた英語コメントが多い
- そもそもコメントが少ない
- 書き捨てコードが多い
- コーダーのクセがすごい
GLSLのコードは、ものすごく読みにくい
...LL⾔語脳には⾟い
- 46.
Topic: Code Reading
【お題】コードを読む①︔流れと位置
〇後付けで関数定義ができない
⇒ 定義は必ず呼び出し前
- 処理順は下から上になる
- 汎⽤的に使う定数・関数は上⽅
- 結果、距離関数は真中付近
の事が多い
(※ ただし関数定義をせずに、
インラインで記述してる事も多々)
エントリポイント⇒
レンダリング⇒
ライティング⇒
光線追跡⇒
距離関数⇒
汎⽤関数⇒
構造体定義⇒
定数定義⇒
関数の処理順は
下から上
- 47.
- 48.
- 49.
- 50.
- 51.