2010-01 << 2010-02 >> 2010-03

2010-02-02 (火)

*ふと思い出した

中学生のとき,N88-BASICでポリゴンモデラを作ったのを思い出した.あのソース発掘したいな.

プログラミング初心者が,雑誌に載っていたLightWaveか何かのスクリーンショットを見て想像だけで作ったモデラという稀有なソフトです.今思えばポリゴンモデラとは言えないですが.

行列や,逆三角関数の存在も知らない時代に作ったので,物体の回転等は,全て数値解析的な手法で成されているし,陰面消去もバグだらけで不安定な怪しげなアルゴリズムによって実装されていた.途中で何かの本で内積とか言うものを見たとき,これはポリゴンの向きの判定に使えると知って,少しまともな処理に変わった覚えがある.

計算が速くないので,オブジェクトの回転前に一旦回転軸を中心とした局座標系に変換する処理とか入っていて,しかも微妙に誤差があるので,回転を繰り返すと形が歪んでいくのをどうにかしたかったな.

表示する面の数を削ったり陰面消去のバグを手動で避けるために,面ごとに表示非表示を設定できるという機能が当たり前のように実装されていた気がする.きっと,一般的にある機能だろうと想像していたけど,そんなものは無かった.

ソートをどんなアルゴリズムでやってたのかがどうしても思い出せない.バブルソートじゃ遅すぎる気がするけど,どうやって解決したんだろう.ネットも無かったし,アルゴリズムの本なんか持ってなかったので,もしかしたら,ソート処理がバグっていたせいで陰面消去がおかしかったんじゃないだろうか.

あのころと比べると,行列知っているし,スペックが数百倍のマシンがあるのに,同じものを作れる気がしない.あのときの自分に線形台数と三角関数のまともな知識があればなぁ.というか,ネットがあれば・・・.

2010-01 << 2010-02 >> 2010-03