12.フォグ
フォグを利用してポリゴンを背景にとけこんでいくように表示します。

フォグフラグの設定
フォグの影響を受けるようにマテリアルを設定します。
void makeScene(IVideoDriver *driver)
{
matrix4 mat;
//マテリアル設定
SMaterial Material;
Material.Lighting = false;
Material.FogEnable = true;
driver->setMaterial(Material);
|
フォグの適用
メインループに入る前に、フォグを設定しておきます。
フォグの色は背景色と同じに設定し、背景に消えていくような効果を出しています。
//カメラ設定
smgr->addCameraSceneNode(0, vector3df(0,0,-5), vector3df(0,0,0));//通常カメラ
//フォグ設定
driver->setFog(0xFF6060FF, true, 0,5);
while(device->run())
{
driver->beginScene(true,true,0xFF6060FF);
|

setFog
フォグの効果を出します。
これはグローバルな設定なので、フォグを適用するかどうかは
個別のマテリアルフラグで設定してください。
void setFog(
SColor color = SColor(0, 255, 255, 255),
bool linearFog = true,
f32 start = 50.0f,
f32 end = 100.0f,
f32 density = 0.01f,
bool pixelFog = false,
bool rangeFog = false
)
|
color フォグの色を設定します。
linearFog trueの場合線形フォグを使用します。falseの場合指数フォグを使用します。
start 線形フォグの開始位置を指定します。線形フォグの時のみ有効です。
end 線形フォグの終了位置を指定します。線形フォグの時のみ有効です。
destiny 指数フォグのかかる係数を0.0f〜1.0fで指定します。指数フォグの時のみ有効です。
pixelFog trueの場合ピクセルフォグを使用します。falseの場合頂点フォグを使用します。
rangeFog 距離ベースにした頂点フォグを使用する際にtrueにセットします。DirectXでのみ有効です。
|

フォグの使いどころ
カラーを白か黒に設定して、霧や闇夜に隠れていく様を表現します。
|
ダウンロード
今回作成したファイル一式です。
宿題
宿題
|
|