English
HARDWARE ManualVDP1ユーザーズマニュアル
戻る進む
VDP1ユーザーズマニュアル/第5章 テーブル

■5.3 グーローシェーディングテーブル

 パーツにグーローシェーディング処理をするとき、4点のRGBデータを指定するテーブルです。4点のデータはそれぞれ16bitなので1テーブルは8Byte必要です。8HByteのバウンダリアドレスから始まる位置に配置します。 ただし00000Hから0001FHには書き込まないでください。
 VRAMは7FFFFH番地までです。80000H番地を越えてグーローシェーディングテーブルを定義しないでください。
 テーブルは頂点(A)、(B)、(C)、(D)の順にRGBデータを定義します。ラインの場合は頂点A、Bのみが有効となり、ライン始点、終点に対応します。スプライトの場合は頂点(A)、(B)、(C)、(D)が、左上、右上、右下、左下に対応します。
 このテーブルは、グーローシェーディング処理が指定されたときコマンドテーブルから参照されます。

表5.2 グーロシェーディングテーブル
テーブルアドレス
対応する頂点
スプライト、ポリゴン、ポリライン
ライン
テーブル先頭アドレス
頂点(A)
ライン始点
テーブル先頭アドレス+2
頂点(B)
ライン終点
テーブル先頭アドレス+4
頂点(C)
無視
テーブル先頭アドレス+6
頂点(D)
無視

図5.4 RGBコードフォーマット
MSB                           LSB
┌─┬─────────┬─────────┬─────────┐
│ │    B    │    G    │    R    │
│X├─┬─┬─┬─┬─┼─┬─┬─┬─┬─┼─┬─┬─┬─┬─┤
│ │4│3│2│1│0│4│3│2│1│0│4│3│2│1│0│
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

 ●グーローシェーディング
 RGBコードで描かれたパーツに対して、グーローシェーディング処理ができます。グーローシェーディングはRGBコードのパーツに対して、変化させるRGBそれぞれの輝度の変化量をグーローシェーディングテーブルで指定します。 RGBコードのカラーコードにのみ有効です。
 カラーバンクコードのカラーコードに対してグーローシェーディングを指定した場合のカラーは保証されません。

 ●グーローシェーディングの指定
 グーローシェーディング処理をするときは色演算ビットでグーローシェーディングを指定します。色演算ビットはコマンドテーブルの先頭アドレス

+04Hの描画モードワードのビット2〜0にあります。グーローシェーディングを指定したときはグーローシェーディングのアドレスを指定します。
 グーローシェーディングテーブルのアドレスはコマンドテーブルの先頭アドレス+1CHに、グーローシェーディングテーブル先頭アドレス/8Hを設定します。

 ●グーローシェーディングの処理
 グーローシェーディングテーブルにはパーツの4点(ラインは2点)のRGBの変化量のデータを指定します。4点の間をRGBごとに補間したデータを、パーツのもとのカラーに加えます。
 RGBの各値は00H〜1FHの値を取るので、補完したRGBデータから10Hを引いたものを、パーツのもとのカラーに加えます。例えば、RGBの値が10Hであれば元のカラーのままとし、00Hであれば−10Hし、1FHであれば+0FHします。 演算後の値が00Hより小さくなれば00Hとし、1FHより大きくなれば1FHとします。
 グーローシェーディングテーブルの設定値と補正値の関係を次に示します。

表5.3 グーローシェーディングテーブルの設定値と補正値の関係
テーブル設定値
元データに対する補正値
テーブル設定値
元データに対する補正値
	
00H
−10H
10H
0
01H
−0FH
11H
+01H
02H
−0EH
12H
+02H
03H
−0DH
13H
+03H
04H
−0CH
14H
+04H
05H
−0BH
15H
+05H
06H
−0AH
16H
+06H
07H
−09H
17H
+07H
08H
−08H
18H
+08H
09H
−07H
19H
+09H
0AH
−06H
1AH
+0AH
0BH
−05H
1BH
+0BH
0CH
−04H
1CH
+0CH
0DH
−03H
1DH
+0DH
0EH
−02H
1EH
+0EH
0FH
−01H
1FH
+0FH

 本当のグーローシェーディングは輝度だけを変化させるのですが、この方式ではRGBをそれぞれ変化させるため、場合により色相も変わります。
 色相を変えないようにするには、グーローシェーディングテーブルに定義する1点分のRGB別の各位を同じ値に定義します。これにより、白色のグーローがかかります。
 ライン、ポリライン、ポリゴンのときはノンテクスチャカラーに対して、スプライトのときはキャラクタパターンデータまたはカラールックアップテーブルで参照されたカラーに対して処理されます。


戻る進む
HARDWARE ManualVDP1ユーザーズマニュアル
Copyright SEGA ENTERPRISES, LTD., 1997