最終更新:
mikk_ni3_92 2008年07月22日(火) 17:38:02履歴
現在地 >> メニュー >> 基本編05 >> 材質の設定
次 >> 材質の設定2
「材質特性」によって、「反射の仕方」が変わる。
設定には、「glMaterial()関数」を使う。
「face」:設定する「面」を指定 (「GL_FRONT」,「GL_BACK」,「GL_FRONT_AND_BACK」のいずれか)
「pname」:「材質パラメータ」を指定(後述)
「param」:「GL_SHININESS」の新しい設定値を指定。
「params」:「pname」に設定する「新しい設定値」へのポインタ
材質のパラメータは次のようになる。
【金色の例】
次 >> 材質の設定2
M. Kilgard のカラーサンプルに具体的な数値がある。
次 >> 材質の設定2
「材質特性」によって、「反射の仕方」が変わる。
設定には、「glMaterial()関数」を使う。
- glMaterialf(GLenum face, GLenum pname, GLfloat param)
- glMateriali(GLenum face, GLenum pname, GLint param)
- glMaterialfv(GLenum face, GLenum pname, const GLfloat *parame)
- glMaterialiv(GLenum face, GLenum pname, const GLint *params)
「face」:設定する「面」を指定 (「GL_FRONT」,「GL_BACK」,「GL_FRONT_AND_BACK」のいずれか)
「pname」:「材質パラメータ」を指定(後述)
「param」:「GL_SHININESS」の新しい設定値を指定。
「params」:「pname」に設定する「新しい設定値」へのポインタ
材質のパラメータは次のようになる。
パラメータ名 | 内容 | 初期値 |
GL_AMBIENT | 環境光 | (0.2, 0.2, 0.2, 1) |
GL_DIFFUSE | 拡散光 | GL_LIGHT=(0.8, 0.8, 0.8, 1) |
GL_SPECULAR | 鏡面光 | (0,0,0,1) |
GL_EMISSION | 放射輝度 | (0,0,0,1) |
GL_SHININESS | 鏡面光の指数 | 0。0〜128までできる |
GL_AMBIENT_AND_DIFFUSE | 「環境光」、「拡散光」を同時に指定する | |
GL_COLOR_INDEXES | 「環境光」、「拡散光」、「鏡面光」のカラー座標 |
【金色の例】
GLfloat gold_amb[] = { 0.24725, 0.1995, 0.0745, 1.0 }; GLfloat gold_diff[] = { 0.75164, 0.60648 , 0.22648, 1.0 }; GLfloat gold_spe[] = { 0.628281, 0.555802,0.366065,1.0 }; GLfloat gold_shin[] = { 51.2 }; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, gold_amb); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, gold_diff); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, gold_spe); glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, gold_shin);
次 >> 材質の設定2
M. Kilgard のカラーサンプルに具体的な数値がある。