凡人の日々の経過を記録
カレンダー
カテゴリー
リンク
最新記事
(03/21)
(03/11)
(03/05)
(03/02)
(02/06)
ブログ内検索
コガネモチ
OSはUbuntu10.04
gxext.hの最新を入れる。 % wget http://www.opengl.org/registry/api/glxext.h % sudo mv glxext.h /usr/include/GL % git clone git://glfw.git.sourceforge.net/gitroot/glfw/glfw % cd glfw % cmake . % make % sudo make install /usr/localにインストールされる。 /usr/localなので動的ライブラリは別途指定が必要とおもわれ、 % sudo vi /etc/ld.so.conf.d/local <= 新規作成 ----- /usr/local/lib ----- % sudo ldconfig GLSLを勉強するにあたって、プラットフォームがかわらずGLUTを使っている。
それでもGLUT+GLEWでOpenGL3.xや4.xにもすんなり対応できている。 それほど困ることはないが、なんとなく新しいもので揃えてきているので、やっぱりGUIも違うものを選択したくなる。 調べてみるといくつかあって、その中で、
一応すべてJoystick対応だと思う。 GLUTに比べてだいぶ痒いところに手が届くようになると思われる。
GLFWはOpenGLに特化してこの中でもっとも軽量、QtはGUIのAPIが豊富で機能盛りだくさん。 どれもよさそうだが、ただOpenGL4.xに対応しているかが微妙。 いや対応していなさそう。 うーむ、どうしたものか。 GLM(OpenGL Mathematics)はベクトルや行列演算を補助するライブラリで、GLSLで使われる変数に類似している。
OpenGL ES2.0やOpenGL4.0と進んでいる中で固定シェーダ記述はもう使えない。
たとえば、
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glMultMatrixf()
gluLookAt();
といった記述はもう書けない。
そこで重宝するのがGLMというライブラリ。
GLMを使うと次のような感じ。 using namespace glm; mat4 Projection = perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.f);
mat4 ViewTranslate = translate( mat4(1.0f), vec3(0.0f, 0.0f, -Translate));
mat4 ViewRotateX = rotate( ViewTranslate, Rotate.y, vec3(-1.0f, 0.0f, 0.0f));
mat4 View = rotate( ViewRotateX, Rotate.x, vec3(0.0f, 1.0f, 0.0f));
mat4 Model = scale( mat4(1.0f), vec3(0.5f));
mat4 MVP = Projection * View * Model;
glUniformMatrix4fv( LocationMVP, 1, GL_FALSE, value_ptr(MVP));
MVPの計算がかなりスマートに書ける。 APIはGLSLの記述+αの程度わかれば使いこなせそうだ。 OpenGL+GLMでググってみるとトップページにででくる。 今後、きっとこのライブラリのお世話になるだろう。
Powered by 忍者ブログ
Design by © まめの
Copyright © [ ずくのない凡人の日記 ] All Rights Reserved. http://bambooflow.blog.shinobi.jp/ |