3D優遇の時代

今はいい時代です。
私が3DCGを学んでいた(というか、自主的にやっていたというか)大学時代は、行列計算するのにも大変な苦労がいりました。
あ、こう書くと語弊があるな。書くだけなら簡単なの。float hoge[4][4];ってだけなので。ただ、これをまじめにこなしていると非常に処理速度が遅くなるのでした。なので、何とかしてもうちょっと楽な方法がないかとマシン語レベルで模索していました。
HP-PARISC(HP9000)の「マルチメディア命令」とやらを使うと速くなるらしいぞ、とか、なぜかdoubleの方がfloatより良いらしいぞ、とか、なんというかオカルトみたいな話がたくさんありましたが、いろいろ試したあげくに「でも、速いCPUにはかなわないよね」という夢のない結論にたどり着いたり(^^;)。


今時、行列演算なんかプログラマブルなハードウェアでばびゅーんとやっつけちゃいます。固定機能だけでも十分速いので、下手なことしなければ計算なんかボトルネックになりません。ピクセルフィルだって、今時ソフトウェアで行うことなんかありませんので、よっぽど変なハードウェアじゃなければバス速度で律速です。テクスチャだってキャッシュに乗ってるので圧縮されてると転送速度を無視できるし。
あの頃最先端だったレイトレーシングアルゴリズムや、テクスチャに対する計算も今となっては時代遅れです。レイトレーシングとは行かないまでもキャスト後の例のピクセルごとの演算までソフトウェアで制御できるんだもんなー。
でも、今、あの頃の計算が役に立たないとは思っていません。アフィン空間は相変わらず計算の中心に位置していますし、ヴェクタに対する順序対という考え方は古びていません。線形代数学を使って幾何を計算するという発想そのものが変わっていない以上、当然といえば当然なのですが。
ふだん、どちらかというと制限環境での実装が多い自分ではあるのですが、その制限環境でむかーし昔の技術が役に立つことがやっぱりあります。Zバッファアルゴリズムにおける半透過の表現だったり、スキニングにおける厚み付けの話だったり。
3Dはいいですね。いつの時代でも優遇されてて。大学の頃、逆運動学をやろうとして結局ものにできなかったのが思い出されます。またやってみようかなー。昔よりはうまくいくかも。


落ちはありません。