kazumalab tech log

流行りとリラックマと嵐が大好きです。技術的ログ。

RubyでOpenGLを動かすところまでのお話

かずまです。

今日は入社式とか研修とかでした。
帰ってバタンキューだったのですがなんか妙な時間に目覚めてしまったのでRubyOpenGLAPI叩けないかなーってことで調べてたら
あった!


別にRubyでゲーム作りたいとか、ではないのですが、使えると便利かな、ぐらいです。

github.com

ちゃんとありました。
DirectXは基本WindowsAPIになっているのでMacLinuxユーザーとしてはOpenGLかなって感じですね。
まぁVM立ててWindows立ち上げるみたいなので力技はできますが。

Sampleを動かす

先程のgithubからCloneしてきてSampleを動かしてみることにします。

GemのOpenGLとかを入れるのですが、まぁプロジェクトごとに管理できるのが一番いいのでBundlerを入れてしまいます。
入ってる場合は飛ばします。

こことかを参考にして

blog.tokoyax.com

$ gem install bundler

Fetching: bundler-1.14.6.gem (100%)
Successfully installed bundler-1.14.6
Parsing documentation for bundler-1.14.6
Installing ri documentation for bundler-1.14.6
Done installing documentation for bundler after 4 seconds
1 gem installed

OK、これでExampleディレクトリに移動して、

$ bundle init
$ vim Gemfile

ここでGemfileの中身を書き加えます。

gem 'opengl'
gem 'glu'
gem 'glut'

これで後は

$ bundle install --path=vendor/bundle

これでここのディレクトリのみにGemがインストールされるはずです。
よしこれで動く環境は整いました、examples/Neheに移動してrubyで叩いてみます!

$ bundle exec ruby nehe_lesson02.rb 

f:id:kazumalab:20170404023612p:plain

おぉー表示されました。
いいですね。

頂点をきめたりするところ

glBegin GL_POLYGON do
    glVertex3f  0.0,  1.0, 0.0
    glVertex3f  1.0, -1.0, 0.0
    glVertex3f -1.0, -1.0, 0.0
end

ここで三角形の頂点を決めてますね。
GL_POLYGONの部分でどんな形をレンダリングするかです。

ちなみにGL_QUADSのところを

glBegin GL_POINTS do
    glVertex3f -1.0,  1.0, 0.0
    glVertex3f  1.0,  1.0, 0.0
    glVertex3f  1.0, -1.0, 0.0
    glVertex3f -1.0, -1.0, 0.0
  end

GL_POINTSに変更すると

f:id:kazumalab:20170404033516p:plain

見えにくいですが点がレンダリングされます。

使うとよさそうな一覧が乗ったページがありますのでこちらを参考にするといいかも。
glBegin

今日は時間も遅いのでここまで。
お疲れ様でした。