Chapter4. 拡張関数


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

関数名
G3@FRMSETTOONMACH
機能
トゥーンシェーディングの輪郭に現れるマッハバンドを調整する。
書式
G3@FRMSETTOONMACH(Frm,mach)
《パラメーター》
Frmint。フレーム(G3@FRMMAKE の戻り値)を指定する
machfloat。マッハバンドの調整値(初期値:0.005)
解説
表面に微細な凹凸がある3Dキャラをトゥーンシェーディングで描画すると、3Dキャラに縞模様のノイズが現れる事があります。この縞模様をマッハバンドといい、本関数でマッハバンドが現れないように調整します。
トゥーンシェーディングの輪郭は、3Dモデルの各頂点を法線方向(3Dモデルの少し外側)に引き伸ばしたものを、3Dモデルの奥側に描画することで表現しています。3Dキャラの表面に微細な凹凸があると、凹部分に輪郭がはみ出しマッハバンドとなります。そこで、本関数で輪郭を描画する奥行きを変えます。調整値が大きいほど奥に描画する為、初期値よりも大きな値を設定するとマッハバンドを削減できます。
用例
トゥーンシュエーディング時の輪郭を少し奥(0.01)に描画させる。
FD=G3@FRMLOAD("sample.x")

G3@FRMSETSHADE( FD , 4 )
G3@FRMSETTOONMACH( FD , 0.01 )

LD=G3@LIGHTMAKE( 5 , 0.8 , 0.8 , 0.8 )
G3@ADD( LD , FD )