Unreal Engine 5.2上でオブジェクトスペースのレイマーチングを実装したので、その解説をします。
レイマーチングをノードだけで実装するのは大変なので、MaterialのCustomノードを用いて複雑な処理はHLSLのコードで実装しました。
UE(Unreal Engine)のプロジェクトはGitHubに公開しています。
Object Space Raymarching in Unreal Engine 5.2#UE5 #UnrealEngine #UnrealEngine5 #Shader pic.twitter.com/42n2W87HnJ
— がむ (@gam0022) July 27, 2023
Randomization of glowing animation borders#UE5 #UnrealEngine #UnrealEngine5 #Shader pic.twitter.com/FvLbVtE9Q3
— がむ (@gam0022) July 30, 2023
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
去年の1月試験でFP3級、5月試験でFP2級をそれぞれ一発で合格したので、勉強方法と心構えをメモしておこうと思います。
FP2級<<完全合格>>
— がむ (@gam0022) June 29, 2022
多少は税金や金融に詳しくなりました。 pic.twitter.com/dYiCkMKbCx
友達に誘われて一緒に受けたというのが一番の理由だったのですが、マネーリテラシーを向上させることができたので受けて良かったと改めて思いました。
FP試験は6分野から出題され、かなり試験範囲が広いです。
私は会社員のプログラマーとして働いていて、とくに税金関係の知識がまったくありませんでした。
会社員をしていると税金の納税は会社が代わりにやってくれるので、税金の計算方法について以前の私はあまりにも無頓着でした。
源泉徴収や控除というものを知らず、源泉徴収票の見方も分かりませんでした。
また、不動産の知識も日常生活において視野を広げ、世界を見る解像度を上げることに役立ったように思います。
たとえば、近所で家を建て替えた時に道路の幅が広がっていたのを見て、これはセットバックだったんだと気がついたり、 建物の上の方が斜めなっているのは建築基準法第56条の道路斜線制限によるものだったんだなぁと思いながら散歩できるようになりました。
不動産の相続税の評価は路線価で計算されるので、相続税対策でタワーマンションを購入する人もいるのかなど納得しました(※相続税制度改正で是正されるそうですが)。
FP試験を勉強していると、タワーマンションの例のように不動産と相続など、別分野の知識が相互にリンクして繋がることも多く、個人的には楽しく勉強がしやすいと思いました。
スプラトゥーン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秒 |
KORG nanoKONTROL2 + KodeLife pic.twitter.com/UqFQqYUFHa
— がむ (@gam0022) January 30, 2022
このシェーダーはTokyo Demo Fest 2021のShader ShowdownをKodeLife向けに少し修正したものです。
実は去年の5月に乗り換えていて、1年ほど運用して方針が固まったので記事にしました。