gSPGeometryMode.htm
4.49 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
<HTML>
<HEAD>
<TITLE>HTML 文書</TITLE>
<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0j">
</HEAD>
<BODY>
<P>
<B><FONT FACE="Arial">gSPGeometryMode(3P)</FONT><FONT FACE="MS Pゴシック"> <B>
<BR>
</B></FONT></B>
<P>
<B>関数名<B> <BR>
</B></B>
<P>
gSPSetGeometryMode, gsSPSetGeometryMode, gSPClearGeometryMode,
gsSPClearGeometryMode
<P>
→ ジオメトリパイプラインモードのセット、クリア。
<BR>
<P>
<B>構文<BR>
</B>
<P>
#include "gbi.h"
<P>
gSPSetGeometryMode(Gfx *gdl, unsigned int mode)
<P>
gsSPSetGeometryMode(unsigned int mode)
<P>
gSPClearGeometryMode(Gfx *gdl, unsigned int mode)
<P>
gsSPClearGeometryMode(unsigned int mode)<BR>
<P>
<B>パラメータ <BR>
</B>
<P>
<B>*gdl</B> グラフィックディスプレイリストポインタ。
<P>
<B>mode</B> ジオメトリパイプラインモード。モードはそれぞれbitORされセットあるいは
クリアされます。
<P>
<B>G_SHADE</B>
<P>
RSPはトライアングルの頂点カラーを計算します。トライアングルカ
ラーの指定でプリミティブカラーを使用しているときは,このモード
はイネーブルにしないでください。
<P>
<B>G_LIGHTING</B>
<P>
ライティング計算をイネーブルにします。
<P>
<B>G_SHADING_SMOOTH</B>
<P>
グローシェーディングをイネーブルにします。これがイネーブルになってい
ない場合は、トライアングルカラーはフラットシェーディングになり
ます。その場合、トライアングルのカラーはその中の1頂点カラーで決定されま
す。<a href="../gsp/gSP1Triangle.htm">gSP1Triangle(3P)</a>を参照してください。G_SHADEも一緒にセットしなければなりません。
<P>
<B>G_ZBUFFER</B>
<P>
Zバッファの計算をイネーブルにします。(同時にフレームバッファのZバッファパラメータ も設定することを必要があることに注意してください。)
<P>
<B>G_TEXTURE_GEN</B>
<P>
テクスチャs, t座標の自動生成をイネーブルにします。。法線ベクトルに基づいた球形マッピ
ングが使用されます。
<P>
<B>G_TEXTURE_GEN_LINEAR</B>
<P>
テクスチャs, t座標の自動生成をイネーブルにします。
<P>
<B>G_CULL_FRONT</B>
<P>
フロントフェイスカリングをイネーブルにします。
<P>
<B>G_CULL_BACK</B>
<P>
バックフェイスカリングをイネーブルにします。
<P>
<B>G_CULL_BOTH</B>
<P>
フロント及びバックフェイスカリングをイネーブルにします。
<P>
<B>G_FOG</B>
<P>
頂点アルファ座標のフォグパラメータの生成をイネーブルにします。<BR>
<P>
<B>説明</B> <BR>
<P>
<b>gSPSetGeometryMode</b>コマンドは、ジオメトリパイプラインモードをセットするために使用されます。
<BR>
<P>
<b>gSPClearGeometryMode</b>は、これらのモードをクリアします。 <BR>
<P>
<B>注意<BR>
</B>
<P>
各々のコマンドが用意されているRSP'レンダリングステート'の他の要素があります。その場合は、ステートの変更が単一ビットでできないような複雑なものであったり、より最適化するために別のコマンドでRSPジオメトリエンジンを設定するためです。
<BR>
<P>
<B>参照 <BR>
</B>
<P>
<a href="../gsp/gSPFogPosition.htm">gSPFogPosition(3P)</a>、 <a href="../gdp/gDPSetPrimColor.htm">gDPSetPrimColor(3P)<htm>、 <a href="../gsp/gSP1Triangle.htm">gSP1Triangle(3P)</a>
<BR>
<hr size=1>
<img src="../Images/f3dex.gif">
<p>
<blink><b>F3DEXマイクロコード群で追加、変更された機能</b></blink>
<p>
<pre><font size=4>
gSPSetGeometryMode(Gfx *gdl, unsigned int mode)
gsSPSetGeometryMode( unsigned int mode)
</font></pre>
<p>
<blockquote>
modeとしてG_CLIPPINGが追加されました。このフラグは、<a href="../ucode/gspF3DEX.htm">F3DLX</a>及び<a href="../ucode/gspF3DEX.htm">F3DLX.NoN</a>でのみ有効です。その他のマイクロコードではこのフラグは無視されます。
<p>
これがクリアされていると、クリッピング処理を行いません。これにより、速度の向上が期待できます。
<p>
具体的には、それ以降の<a href="../gsp/gSPVertex.htm">gSPVertex(3P)</a>においてクリップ判定に必要なデータを計算しなくなります。また、<a href="../gsp/gSP1Triangle.htm">gSP1Triangle(3P)</a>、<a href="../gsp/gSP2Triangles.htm">gSP2Triangles(3P)</a>、<a href="../gsp/gSP1Quadrangle.htm">gSP1Quadrangle(3P)</a>等の命令においては、クリッピング処理を行わなくなります。
<p>
よって、以下のディスプレイリストでは、クリップに必要なデータを取得できないので、<a href="../gsp/gSP1Triangle.htm">gsSP1Triangle</a>の動作は保証できません。ご注意ください。
<p>
<pre><font size=4>
gsSPClearGeometryMode(G_CLIPPING); //クリッピングOFF
gsSPVertex(v, 3, 0) //3頂点ロード
gsSPSetGeometryMode(G_CLIPPING); //クリッピングON
gsSP1Triangle(0, 1, 2, 0); //TRI描画
</font></pre>
<p>
同様にクリッピングOFF時にロードした頂点を<a href="../gsp/gSPCullDisplayList.htm">gSPCullDisplayList(3P)</a>で指定しても、正常に動作しませんので、ご注意ください。
<p>
G_CLIPPINGは初期状態でONになっています。
</blockquote>
</BODY>
</HTML>