Home | Lesson | Game | Tool | Link

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でのみ有効です。


フォグの使いどころ
カラーを白か黒に設定して、霧や闇夜に隠れていく様を表現します。

ダウンロード
今回作成したファイル一式です。

宿題
宿題