現在地 >> メニュー >> 基本編11 >> フォグの表現


フォグ


OpenGLには、フォグの種類として
  • GL_EXP:基本的。古いPCでは十分な効果が得られる
  • GL_EXP2:「GL_EXP」よりいい結果が得られる。
  • GL_LINEAR:よい効果が得られる。
の3つがある。

手順

  1. フォグの種類を設定
  2. 各種パラメータ(密度、ヒント、...etc)
  3. 有効化


float fogColor[4]= {0.5, 0.5, 0.5, 1.0}; //フォグの色

glFogi(GL_FOG_MODE, GL_LINEAR); //種類
glFogfv(GL_FOG_COLOR, fogColor); //色
glFogf(GL_FOG_DENSITY, 0.35);  //密度

glHint(GL_FOG_HINT, GL_DONT_CARE); //ヒント

glFogf(GL_FOG_START, 1.0);  //開始位置
glFogf(GL_FOG_END, 5.0); //終了位置
glEnable(GL_FOG);


「glFogi*()関数」、「glFogf*()関数」


以下の「4つ」がある。
  • glFogi(GLenum pname, GLfloat param)
  • glFogf(GLenum pname, GLint param)
  • glFogiv(GLenum pname, const GLfloat *params);
  • glFogfv(GLenum pname, const GLint *params);


[引数について]
  • 「pname」:「フォグのパラメータ」を指定する
  • 「param」、「pname」:「値」、または、値を格納した「ポインタ」を指定。

「フォグ」のパラメータ:pname


引数の「pname」には、以下の指定が可能である。
パラメータ内容初期値その他
GL_FOG_MODE方程式を指定するGL_EXPGL_LINER、GL_EXP、GL_EXP2 が指定できる
GL_FOG_DENSITYフォグ密度の指定1
GL_FOG_START霧のかかる「近景」位置「GL_LINER」でのみ使用可能
GL_FOG_END霧のかかる「遠景」位置1「GL_LINER」でのみ使用可能
GL_FOG_INDEX「フォグ」の「カラー指標」
GL_FOG_COLOR「フォグ」の色を指定(0, 0, 0, 0)

glHintの設定


「glHint(GLenum target,GLenum mode)関数」でフォグのヒントを設定

―第1引数―
  • GL_FOG_HINTを指定

―第2引数―
  • GL_FASTEST → 「頂点単位」で「fog」を作成(高速だが、「GL_NICEST」より結果は劣る)
  • GL_NICEST → 「ピクセル単位」で「fog」を作成(良い結果がでる)
  • GL_DONT_CARE → OpenGL次第



サンプルコード >> fog::まとめコード

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます