2021.09
今月の絵
レイトレ
NVIDIA の DxrTutorials の写経が終わった。 github.com
TLAS の動的書き換えまで動いた(DxrTutorial の範囲終わり) pic.twitter.com/qnudAwE7Pi
— あるく (@_arcturu) September 6, 2021
2021.08
今月の絵
太陽が沈んだ20分後みたいな。
手癖のアリス。構図が死んでいる。
2021.06
DirectX Raytracing 入門
NVIDIA のチュートリアル https://github.com/NVIDIAGameWorks/DxrTutorials をやっています。本当は Ray Tracing in One Weekend を DXR で実装したいのですがまだ三角形しか出せていません。影すらないのでレイトレの意味がない。早くプロシージャルジオメトリを描きたいです。
今月の絵
マジの落書きしかしていない……
2021.05
GUI フレームワークが少し進んだ
ゴールデンウィークにカラーピッカーとデータバインディングの仕組みをつくりました。 ステート変化のたびに仮想 UI Tree を返して裏側で物理的なリソース(GUI 上のバッファー、シェーダーモジュール、...)と紐付ける方法は見た目はきれいですがバインディング部分やリソースをプールして管理する部分が難しそうなのですこし imgui っぽい描画と UI Tree が密結合したシステムにしました。今は StackPanel のレイアウトシステムを作っています。
今月の絵
顔くらいまともに描けるようになりたいと思い今作れる最大限のかわいさを考えました。これを突き詰めてみます。
2021.04
WebGPU はいいぞ
WebGPU, というか wgpu-rs はとてもよいものです。低レベルグラフィックス API を始めたいけど Vulkan は too verbose だし DX12, Metal はプラットフォーム依存がどうにも、という人に向いています。実態は Vulkan / DX12 / Metal をラップしたグラフィックスライブラリなので低レベルグラフィックスプログラミングそのもの感は少し低いかもしれませんが、現代的なグラフィック API の特徴(グローバルステートを持たない、シェーダーのバイナリ中間言語が使える、...)を備えているので、いざとなれば Vulkan などに移植するのもさほど苦ではないという点で安心感があります。レイトレや Mesh Shader などはサポートされていませんが、しかたないですね。テッセレーションもないのでやるならコンピュートシェーダーで自前実装が必要ですが、これは Metal も同じ(といっても Apple が用意してくれている)らしいので最近の流れなのでしょうか。ブラウザ上で実用できるレベルに至るにはまだ数年かかりそうですが、ネイティブグラフィックスライブラリとしては現状でも十分実用的だと思います。
おすすめチュートリアル:Introduction | Learn Wgpu
GUI フレームワークを作る
wgpu-rs で GUI フレームワークを作っています。ウィンドウ表示とフォント描画ができるようになりました。現在レイアウトシステム(StackPanel, Grid でいい感じに配置したい)を作っています。IME 対応のテキストボックスは見えている地獄です。
今月の絵
2021.03
組子と L-System
組子、きれいですよね。シンプルなルールでできているので組子を表現するための形式言語を設計できそうだと思っていましたが、それは普通に L-System でした。武蔵美の高山先生の作品がやりたいことそのものだったので真似しています。L-System はある世代の形状は同じでもルールの記述方法によって木の構造が変わり、補間でアニメーションさせたときの見た目が変わるため、うまいこと狙ったアニメを作るにはかなりの経験が必要そうです。
しょぼいツールをさっと作りたい
筋トレメニューの記録やポモドーロタイマーなど、普段使いするしょぼいアプリは自分で作りたいものです。記録ツールを Web の技術で作ろうとすると永続化がしんどい問題に立ちあたりいつもスプレッドシートで妥協していたのですが、もうちょっと GUI に凝りたくなってきたので Firebase を触ってみました。サンプルプロジェクト作成のコマンドラインツールがいたれりつくせりですごいですね。GitHub Actions の設定までやってくれるとは。ポモドーロタイマーについては現在 Flat Tomato というアプリを使っているのですが、別にめちゃめちゃ使いやすいわけでもなく、自前でビジュアライズや分析をしたいなと思い始めたので Swift の勉強に iOS のネイティブアプリを書いてみようかと思っています。現代は開発環境の進化によってこういうちょっとしたツールが土地勘のない環境でも 10h くらいで作れるようになっている(作れるとは言っていない)と思うので、あとはやるだけ。
今月の絵
絵を描きたい欲が完成まで持っていける分だけ湧くのは四半期に一度くらいしかない気がします。