• 締切済み

openGLにおいて描画した物体によってできる影

OpenGLで3次元オブジェクトを描画する際, 光源の位置によって物体の明るい場所と暗い場所を 表現する方法は知っています.(glShadeModel(GL_SMOOTH);など) しかし,このような方法ではオブジェクトにできる影は光源と オブジェクトの形状のみに依存し, その他のオブジェクトに影響されません. そこで,添付した画像のように, 「複数の3次元オブジェクトを描画した際に, 一方のオブジェクトがもう一方のオブジェクトによって影ができる」 という風に描画するにはどうすればよいですか? ご存知の方がいましたら,どうか教えていただけないでしょうか. よろしくお願いします.

みんなの回答

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

OpenGLは(というか、OpenGLにかぎらず、3D描画ハードウェアでは) 陰計算(光源と面の傾きなどによる明るさ。Shade)は計算できますが、 影計算(別の物体に光源が遮られること。Shadow)は簡単できません。 Shadowを計算するには、 シャドウポリゴン生成とステンシルバッファを使ったり、 http://son-son.sakura.ne.jp/programming/post.html 光源から見て作画したシャドウマップを使ったり http://marina.sys.wakayama-u.ac.jp/~tokoi/?date=20050926 する必要があります。

関連するQ&A