はじめに
11月2日~11月6日に開催された第10回新千歳空港国際アニメーション映画祭でデモシーンの上映とGLSLのシェーダーライブコーディングをしました。
作品のタイトルは『Infinite Keys』で、ゲーミングキーボードをモチーフにしました。
以下は『Infinite Keys』の各種リンクです。
"Infinite Keys" by @gam0022
— がむ (@gam0022) October 22, 2023
3rd Place in GLSL Graphics Compo at #TokyoDemoFest 16ms #0#TokyoDemoFest 16ms #0 のGLSLグラフィックスコンポで3位に入賞しました! pic.twitter.com/EsJitdiOdV
2023年4月28日~30日にツインメッセ静岡で開催されたSESSIONS in C4 LAN 2023 SPRINGに参加し、GLSL Graphics Compo部門で2位をいただきました!
作品のタイトルは『Transcendental Cube』で、シンプルな立方体が複雑なジオメトリーに変形していく非現実的な様子を、写実的で迫力ある映像で表現することをコンセプトにしました。
GLSL Graphics Compoのレギュレーションとして音楽は含められませんが、イベント後の動画用に@sadakkeyさんに素晴らしい音楽を制作していただきました。この場を借りて、心から感謝の意を表します!
以下は『Transcendental Cube』の各種リンクです。
"Transcendental Cube"
— がむ (@gam0022) May 1, 2023
2nd place at GLSL Graphics Compo, #SESSIONS_Party 2023 🥈
SESSIONS 2023のGLSL Graphics Compoで2位を勝ち取りました! pic.twitter.com/Ra2Y0Ccfpx
GLSL Graphics Compo の2位でした!
— がむ (@gam0022) April 30, 2023
#SESSIONS_Party pic.twitter.com/ihD5DfiNz2
スプラトゥーン3、けっこう面白いですね。過去作の1,2は未プレイでしたが、3からスプラデビューしました。
スプラ3で遊びながら、インクシェーダーの実装方法に興味が出てきたので、UnityのShaderGraphでそれっぽいものを実装してみました。
ShaderGraphの基本機能だけで構成されており、ノードの量も少なめにしました。
ShaderGraphの基本操作は解説しませんが、なるべく丁寧に説明をしたつもりなので、ShaderGraphの入門記事として参考にしてください!
UnityのShaderGraphでインクシェーダーを試作#Unity3D #ShaderGraph pic.twitter.com/PHxIkfnkiQ
— がむ (@gam0022) December 23, 2022
色変更
しきい値の調整
normalize.fmの第032回にゲスト出演させていただきました。
#normalizeFM の新エピソード公開しました。
— h_doxas (@h_doxas) October 18, 2022
今回は @gam0022 さんをゲストに、普段の収録と比較するとかなりテックな話題に寄った感じで、深い技術の話をいろいろうかがいました。
032. たゆまぬ努力とキャッチアップhttps://t.co/acML0WOwYQ
自作のレンダラーでこんな動画を 10分の制限時間 でレンダリングして5位をいただきました!
レイマーチングとポリゴンをハイブリッドに描画できる単方向パストレーシングのレンダラーをOptiXで開発して16人中7位でした。
— がむ (@gam0022) September 4, 2022
レンダリング時間は10分(1フレーム2秒)だったので、
NEEやMISなどサンプリングの高速化も行いました。
動画は本戦で実際に出力されたファイルです。#レイトレ合宿 pic.twitter.com/LDgKL7gLsY
レイマーチングはレイキャスティングと比べて遅いと感じていましたが、なるべく同じ条件で計測した場合に実際どのくらい差があるのか比較してみました。
メンガーのスポンジをレイマーチングとレイキャスティングでそれぞれ交差判定を実装し、フラクタルの深度を1~4に変化しながら計測しました。
次の画像はレイマーチングによる深度4のメンガーのスポンジです。
先に結果から発表すると、なんとレイマーチングはレイキャスティングの15~20倍くらい遅いようでした。
ここまで遅いなんてショック😨…
256サンプリング時のレンダリング時間(秒)
フラクタルの深度 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
レイマーチング | 8.85388秒 ![]() |
9.00077秒 ![]() |
9.14309秒 ![]() |
9.29724秒 ![]() |
レイキャスティング | 0.445493秒 ![]() |
0.466056秒 ![]() |
0.50258秒 ![]() |
0.602458秒 ![]() |
TDFは、日本国内で唯一のデモパーティです。 リアルタイムに映像や音楽を生成するプログラムを「デモ」と言い、デモを鑑賞したり完成度を競ったりして楽しむイベントを「デモパーティ」と言います。 「デモシーン」はデモやデモパーティを中心としたコンピューターのサブカルチャーです。
TDFのShader Showdownというイベントに競技者として参加しました。
前日は@UnagiHumanさんの「Unityの新MeshAPIでMeshColliderをリアルタイム変形させる」でした。
こんな感じのY軸のビルボードをC#スクリプトを使わずに、シェーダーだけで実装しました。
GitHubリポジトリ: gam0022/unity-urp-shader