2021.06

DirectX Raytracing 入門

NVIDIAチュートリアル https://github.com/NVIDIAGameWorks/DxrTutorials をやっています。本当は Ray Tracing in One Weekend を DXR で実装したいのですがまだ三角形しか出せていません。影すらないのでレイトレの意味がない。早くプロシージャルジオメトリを描きたいです。 f:id:arcturu:20210630235118p:plain

今月の絵

マジの落書きしかしていない…… f:id:arcturu:20210630235643p:plain

2021.05

GUI フレームワークが少し進んだ

ゴールデンウィークにカラーピッカーとデータバインディングの仕組みをつくりました。 ステート変化のたびに仮想 UI Tree を返して裏側で物理的なリソース(GUI 上のバッファー、シェーダーモジュール、...)と紐付ける方法は見た目はきれいですがバインディング部分やリソースをプールして管理する部分が難しそうなのですこし imgui っぽい描画と UI Tree が密結合したシステムにしました。今は StackPanel のレイアウトシステムを作っています。

f:id:arcturu:20210531220338g:plain

今月の絵

顔くらいまともに描けるようになりたいと思い今作れる最大限のかわいさを考えました。これを突き詰めてみます。 f:id:arcturu:20210531223113p:plain

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 対応のテキストボックスは見えている地獄です。

f:id:arcturu:20210430213624g:plain
ウィンドウ

今月の絵

www.pixiv.net

2021.03

組子と L-System

組子、きれいですよね。シンプルなルールでできているので組子を表現するための形式言語を設計できそうだと思っていましたが、それは普通に L-System でした。武蔵美の高山先生の作品がやりたいことそのものだったので真似しています。L-System はある世代の形状は同じでもルールの記述方法によって木の構造が変わり、補間でアニメーションさせたときの見た目が変わるため、うまいこと狙ったアニメを作るにはかなりの経験が必要そうです。

vimeo.com

f:id:arcturu:20210331205714p:plain
麻の葉

しょぼいツールをさっと作りたい

筋トレメニューの記録やポモドーロタイマーなど、普段使いするしょぼいアプリは自分で作りたいものです。記録ツールを Web の技術で作ろうとすると永続化がしんどい問題に立ちあたりいつもスプレッドシートで妥協していたのですが、もうちょっと GUI に凝りたくなってきたので Firebase を触ってみました。サンプルプロジェクト作成のコマンドラインツールがいたれりつくせりですごいですね。GitHub Actions の設定までやってくれるとは。ポモドーロタイマーについては現在 Flat Tomato というアプリを使っているのですが、別にめちゃめちゃ使いやすいわけでもなく、自前でビジュアライズや分析をしたいなと思い始めたので Swift の勉強に iOS のネイティブアプリを書いてみようかと思っています。現代は開発環境の進化によってこういうちょっとしたツールが土地勘のない環境でも 10h くらいで作れるようになっている(作れるとは言っていない)と思うので、あとはやるだけ。

今月の絵

Portrait 3.18www.pixiv.net

絵を描きたい欲が完成まで持っていける分だけ湧くのは四半期に一度くらいしかない気がします。