Chapter4. 拡張関数


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

関数名
G3@FRMSETAMBIENT
機能
フレームにアンビエント光源(環境光)を設定する。
書式
G3@FRMSETAMBIENT(Frm,red,green,blue)
《パラメーター》
Frmint。フレーム(G3@FRMMAKE の戻り値)を指定する。
redfloat。アンビエント光源の赤色の量(-1、0〜1.0)。(初期値:−1、トップフレームは0)
greenfloat。アンビエント光源の緑色の量(-1、0〜1.0)。(初期値:−1、トップフレームは0)
bluefloat。アンビエント光源の青色の量(-1、0〜1.0)。(初期値:−1、トップフレームは0)
解説
アンビエント光源とはシーン内のどの位置座標にもエフェクトを及ぼす。アンビエント光源はシーン内の位置座標にかかわらず、シーン全体を同じ強度の光で照らすライティングと考えることができる。例えば昼間に建物の影となる場所に行っても、真っ暗で何も見えなくなることはなく、光の方向性はないが物が見える程度の明るさがある。こんな光をアンビエント光源といいます。
ただし、光の方向性がないことで影ができないため、光源がアンビエント光源だけの場合には立体感のないのっぺりとした画像が描画されてしまいます。なので他の光源と組み合わせて使用するのがいいでしょう。
光の三原色の明るさを変えることであらゆる色の光源を使用できる。各色共に通常は0(最低)〜1.0(最高)を指定するが、1.0よりも大きな値を指定することで極端に明るい光源を使用できる。
red、green、blueのどれかに−1を指定するとG3@ADD関数で関連付けた上位フレームの設定を引き継ぐ。トップフレームにはー1を指定できない。
メタセコイアで作った3Dモデルにアンビエント光源を適応する場合は、材質設定で「自己照明」と「反射光」を0以外に設定してください。片方でも0だと白黒で描画されてしまいます。
用例
フレーム「FP」のアンビエント光源を水色(赤=0、緑=1.0、青=1.0)に変更する。

FP = G3@FRMMAKE( )
G3@FRMSETAMBIENT( FP , 0 , 1.0 , 1.0 )