Chapter4. 拡張関数


4.6 3Dグラフィックス関数

関数名
G3@FRMSETBLEND
機能
アルファーブレンドを設定する。
書式
G3@FRMSETBLEND(Frm, src, dest)
《パラメーター》
Frmint。フレーム(G3@FRMMAKE の戻り値)を指定する。
src int。アルファーブレンド時のソース値(初期値:−1、トップフレームは1)
 −1:上位フレームを継承する
 0:D3DBLEND_ZERO。ブレンディング係数は (0, 0, 0, 0)。
 1:D3DBLEND_ONE。ブレンディング係数は (1, 1, 1, 1)
 2:D3DBLEND_SRCCOLOR。ブレンディング係数は (Rs, Gs, Bs, As)
 3:D3DBLEND_INVSRCCOLOR。ブレンディング係数は (1-Rs, 1-Gs, 1-Bs, 1-As)
 4:D3DBLEND_SRCALPHA。ブレンディング係数は (As, As, As, As)
 5:D3DBLEND_INVSRCALPHA。ブレンディング計数は (1-As, 1-As, 1-As, 1-As)
 6:D3DBLEND_DESTALPHA。ブレンディング係数は (Ad, Ad, Ad, Ad)
 7:D3DBLEND_INVDESTALPHA。ブレンディング計数は (1-Ad, 1-Ad, 1-Ad, 1-Ad)
 8:D3DBLEND_DESTCOLOR。ブレンディング係数は (Rd, Gd, Bd, Ad)
 9:D3DBLEND_INVDESTCOLOR。ブレンディング計数は (1-Rd, 1-Gd, 1-Bd, 1-Ad)
10:D3DBLEND_SRCALPHASAT。ブレンディング係数は、(f, f, f, 1)、f = min(As, 1-Ad)
11:D3DBLEND_BOTHSRCALPHA。

使わない。転送元および転送先のブレンディング係数に D3DBLEND_SRCALPHAD3DBLEND_INVSRCALPHA をそれぞれ別の呼び出しで設定することにより、同じ効果を得ることができる。

12:D3DBLEND_BOTHINVSRCALPHA。

転送元のブレンディング係数は (1-As, 1-As, 1-As, 1-As) で、転送先のブレンディング係数は (As, As, As, As) である。転送先のブレンディングの選択は上書きされる。このブレンディング モードは、D3DRS_SRCBLEND レンダリング ステートに対してのみサポートされる。

13:D3DBLEND_BLENDFACTOR。フレーム バッファ ブレンダが使う定数カラー ブレンディング係数
14:D3DBLEND_INVBLENDFACTOR。フレーム バッファ ブレンダが使う定数カラー ブレンディング係数の補数
dest int。アルファーブレンド時のデスティネーション値(初期値:−1、トップフレームは0)
指定値はsrcと同じ
解説
フレームの描画で描画済のフレームとのアルファーブレンド情報を設定する。src=1、dest=0を指定するとアルファーブレンドを行わない。−1を指定するとG3@ADD関数で関連付けた上位フレームの設定を引き継ぐ。トップフレームにはー1を指定できない。透明にするにはG3@FRMSETBLENDでsrc=13、dest=14と、G3@FRMSETBLENDALPHAを設定する。最終的な透明度は「頂点のアルファ値×本関数のアルファ値」となる。
用例
描画するフレームと描画済のフレームの色を中和させて描画する。
FP = G3@FRMLOAD("sample.x")
G3@FRMSETBLEND( FP , 1 , 1 )