2010年10月23日土曜日

オブジェクトの描画

object ACT3D.initに以下を追加

GL11.glClearColor(0, 0, 0, 0)
GL11.glEnable(GL11.GL_DEPTH_TEST)
GL11.glViewport(0, 0, width, height)
GL11.glMatrixMode(GL11.GL_PROJECTION)
GL11.glLoadIdentity
GL11.glFrustum(-halfWidth, halfWidth, -halfHeight, halfHeight, 100, 10000)

次に、 オブジェクトの描画です。

GLUTオブジェクトを使って簡単に何か描こうと思っていたのですが、LWJGLにはGLUTはない模様・・・
なので、GLUオブジェクトを使って描きます。

object ACT3D
@throws(classOf[LWJGLException])
def run {
  val sphere = new Sphere
  sphere.setDrawStyle(GLU.GLU_LINE)
  while (running) {
    Display.update
    if (Display.isCloseRequested) {
      running = false
    } else {
      GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT)
      GL11.glMatrixMode(GL11.GL_MODELVIEW)
      GL11.glLoadIdentity
      GLU.gluLookAt(0, 150, 50, 0, 0, 0, 0, 1, 0)
      GL11.glColor3f(1, 1, 1)
      sphere.draw(50, 10, 10)
      Display.swapBuffers
      Display.sync(fps)
    }
  }
}

これを実行すると、


 こんな感じで、球が描画されます。

今回使っているglFrustumやgluLookAtは、私にはまだ到底説明できないものなので、Googleなどで調べてもらえるとありがたいです。
読み込み中
クリックでキャンセルします
画像が存在しません

0 件のコメント:

コメントを投稿