ハスケルのコンピュータグラフィックスでいくつかの実験をしたいと思います。これには、幾何学計算を実行し、最終的にレイトレーサを書き込むことが含まれます。ベクトル、行列、および関連する操作を簡単に処理するためには、どのライブラリを選択する必要がありますか?コンピュータグラフィックスジオメトリ用のHaskellライブラリはどれですか?
vectとAC-Vectorのような見栄えの良いものを含むHackageにはいくつかありますが、非常に多くの異なるライブラリの中から良い候補を見逃すのは簡単です。
ハスケルのコンピュータグラフィックスでいくつかの実験をしたいと思います。これには、幾何学計算を実行し、最終的にレイトレーサを書き込むことが含まれます。ベクトル、行列、および関連する操作を簡単に処理するためには、どのライブラリを選択する必要がありますか?コンピュータグラフィックスジオメトリ用のHaskellライブラリはどれですか?
vectとAC-Vectorのような見栄えの良いものを含むHackageにはいくつかありますが、非常に多くの異なるライブラリの中から良い候補を見逃すのは簡単です。
変換に使用するベクトルと行列については、おそらくvect
が最適です。前述したように、高速で低精度(Double
の精度のように、Ratio
精度)の変換に最適化されており、lambdacube
のマトリックススタックとしての役割は、パフォーマンスが鍵となるアプリケーションの例として示されています。ほとんどのアプリケーションでは十分に高速です。
たとえば、画像に使用されるデータ行列の場合、特にレイトレーシングなどのデータ並列計算を実行する場合はrepa
を使用することをお勧めします。
Conal Eliottによるvector-spaceと呼ばれる興味深い図書館があり、多くの分析関数のテイラー級数を遅延計算することができます。 hereも参照してください。しかし、パフォーマンスについてはわかりません。
ベクトル空間は、それが提供する型クラスに非常に便利です。これは、Num階層を拡張します(線形マップと派生したタワーのものがなければ、非常に便利です)。独自のPoint、Vectorなどのデータ型を用意する必要があります。 –
これはやや悪い質問です。[ここではどのような質問をしてはいけないのですか?](http://stackoverflow.com/faq#dontask)のFAQをチェックしてください。これが議論にならないように、おそらく質問から最後の文を削除するべきです。 – cha0site
@ cha0site完了。それは私にはむしろあいまいですが、なぜこれが事件ですか? – Tener
あなたの要件はやや曖昧ですが、それはまだIMOという興味深い質問です。 – stakx