凡人の日々の経過を記録
カレンダー
カテゴリー
リンク
最新記事
(03/21)
(03/11)
(03/05)
(03/02)
(02/06)
ブログ内検索
コガネモチ
GLSLを勉強するにあたって、プラットフォームがかわらずGLUTを使っている。
それでもGLUT+GLEWでOpenGL3.xや4.xにもすんなり対応できている。 それほど困ることはないが、なんとなく新しいもので揃えてきているので、やっぱりGUIも違うものを選択したくなる。 調べてみるといくつかあって、その中で、
一応すべてJoystick対応だと思う。 GLUTに比べてだいぶ痒いところに手が届くようになると思われる。
GLFWはOpenGLに特化してこの中でもっとも軽量、QtはGUIのAPIが豊富で機能盛りだくさん。 どれもよさそうだが、ただOpenGL4.xに対応しているかが微妙。 いや対応していなさそう。 うーむ、どうしたものか。 PR 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でググってみるとトップページにででくる。 今後、きっとこのライブラリのお世話になるだろう。 Ubuntu 10.04でOpenMPを試してみた。
pkgとしては、libgomp1がそれっぽい。 % g++ -v gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
#include <stdio.h> #include <omp.h> int main(int argc, char *argv[]) { #pragma omp parallel printf( "Hello, OpenMP!\n" ); return 0; } % g++ -fopenmp -o run.x hello.cpp % ./run.x Hello, OpenMP!
Hello, OpenMP!
Hello, OpenMP!
Hello, OpenMP!
Hello, OpenMP!
Hello, OpenMP!
Hello, OpenMP!
Hello, OpenMP!
ライブラリ指定は特にしていしなかった。 実行するとprint文がCPUの数分表示された。
Powered by 忍者ブログ
Design by © まめの
Copyright © [ ずくのない凡人の日記 ] All Rights Reserved. http://bambooflow.blog.shinobi.jp/ |