gSPBranchLessZ.htm 2.66 KB
<HTML>

<BODY>

<img src="../Images/f3dex.gif">
<p>
<blink><b>F3DEXマイクロコード群で追加、変更された機能</b></blink>
<p>
<B><FONT FACE="Arial">gSPBranchLessZ(3P) <BR>
</FONT></B>
<P>
<B>関数名<BR>
</B>
<P>
gSPBranchLessZ, gsSPBranchLessZ
<P>
→モデルのLOD処理<BR>
<P>
<b>構文</b>
<p>
<pre><font size=4>
gSPBranchLessZ(Gfx *gdl, Gfx *branchdl, unsigned int vtx, 
		float zval, float near, float far, int flag)
gsSPBranchLessZ(         Gfx *branchdl, unsigned int vtx, 
		float zval, float near, float far, int flag)
</font></pre>
<p>
<b>パラメータ</b>
<p>
<blockquote>
<b>*gdl</b>
<blockquote>
 グラフィクスディスプレイリストポインタ
</blockquote>
<b>*branchdl</b>
<blockquote>
 ブランチするディスプレイリストへのポインタ
</blockquote>
<b>zval</b>
<blockquote>
 Z値
</blockquote>
<b>near</b>
<blockquote>
 nearプレーンの位置。(<a href="../gu/guPerspective.htm">guPerspective</a>または<a href="../gu/guOrtho.htm">guOrtho</a>で指定した値。)
</blockquote>
<b>far</b>
<blockquote>
 farプレーンの位置。(<a href="../gu/guPerspective.htm">guPerspective</a>または<a href="../gu/guOrtho.htm">guOrtho</a>で指定した値。)
</blockquote>
<b>flag</b>
<blockquote>
 透視射影の時はG_BZ_PERSPを、正射影の時はG_BZ_ORTHOを指定します。
</blockquote>
</blockquote>
<p>
<b>説明</b>
<p>
<blockquote>
 vtxで指定した頂点の奥行きがzval以下なら、branchdlで指し示されるディスプレイリストへBranchDisplayListを行います。zvalを越えるなら何もしません。これによってモデルのLOD処理が簡単に行えます。以下は3段階のLODを持つモデルの例です。
<p>
<pre><font size=4>
	Gfx model_near[] = {		// 距離   32 以上  200 以下のモデル
		.....
		gsSPEndDisplayList(),
	};

	Gfx model_mid[] = {		// 距離  201 以上  800 以下のモデル
		.....
		gsSPEndDisplayList(),
	};

	Gfx model_far[] = {		// 距離  801 以上 1600 以下のモデル
		.....
		gsSPEndDisplayList(),
	};

	Gfx model[] = {
		gsSPVertex(testvtx, 1, 0),
		gsSPBranchLessZ(model_near, 0,  200, 32, 2000, G_BZ_PERSP),
		gsSPBranchLessZ(model_mid,  0,  800, 32, 2000, G_BZ_PERSP),
		gsSPBranchLessZ(model_far,  0, 1600, 32, 2000, G_BZ_PERSP),
		gsSPEndDisplayList(),	// 距離 1601 以上なら描画せず
	};

</font></pre>
<p>
 このコマンドはビューポートのZ方向のパラメータvp.vscale[2]とvp.vtrans[2]の値が共にG_MAXZ/2であることを想定しています。このとき奥行き値は0以上G_MAXZ以下となります。通常はアプリケーション側でこの奥行き値の変更をする必要はありません。ただし、どうしてもこの値を変更したい場合は、代わりに<a href="../gsp/gSPBranchLessZrg.htm">gSPBranchLessZrg</a>をご使用ください。
<p>
 このGBIは<a href="../ucode/gspF3DEX.htm">F3DEXマイクロコード群</a>の全てで共通に使用できます。
</blockquote>
</BODY>

</HTML>