Chapter4. 拡張関数


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

関数名
G3@FRMSETFOGMODE
機能
フォグの効果を設定する
書式
G3@FRMSETFOGMODE( Frm, mode )
《パラメーター》
Frm int。フレーム(G3@FRMMAKE の戻り値)を指定する
modeint。フォグモード(初期値:−1、トップフレームは0)
−1:上位フレームを継承する
0:フォグ効果なし
1:ピクセルフォグ(指数フォグ)
2:ピクセルフォグ(指数2乗フォグ)
3:ピクセルフォグ(線形フォグ)
4:頂点フォグ(指数フォグ)
5:頂点フォグ(指数2乗フォグ)
6:頂点フォグ(線形フォグ)
解説
指定のフレームにフォグ効果を与えます。-1を指定するとG3@ADD関数で関連付けた上位フレームの設定を引き継ぐ。トップフレームにはー1を指定できない。
頂点フォグはポリゴンの頂点単位にフォグ色を計算し、ピクセルフォグは描画するドット毎にフォグ色を計算します。ポリゴンのサイズが大きい場合、フォグ色の計算が荒くなるので不自然な描画となる場合があります。ピクセルフォグの方が綺麗に描画されますが、古いグラフィックチップではサポートしていない可能性があります。(頂点フォグはほとんどの場合サポートしています)
また、ピクセルフォグは頂点フォグよりも描画速度が遅くなります。
ピクセルフォグを指定した時にグラフィックチップがピクセルフォグをサポートしない場合、自動で頂点フォグで描画を行います。
フォグ色の計算式には「線形フォグ」「指数フォグ」「指数2乗フォグ」の3種類があります。「線形フォグ」が最も計算速度が速く、続いて「指数フォグ」「指数2乗フォグ」の順番で演算の負荷が高まります。しかし、後者ほどより自然な描画結果を得られます。
線形フォグを指定時はフォグの効果を与える範囲をG3@FRMSETFOGSTART、G3@FRMSETFOGENDを使いカメラからの距離で指定します。指数フォグを指定時はフォグの効果のあたり具合をG3@FRMSETFOGDESTINYで指定します。
用例
指定のフレームをピクセルフォグ(指数フォグ)の効果を与える。
CH1 = G@SETUP( 640 , 480 , 24 , 1 )
FM = G3@FRMLOAD("kuma.x")
G3@RMSETFOGMODE( FM , 1 )