1年ちょっと前から書き続けていた…というか、忙しくて1年近く放置していただけだけど、サターンの話の当初予定分を公開し終わった。
明日がサターンの発売20周年だからね。
サターンの話がこれで終わりか、っていうと、他にも語りたいことは一杯あります。
ST-V のゲーム作ってたから、それぞれにまつわる思い出なんかもある。
ただ、そちらは個人の思い出でもあり、サターンの技術話とは別の物。
「ゲーム作成の話を出来るだけ記録しておく」という当初の考えでいえば、いつか書きたいと思っています。
でも、まだその時期ではない。
今回、kozo さんのツイートを転載させてもらったうえで解説を加えたのですが、興味深い話にもかかわらず入れられなかったものがあります。
kozo さんは当時SGLを使っていただけで内部にはそれほど詳しくなかったそうです。
そして、他の人のプログラムを「見せてもらった」だけの部分もある。
そんな中で、話としては非常に興味深いのだけど、技術的な裏付けがわからずに取り上げられなかったものがあるのです。
それが、「パレットテクスチャマッピングしたポリゴンモデルで、何らかの工夫でグーローシェーディングのようなことをしていた」という話。
詳細は本記事を読んでもらうことにして、概要だけを説明すると、サターンには「テクスチャ」の描き方が2つあります。
1つは、RGB の値を直接指定する、RGB テクスチャ。
もう一つは、いくつかの選択した色だけで書かれる、パレットテクスチャです。
パレットテクスチャの方が、色情報を限定できるので、ずっと省メモリです。
メモリへのアクセスが少ないので、描画も高速。
でも、描画するプロセッサは色を知ることができないため色演算ができません。
グーローシェーディングは色演算の一種なので、パレットテクスチャではグーローシェーディングはできないのです。
サターンの色は、RGB 各5bit でした。
そして、グーローシェーディングも、RGB 各 5bit で「色の増減差分」を指定します。
増減差分には符号があるので、5bit の色情報を完全にカバーできません。
白を灰色にしたり、黒を灰色にするのが精いっぱい。黒を白に、はできません。
でも、kozo さんはパレットテクスチャで工夫した「グーローもどき」で、黒の物体に白いハイライトが入っているのを見たのだそうです。
グーローもどきはパレットテクスチャなので、RGB テクスチャよりもずっと省メモリで高速なのもよかった、とのこと。
光源計算して uv値を変えていたような覚えがある…といいます。
uv というのは、テクスチャとして使う画像の座標のこと。大きな画像の一部をテクスチャとして切り出す、という方法でテクスチャを貼るときに使います。プレステはこの方法。
でも、サターンには uv 値はありません。テクスチャを「貼る」のではなく、四角いスプライトを「変形」させて面を作るのです。
…でも、しばらく考えていて思い出しました。
サターンの技術の詳細には書いていませんが、uv 値を変化させるようなことを出来る方法がありました。
サターンのテクスチャは、横方向の「切り出し位置」は決め打ちになってしまいますが、縦方向だけならドット単位で変えられたのです。
仮に、縦に長いテクスチャがあったとして、その一部を切り出して「面」に張り付けることができます。
切り出し位置を少しづつ変えれば、面に書かれた画像がスクロールしているように見えます。
隣り合ったポリゴンで連続した位置を切り出せば、2連続のポリゴンでスクロールしているように見えます。
筒状に並んだポリゴンで、陰影を表したグラデーションの画像を、光源方向に合わせるように「回転」させれば、グーローもどきの表現ができるかもしれません。
kozo さんに聞いてみたところ、技術的に可能なら興味深いけど、それが自分が見たデモと同じような効果が出せるのかどうかはわからない、とのこと。
まぁ、それはそうですね。可能性がある、ということと、実際にそれが使われていたということは別です。
他にも、考えるだけならいくつかの「可能性」を考えられたのですが、結局はわからないので本文に入れるのをやめました。
しかし、こんな方法当時は試そうとも思わなかったので、もし本当にやっていた人が居たならすごいな、ということで書き留めておきます。
ちなみに、ですが、僕は ST-V で作られた2Dゲームで、この「スプライト内の画像が縦に動く」という妙な効果をゲームに使ったことがあります。
ちゃんと市販もされたよー。別に有名なタイトルではないけど。
同じテーマの日記(最近の一覧)
関連ページ
別年同日の日記
申し訳ありませんが、現在意見投稿をできない状態にしています。 【あきよし】 脱字指摘ありがとうございます。修正しました。 (2014-12-27 18:58:51)【獣】 サターンには「テクスチャ」の描き方がつあります ←数字が抜けてます^^ (2014-12-12 17:30:40) |