最終更新: mikk_ni3_92 2007年11月03日(土) 15:23:30履歴
現在地 >> メニュー >> 基本編11 >> フォグの表現
OpenGLには、フォグの種類として
以下の「4つ」がある。
[引数について]
引数の「pname」には、以下の指定が可能である。
「glHint(GLenum target,GLenum mode)関数」でフォグのヒントを設定
―第1引数―
―第2引数―
サンプルコード >> fog::まとめコード
OpenGLには、フォグの種類として
- GL_EXP:基本的。古いPCでは十分な効果が得られる
- GL_EXP2:「GL_EXP」よりいい結果が得られる。
- GL_LINEAR:よい効果が得られる。
- フォグの種類を設定
- 各種パラメータ(密度、ヒント、...etc)
- 有効化
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);
以下の「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」には、以下の指定が可能である。
パラメータ | 内容 | 初期値 | その他 |
GL_FOG_MODE | 方程式を指定する | GL_EXP | GL_LINER、GL_EXP、GL_EXP2 が指定できる |
GL_FOG_DENSITY | フォグ密度の指定 | 1 | |
GL_FOG_START | 霧のかかる「近景」位置 | 0 | 「GL_LINER」でのみ使用可能 |
GL_FOG_END | 霧のかかる「遠景」位置 | 1 | 「GL_LINER」でのみ使用可能 |
GL_FOG_INDEX | 「フォグ」の「カラー指標」 | 0 | |
GL_FOG_COLOR | 「フォグ」の色を指定 | (0, 0, 0, 0) |
「glHint(GLenum target,GLenum mode)関数」でフォグのヒントを設定
―第1引数―
- GL_FOG_HINTを指定
―第2引数―
- GL_FASTEST → 「頂点単位」で「fog」を作成(高速だが、「GL_NICEST」より結果は劣る)
- GL_NICEST → 「ピクセル単位」で「fog」を作成(良い結果がでる)
- GL_DONT_CARE → OpenGL次第
サンプルコード >> fog::まとめコード