HOME > natural science Laboratory > コンピュータ・シミュレーション講座 > OpenGL入門

OpenGL入門
光源のパラメータ設定3

文責:遠藤 理平 (2010年11月15日) カテゴリ:OpenGL入門(27)TIPS 集(99)

光源のパラメータ設定2では、 OpenGLにて光源を設定する際に最もよく利用する 「GL_POSITION(位置)」 「GL_DIFFUSE(拡散光)」 「GL_AMBIENT(環境光)」 「GL_SPECULAR(鏡面光)」、 光源のパラメータ設定3では、 「GL_LINEAR_ATTENUATION(線形減衰)」のパラメータを変更させて描画しました。
今回は、光源からの指向性を表すパラメータを指定します。

光源の設定

座標(50,0,100)にある光源から、 (-0.5,0,1.0)方向へスポットライトを当てる場合を想定します。

static GLfloat lightPosition[4] = { 50.0, 0.0, 100.0, 1.0 }; //光源の位置
static GLfloat lightDiffuse[3]  = { 1.0,   1.0, 1.0  }; //拡散光
static GLfloat lightAmbient[3]  = { 0.25, 0.25, 0.25 }; //環境光
static GLfloat lightSpecular[3] = { 1.0,   1.0, 1.0  }; //鏡面光
GLfloat spotDirrection[] = { -0.5, 0.0, -1.0 }; //スポットライトを向ける方向

光源の設定は次のように「glLightfv」関数を用いることで指定することができます。

glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);  
glLightfv(GL_LIGHT0, GL_DIFFUSE,  lightDiffuse);
glLightfv(GL_LIGHT0, GL_AMBIENT,  lightAmbient);
glLightfv(GL_LIGHT0, GL_SPECULAR, lightSpecular);
glLightf( GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.01);
glLightfv( GL_LIGHT0, GL_SPOT_DIRECTION, spotDirrection ); //スポットライトの向ける方向(デフォルト (0,0,-1.0))
glLightf( GL_LIGHT0, GL_SPOT_CUTOFF,  30.0 );// スポットライトの絞り(デフォルト 180.0)
glLightf( GL_LIGHT0, GL_SPOT_EXPONENT, 0.1 );// スポットライトの中心からの減衰の度合い(デフォルト 0)

「GL_SPOT_CUTOFF 」の値を変化させます。

20101115-3.gif

スポットライトを向ける方向を変化させるこことで、次のような図もできます。

20101115-4.gif


タグ: ,

▲このページのトップNPO法人 natural science トップ

関連記事

OpenGL入門







TIPS 集

▲このページのトップNPO法人 natural science トップ