1980年からプログラマしています

どうしてプログラマすることになったか書いています。過去日記です。

JCGL 2MBのメモリ(198X年)

 PS330には2MBしかユーザーメモリがなかった。浮動小数のデータを大量に送りつけると、メモリが残り少ないよ!というビープ音が鳴った。アニメーションのデータを並べるには、メモリがあまりにも少ない。
 CGのオブジェクトデータは、親子関係が表現できるようになっていた。親子関係というには、人間なら胴に手や足がついていて、胴を動かすと手や足が一緒に動く。この場合、親が胴で、子が手や足となる。これがアニメーションになると、アニメーションを作成した親子関係分の移動、回転、拡大・縮小のXYZ分のデータが、各フレーム分必要で、これが結構なデータ量になる。
 また、PS330は、モノクロだがワイヤーフレームを1万本位をリアルタイムで描画できた。綺麗に表示すれば表示する程、メモリを圧迫する。やはりアニメーションで再生できる秒数が減ってしまう。
 そこでいくつもある親子関係の移動、回転、拡大・縮小の9個の浮動小数のデータを、予めUNIX側のプログラムで行列を演算して4X4行列1個にしてしまえば、1つのオブジェクトの1フレーム当たりのデータ数は16個の浮動小数だけになる。4X4行列は、右側に0がデータとして並ぶところがもったいないので、3X4の行列にけちって、足りない0はファンクションネットワークで配線してつくって数字を埋めた。
 ワイヤーフレームも1万本から3千本位に途中のデータを間引くプログラムを書いた。すかすかになってて多少見栄えは悪くなるが、アニメーションのコマ数を稼ぐことにした。UNIX側のプログラムとファンクションネットワークを組み合わせて、メモリをけちってけちって、何とか10数秒位のアニメーションが再生でできるようになった。