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

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

プラス・ワン CGであおり(199X年)

 あおりカメラと同様に、CGでも視軸をずらす、つまり透視変換行列を平行移動してやれば良いのではと考えた。実際に透視変換行列をStarbaseのライブラリを使って取り出して、平行移動してみたら、あっさりとあおり写真ができてしまった。

 いやちょっと、まてよ。普通CGの画面は、視軸の中心が画面の中心である。あおり写真でやったみたいに下側に平行移動すると、上側部分のCGが画面の中央に表示される。同じ方法で、別の外側の位置のCGも作れるのではないか?そしてその画像をつなぎ合わせれば巨大なCG画像にすることができるのでは?と思った。

 早速プログラムを書いて、試してみると、ぴったりつながった。つなぎ目は見えなかった。上下左右、斜め右上、左上、右下、左下、合計9枚の画像を計算して、プログラムで一枚につなぎ合わせると、巨大なCG画像になった。

 いやいやいや、巨大なCG画像ができるということは、これを1枚に画素平均を取って、縮小してやれば、アンチエリアスをかけることができる筈。

 次に、元の画像と複数枚の画面の外側の画像と、画角が同じになるように調整して(つまり1枚当たりの画角は枚数分の1の大きさになる)、透視変換行列を平行移動して複数の画像をつなぎ合わせると、元々の画像と同じ絵で、拡大した画面を作り出すことに成功した。

 巨大なCG画像を画素平均して元々の大きさの画像に戻すと、見事にアンチエリアシングのかかった画面になった!