材質の設定
またまたいつものURLhttp://seesaawiki.jp/w/mikk_ni3_92/d/%BA%E0%BC%C1%A4%CE%C0%DF%C4%EA
どうやら材質特性によって反射の仕方が変わるらしい。
「glMaterial()関数」を使用。
例)金属のような質感
↓ソースコード
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
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);
glBegin(GL_POLYGON);
↓材質のパラメータ
パラメータ名 | 内容 | 初期値 |
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 | 「環境光」、「拡散光」、「鏡面光」のカラー座標 |
※ GL_FRONT_AND_BACKは面の裏、表両方に適用させる時に指定する。
GL_FROMT だと表面のみ、GL_BACKだと裏面のみに材質を設定できる。
0 件のコメント:
コメントを投稿