DXRuby1.1の3D

DXRuby1.1では3D描画の機能を追加した。
最大のポイントは2Dベース・ピクセル単位の座標系だ。
3D初心者が最初にとまどうのはそこだ、と思っている。俺がそうだから。
座標を-1.0〜+1.0とかで表されても、画面のどこにどのように描画されるのか、というのがイメージできない。
もちろんカメラの位置と変換行列によって自由なのだが、自由なものは基準となる何かが無いととっかかりが無く、自分の中に基準を持つには作る経験が必要なのだ。
ニワトリが先かタマゴが先か。どっちでもない。一番最初にくるのは「試行錯誤」だ。


DXRuby1.1には変換行列を設定する機能があり、3Dの座標系に関してはおそらく自由にできる。自分の中に基準を持っている人は好きなように使ってもらって構わない。
が、そんなことできる人はDXRubyなんか使わないだろう。使う人は初心者だ。そのように想定している。
DXRubyは2Dベースのライブラリなので、3Dに拡張してもやっぱり2Dベースとなる。3Dも2Dベースの基準を持っていたほうがわかりやすい。特に未経験者にとっては。
そういうことで、DXRuby1.1のデフォルトの3Dは画面左上ディスプレイ表面を(0,0,0)とした。表面から奥に3D空間が広がるイメージだ。2Dの画像をそのまま3D空間に投影できるのも、3D空間の座標単位がピクセルなのも、3Dのイメージしやすさを第一に考えた結果だ。


まあ、結局のところDXRuby1.1の各追加機能は、1.0系を使ってきた人や、新しく使い始める初心者にとって、できるだけ簡単に使えるように努力してみた結果こーなった、ということだ。
これが俺の視点であり、俺にできる精一杯であり、DXRuby1.0系と同じように俺流のやりかた全開で、ユーザーに受け入れられるかどうかは未知数となる。
ユーザーが使ってみて、なにか作ってみるには時間がかかるし、1.0系の成果もいまのところそんなに無いわけで、あんまり難しいこと考えてもしょうがないんだけど。
1.1系を使ってみた人はなんか感想をくれると嬉しいな、と思ってみたり。
いまなら豪快な仕様変更を伴う要望も通る可能性が高いよ。
とりとめもないことを言いつつ。今日はおしまい。