反論紹介
目次
プレステとの比較
比較すると、プレステなら4bitテクスチャで半分の容量と高速なアクセス。パレットは16bit(32767色)フルに使え、更に3光源とアンビエントによる複雑なグラデーションが何の工夫も制約も無しに最初から自由に使える。
— kozo (@yukizokin) November 11, 2013
サターンの8bitパレットを活用した光源計算は、グラデーションパターンを自由にデザイン出来、ちょっとしたピクセルシェーディングのようなものと言える。今風に言えば1Dテクスチャを乗算出来るみたいな。ハイライトだけのフォンシェーディングも可能。光源としては弱いけど特殊な質感が作れた。
— kozo (@yukizokin) November 11, 2013
プレステでも後期にはGTEプログラムが解放されたから、1DテクスチャIBLみたいなのは、やろうと思えば出来る。
— kozo (@yukizokin) November 11, 2013
サターンの16bitテクスチャはシェーディングが使えるけれども容量的にきびしい。そこで8bitテクスチャで色数を4bitに犠牲にしてようやく光源を一つを手に入れる。こんなに苦労しても、同じ条件でプレステなら半分の容量で三倍の光源が使えグラデーションも滑らかで速度も速くなる。
— kozo (@yukizokin) November 11, 2013
これらのツイートは、先に書いたテクスチャの話の追加解説。
プレステの3D演算を行う専用回路、ジオメトリエンジン(GTE)では、光源を最大4つ設定できました。
1つはアンビエント光。プレステの場合、光の方向を設定するとともに、その光が乱反射し、周囲全体を照らす状態を表現できます。光の明るさを変えたり、色を付けることも出来ました。
サターンではパレットで表現していた「光源とアンビエント光」が、この1つの光源で表現できてしまいます。
もう一つは、光の散乱までは表現できない、平行光源でした。RGB(赤青緑)の3つの光源を別々に設定でき、明るさを変えることもできます。同じ方向で重ねれば、白い光の表現にもなりました。
また、すべてを重ね合わせると白い光となります。
ピクセルシェーディング、1Dテクスチャ、IBL というのは、サターンの頃よりずっと後に使われるようになった、3D CG の技術です。
現代的にはパソコンの性能などが上がったのでリアルタイムに計算してゲームなどに使うことも可能ですが、サターンの頃には考えられない大変な処理です。
ただ、パレットを上手に使うことで、それに類似した処理が…できなくもなかった。(非常に微妙な言い回しですが)
つまり、サターンで3Dやろうと思ったら、すべてをソフトでやらないといけなかった代わりに、変なこともいっぱいできた。そのかわり、普通に使おうとするだけでも大変だった。
プレステはハードで面倒を見てくれたから変なことはできなかった。でも、ハードが面倒見てくれるから、普通のことが普通にできた。…と、そういう話です。
僕がいた会社では、ST-V ではあまりポリゴンゲームは作りませんでした。
当初は「ポリゴンが出る安いハード」と言われていたので作ったのですが、やがて「これはポリゴンを使わない方がよい」と気づいて、2Dのゲームを中心に作っていたように思います。
ST-V って業務用ですからね。ライバルはプレステではなく、MODEL2 など。
ポリゴンゲームで MODEL2 に勝てるわけがない。じゃぁ、最初から無駄な戦いはしないで2Dのいいゲームを考えようよ…という流れ。当然です。
アクセントのようにポリゴンを使ったり、変形ポリゴンで変わった感じを出す程度のことはしましたが、その程度。
なので、ちゃんと3Dハードとして使った体験談は、僕にとっても新鮮な話です。
で、思うことは…やっぱサターンは2Dのハードなんだな、ということ。
余談になりますが、グーローシェーディングの話。
プレステでは、頂点部分での「周囲の面の平均の向き」を与え、計算を行う「本当のグーローシェーディング」でした。
面単位で処理を行うから「周囲の面」を考慮した向きは、あらかじめ計算しておいて、データとして与える必要がありました。
でも、それ以降の計算はハードウェアで行います。
それに対し、サターンの VDP1 が行う「グーローシェーディング」は、ポリゴンの4隅の明るさを指定して、その間を補完するだけ。必要なのは「向き」ではなくて、明るさです。
これはデータとして持っておくというわけにはいかず、毎回計算が必要です。でも、サターンの演算能力は、それができるほど高くなかった。
そこで、SGLでは、「となりの頂点は、1段階明るさが変わっているにきまっている」と決め打ちして、処理を簡略化していました。
頂点部分での平均角度なんて関係なし。明るさを8段階に分けて考えて、頂点ごとに常に1段階変わるとみなします。
まぁ、これでも見た目はそれほどおかしくならないのですけど、本当に「グーローシェーディングなのか」と問われると、類似しているけど違う、と言わないといけないようなものでした。
何よりも、グーローの目的である「隣り合った面の色を滑らかに繋げる」と言うのが、面の角度によっては実現できないのです。グーローなのにカクカクしてる、という、なんだかわけのわからないことになります。
あまり使われなかったのは、機能として貧弱だからというよりは、この「遅さ」が嫌われたせいもあるかと思います。
そんなことは無いと思う>『先に書いているように、ジオメトリ演算以外の性能…ポリゴン描画などは、今見ても互角の勝負だと思います。』http://t.co/CNAvw2Kd2v
— kozo (@yukizokin) November 11, 2013
実は、これが一番最初のツイート。
1年前に書いた記事で「プレステとサターンは今見ても互角」と書いたことに対し、異論を唱えた上で理由を明示した、というのが一連のツイートです。
「ポリゴン描画は今見ても互角」は撤回します。
記事を書いた際には、テクスチャを変形させて描画する機能の速度比較でしか考えていませんでした。
光源の表現など、表現力全体を含めて考えた場合には、プレステの方がずっと上です。
ただ、結論としては、すでに書いている「サターンは3D表現でプレステにかなわない」と、同じです。
転送速度などのスぺック上は互角だけど、メモリの使いやすさやや3D空間内での光源などの表現など、数値で示しにくい点では、サターンはプレステの足元にも及ばない。