メモ: nannou と行列計算

「Rust 行列計算」とかでググると、主に nalgebra と ndarray という Crate が引っかかる。どうやらこれが二大巨塔っぽい。

しかし、nannou が使っている Crate はこれではなく、 cgmath というやつらしい。

cgmath はコンピューターグラフィックスのための行列演算ライブラリだけど、バリバリ開発されているというよりはメンテナンスモード?的な感じになっているらしく(メンテはされているので使うのに不安があるわけではない)、

cgmath から nalgebra に乗り換えたという事例もちらほら見つかる。

が、nannou 内でそういう議論がされたことはなさそう(GitHub を見る限りは)。

nalgebra には、GLM (OpenGL Mathematics)に似せた API の nalgebra-glm という Crate もあって、「こっちの方が簡単だし GLM の資料はインターネットにいっぱい出回ってるからオススメだよ!」みたいなことが書かれている

Simplified computer-graphics API -

だがしかし。GLMと同じように書けば OK 、というばかりでコード例がなく、例えば本家 GLM では

glm::mat4(1.0f);

と書くと 4x4 の単位行列がつくれるっぽいけど、nalgebra-glm だと mat4() には 16 個の引数を渡さないといけない、みたいな些細な点に初心者としてはけっこう躓いてしまう。。(なんかやり方あるんでしょうか)

ということで、まあドキュメントが整ってる nalgebra を使うのに気持ちが傾きつつある。実際の描画前にいったん cgmath の型に変換するというのがめんどくさくはあるけど...

追記(2020/08/15)

最近は glam という crate も人気っぽい。Rust 製のゲームエンジン Bevy も glam を使っていた。

で、結局どれを使えばいいの??となるので、mint という crate で相互変換?できるようになってるらしい。が、使い方わからない...