gDPSetTile.htm
8.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<HTML>
<HEAD>
<TITLE>HTML 文書</TITLE>
<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0j">
</HEAD>
<BODY>
<P>
<A NAME="_Toc366998343"></A><B><FONT FACE="Arial">gDPSetTile(3P)
<BR>
</FONT></B>
<P>
<B>関数名
<BR>
</FONT></B>
<P>
gDPSetTile, gsDPSetTile, gDPSetTileSize, gsDPSetTileSize
<P>
→ 8つのタイル記述子の1つにパラメータを設定します。
<BR>
</FONT>
<P>
<B>構文 <BR>
</B>
<P>
#include "gbi.h"
<P>
gDPSetTile(Gfx *gdl,
<P>
unsigned int fmt,
<P>
unsigned int siz,
<P>
unsigned int line,
<P>
unsigned int tmem,
<P>
unsigned int tile,
<P>
unsigned int palette,
<P>
unsigned int cmt,
<P>
unsigned int maskt,
<P>
unsigned int shiftt,
<P>
unsigned int cms,
<P>
unsigned int masks,
<P>
unsigned int shifts )
<P>
gDPSetTileSize( Gfx *gdl,
<P>
unsigned int tile,
<P>
unsigned int uls, ult,
<P>
unsigned int lrs, lrt )<BR>
<P>
<B>パラメータ <BR>
</B>
<P>
<B>*gdl</B>
グラフィックディスプレイリストポインタ。</FONT>
<P>
<B>fmt</B>
テクスチャイメージフォーマット。G_IM_FMT_RGBA,
G_IM_FMT_YUV, G_IM_FMT_CI,</FONT>
<P>
G_IM_FMT_IA, G_IM_FMT_I
<P>
<B>siz</B>
テクセルサイズ。G_IM_SIZ_4b, G_IM_SIZ_8b,
G_IM_SIZ_16b, G_IM_SIZ_32b
<P>
<B>line</B>
tmem word(64bit)でのテクスチャタイルの1列(s軸)のサイズ。
<P>
<B>tmem</B>
tmem word(64bit)でのテクスチャタイルの原点のアドレス(0-511)。
<P>
<B>tile</B>
そのパラメータが設定されているタイル記述子のインデックス番号(0-7)。
<P>
<B>palette</B>
</FONT>
<P>
4bitインデックステクスチャのための、どのテクスチャルックアップテーブル
パレット(0-15)を使用するの指定。tmemの上位半分の8bitインデックスは、4
つのMSBのパレット番号と4つの
LSBのカラーインデックスで構成されます。
<P>
<B>cmt, cms</B>
</FONT>
<P>
s及びt軸に対するクランプ、ラップ、ミラーフラグ。G_TX_NOMIRROR,
G_TX_WRAP, G_TX_MIRROR, G_TX_CLAMP
<P>
<B>maskt, masks</B>
</FONT>
<P>
s,t軸に対するマスク。G_TX_NOMASKあるいはラップする2のべき乗境界
を指定する数値。</FONT>
<P>
<B>shiftt, shifts</B>
</FONT>
<P>
s,t座標に対するシフト値。左右のシフト両方が処理されます。ミップマッ
プレベルのスケール及びディテールテクスチャタイルのスケールを設定するた
めに使用される。</FONT>
<P>
<B>uls, ult</B>
</FONT>
<P>
テクスチャタイルの左上のs,t座標。タイルのオフセットに使用されます。
クランプモードでより低い境界としても使用されます。</FONT>
<P>
<B>lrs, lrt</B>
</FONT>
<P>
テクスチャタイルの右下のs,t座標。クランプモードでのみ、クランプの上
側境界に使用されます。<BR>
</FONT>
<P>
<B>説明 <BR>
</B>
<P>
これらのコマンドは、ミップマッピング、ディテール、シャープのような、マルチタイルテクスチャモードに使用されます。テクスチャタイル(tmem中の長方形テクスチャ)を記述するtmem中にそれぞれがポインタとして考えられる8つのタイル記述子があります。複数のタイル記述子が、tmem内で同じテクスチャタイルを指定する可能性があります。それぞれのタイル記述子は、それが指しているテクスチャメモリの領域を記述する一連のパラメータを持っています。
<BR>
</FONT>
<P>
マルチタイルモードをセットアップするためには、nテクスチャタイルを<a href="../gdp/gDPLoadTexture.htm">gDPLoadTexture</a>コマンドの1つを使用してロードします。それぞれのテクスチャタイルは、そのタイル用のパラメータによってフォローされるtmem内の適切な位置を指すために、タイル記述子を設定することによって記述されます。例えば、テクスチャタイルのミップマップピラミッドは、<a href="../gdp/gDPLoadTextureBlock.htm">gDPLoadTextureBlock(3P)</a>、あるいはいくつかの<a href="../gdp/gDPLoadTextureTiles.htm">gDPLoadTextureTiles(3P)</a>を使用してロードされ、最高レベル(最も大きいマップ)を指す最小の記述子ナンバと、最低レベルを指す最大の記述子ナンバと共にタイル記述子の連続的なシーケンスによって記述されます。これらのタイルへの指標はcycleType(<a href="../gdp/gDPSetCycleType.htm">gDPSetCycleType(3P)</a>参照),primTileとmaxLevel(<a href="../gsp/gSPTexture.htm">gSPTexture(3P)</a>参照),ディテールモード(<a href="../gdp/gDPSetTextureDetail.htm">gDPSetTextureDetail(3P)</a>参照),そしてLODをオンにするかしないか(<a href="../gdp/gDPSetTextureLOD.htm">gDPSetTextureLOD(3P)</a>参照)によってコントロールされます。
<BR>
</FONT>
<P>
ミップマッピングを行うためには、2サイクルモードにおいてRDPでLODをオンにする必要があります。テクスチャタイル中にインデックスする作業は、ピクセル毎の基準でRDPによって算出されたテクセル/ピクセル比に基づいています。ミップマップレベルへのフィルタリングは、<a href="../gdp/gDPSetTextureFilter.htm">gDPSetTextureFilter(3P)</a>によって制御されます。ミップマップの2つのレベル間の補間は、適切なモードにカラーコンバイナを設定することによって制御されます。(<a href="../gdp/gDPSetCombineMode.htm">gDPSetCombineMode(3P)</a>参照)。ディテールテクスチャモードのために、primTileは、拡大率にしたがって追加のディテールを供給するために使用されるテクスチャタイルを指定します。ディテールテクスチャがベーステクスチャでブレンドされる範囲は、<a href="../gdp/gDPSetPrimColor.htm">gDPSetPrimColor(3P)</a>で設定されたLODクランプパラメーターによって制御されます(<a href="../gdp/gDPSetColor.htm">gDPSetColor(3P)</a>を参照)。
<BR>
</FONT>
<P>
テクスチャの内容によって、有効に圧縮し得るためのテクスチャイメージフォーマットが数多くあります。4/8/16/32bitテクセルサイズがサポートされています。インデックステクスチャでは2/4コンポーネントテクスチャがサポートされています。Iはインテンシティテクスチャです。IAはインテンシティアルファテクスチャです。RGBAはトゥルーカラーテクスチャです。CIは、カラーインデックスモードテクスチャです。
<BR>
</FONT>
<P>
テクスチャタイルのそれぞれの行は、連続的なtmem
word(64bit)を占めます。行の終わりは、tmem
word境界まで引き伸ばされます。
<BR>
</FONT>
<P>
cms, cmtは、s,
t軸に対してクランプ、ミラー、ラップフラグを設定します。これらのフラグは、要求されるラップ特性を指定するためにそれぞれbitORされます。ミラーモードは、左右対称なテクスチャに有効です。テクスチャ容量を減らすことができるのが、左右対称の利点です。クランプモードは、テクスチャマップの外にサンプリングする時、エッジテクセルカラーを繰り返します。クランピングはuls,
ult, lrs, lrt境界で行います。ラップテクスチャは、ラップするために設定される適切なマスクを必要とします。masks,
masktでの番号nは、s,
tテクスチャ座標の(n)LSBがテクスチャをサンプリングするために使用されることを指します。例えば、その境界について32x32(2^5x2^5)テクスチャをラップするためには、5のマスク値を使用します。ゼロのマスク値は、クランピングを強制します。
<BR>
</FONT>
<P>
shifts, shifttパラメータは、与えられたテクスチャ座標を左か右に適切な量でシフトするために使用されます。0-10は右シフトです。11-15は左シフトとして解釈し、11は(<<5)に、12は(<<4),...
,15は(<<1)に相当します。これらは、ミップマッピング、ディテール、シャープモードのセットアップに使用されます。例えば、6つのレベル(32x32,
16x16, 8x8, 4x4, 2x2, 1x1)のミップマップピラミッドと1つのディテールレベル(例えば、32x16)は、32x32を指すタイル記述子1と、16x16を指すタイル記述子2・・・としてtmem内にロードされたこれらのレベルを1つずつ持ちます。シフトパラメータは、タイル1に対しては0,タイル2に対しては1・・・となります。ディテールモードがオンの場合、タイル記述子0(primTile=0)は、s,
t軸に対して、15(-1)のシフトで32x16ディテールレベルを指定します。これは、1つのベーステクセルに2x2のディテールテクセルを拡大率にしたがってマッピングします。
<BR>
</FONT>
<P>
setTileSizeマクロは、テクスチャタイルの原点と範囲を定義するタイルパラメータを設定するために使用します。uls,
ultは、タイルの原点のs,
tテクスチャ座標を定義して、ポリゴンの面をまたがってテクスチャをシフトするのに役立ちます。それらは、クランピングするための下限境界の定義も行います。lrs,
lrtは、クランピングに使用され、上限境界を定義します。
<BR>
</FONT>
<P>
<B>参照 <BR>
</B>
<P>
<a href="../gdp/gDPLoadTexture.htm">gDPLoadTexture(3P)</a>, <a href="../gdp/gDPSetTextureLUT.htm">gDPSetTextureLUT(3P)</a>, <a href="../gsp/gSPTexture.htm">gSPTexture(3p)</a>,
<a href="../gdp/gDPSetTextureLOD.htm">gDPSetTextureLOD(3P)</a>, <a href="../gdp/gDPSetTextureFilter.htm">gDPSetTextureFilter(3P)</a>, <a href="../gdp/gDPSetTextureDetail.htm">gDPSetTextureDetail(3P)</a>,
<a href="../gdp/gDPSetTexturePersp.htm">gDPSetTexturePersp(3P)</a>, <a href="../gdp/gDPSync.htm">gDPSync(3P)</a><FONT SIZE=2 FACE="MS 明朝">
<BR>
<BR>
</FONT>
</BODY>
</HTML>