色とシェーディング・ライトとマテリアル
■ 課題
今回の課題は以下の通り。
  • 頂点ごとに違う色を割当てた立方体を作成し、glShadeModel() に GL_SMOOTH と GL_FLAT を引数として渡して違いを述べてください。

  • ポイントライト、ディレクショナルライト、スポットライトを設定し、それぞれの効果が確認できるプログラムを書いてください。

  • ライトが存在する中で、各頂点に正しく法線を割り当て、法線の変化(面が傾くなど)に応じてポリゴン面の陰影がどう変化するか観察できるプログラムを書いてください。

  • AMBIENT, DIFFUSE, SPECULAR, EMISSION, SHININESS をマテリアルの値として変化させてその効果が確認できるプログラムを書いてください。

  • 上4つそれぞれを、キー入力やマウスの入力によってインタラクティブに変化する仕組みを備えたプログラムにしてください。
  • ■ 今回のヒント
    下記の関数について調べるとよいでしょう。
  • glShadeModel() シェーディングモードを変えます
  • glEnable() / glDisable() 引数で渡されたマクロについて有効化/無効化します
  • glLight*() ライトの設定をします
  • glMaterial*() 材質の設定をします
  • glNormal3*() 法線を割り当てます


  • なお、前回の 解答例を用意しました ので、特に出来なかった人はダウンロードして実行、解析を行っておいて下さい。

    [ 戻る ]

    Written by Yasuhiro Yamazaki, 2001.
    Modified by Youhei Nishidate, 2003.