OpenGLを触ってみた

今日はコンピュータグラフィックスの講義を受けました。
内容はOpenGLの概要の説明の様な物。
CでOpenGLを動かすサンプルを見ながらOpenGLについて説明を受けました。
という事で早速動かしてみる事に、、
Macでは始めからOpenGLを動かすための環境が整っている様なのでサンプルをそのままコンパイル
と思ったが動かず。

#include <GL/glut.h>

#include <GLUT/glut.h>

に書き換えたら動きました。

んで、次はRubyからOpenGLを動かしてみる事に。
環境は

$sudo gem install ruby-opengl

で完成。
らくちん。
で、サンプルをRubyで書き換え。
これもほとんどおんなじかんじで書き換えて完成。
書き換えた物はこんなかんじ。

require "opengl"
require "glut"

display = proc {
  GL.Viewport(0, 0, 500, 500)
  GL.Clear(GL::COLOR_BUFFER_BIT)
  GL.Color3f(1.0, 1.0, 0.0)
  GL.Begin(GL::LINE_STRIP)
    GL.Vertex2f(0.25, 0.25)
    GL.Vertex2f(0.75, 0.25)
    GL.Vertex2f(0.75, 0.75)
    GL.Vertex2f(0.25, 0.75)
  GL.End
  GL.LineWidth(3.0)
  GL.Color3f(0.0, 0.0, 1.0)
  GL.Begin(GL::LINES)
    GL.Vertex2f(0.25, 0.25)
    GL.Vertex2f(0.25, 0.75)
  GL.End()
  GL.Flush()
}

GLUT.Init()
GLUT.InitDisplayMode(GLUT::SINGLE | GLUT::RGB)
GLUT.InitWindowSize(500, 500)
GLUT.InitWindowPosition(0, 0)
GLUT.CreateWindow("test2")
GLUT.DisplayFunc(display)
GL.ClearColor(0.0, 0.0, 0.0, 0.0)
GL.MatrixMode(GL::PROJECTION)
GL.LoadIdentity()
GLU.Ortho2D(-1.0, 1.0, -1.0, 1.0)

GLUT.MainLoop()