bambooflow Note内検索 / 「GoogleTest」で検索した結果

検索 :
  • Programming/GoogleTest
    GoogleTest テストフレームワークの1つであるGoogle Test(以下gtest)というものについてメモします。 GoogleTestダウンロード インストール(Linux) 簡単なソースコードと実行 まとめ ダウンロード http //code.google.com/p/googletest/ 現時点でのgtest最新版は、1.4.0。 下記は、1.3.0でのインストールについてまとめました. インストール(Linux) 私の環境Linux(CentOS)へのインストール方法を説明します。 % tar xzf gtest-1.3.0.tar.gz % cd gtest-1.3.0 % ./configure --prefix=/home/bambooflow/gtest --enable-shared=no ただし、あらかじ...
  • Programming/GoogleTest/リファレンス
    ...ting InitGoogleTest( argc, argv ); return RUN_ALL_TESTS(); }   参考 http //code.google.com/p/googletest/wiki/GoogleTestPrimer http //code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide
  • Programming
    ...レンス cmake GoogleTest GoogleTest/リファレンス Makefile エスケープシーケンス 時間計測関数 関数ポインタ
  • そのた
    ...xical_castGoogleTestリファレンスMakefilecmakeエスケープシーケンス時間計測関数関数ポインタ Qt s60 Ruby パーサ関係re2c - 字句解析 ANTLR v2 ANTLR v3 Maxima
  • OpenGL/3.x/Triangle描画
    Triangle描画 説明事前の準備 描画 フラグメントシェーダの使用についてglBindFragDataLocationでエラーが出るとき GLSLの初めの一歩として三角形表示プログラムをここに載せます。 シェーダプログラムはGLSL1.3以上になってます。 OpenGL3.0(GLSL1.3)以上 Triangle描画 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (triangle.png) 全ソースコード #include iostream #include fstream #include cstdlib   #include GL/glew.h #include GL/glut.h   GLuint programObject; GLuint verte...
  • OpenGL/BuGLe
    BuGLe BuGLe(ビューグル)はOpenGLのデバッガ。 なかなか説明しているページが見つからない。 簡単な使い方をメモすることにしました。 使いこなせれば、なかなか便利なのかもしれません。 BuGLeインストール準備エラー対策 gldb-gui使い方 メモbugleの準備 gldb-gui実行 参考 インストール準備 http //sourceforge.net/projects/bugle/ bugle-0.0.20091026.tar.bz2 $ tar jzf bugle-0.0.20091026.tar.bz2 libreadline-dev libgtk-dev libgtkglext1-dev libgtkglextmm-x11-1.2-dev libavcodec-extra-52 libdlna-dev ↑足り...
  • Programming/Boost/Test
    Boost Test Boostパッケージに含まれるユニットテストフレームの使いかたをメモします. Boost TestBoostTestの雛型 テストの自動登録 BoostTestの雛型 boostバージョン v1.33 boostバージョン v1.40 test.cpp #include boost/test/unit_test.hpp using namespace boost unit_test_framework;   // 検証対象 int func( int x ) { //int sign = (x 0) ? -1 1; return x*x; }     // テストケース void FuncTest_plus_test() { ...
  • OpenGL/3.x/TextureMapping
    テクスチャマッピングコード テクスチャマッピングについてメモします。 OpenGL3.1(GLSL1.4)以上 テクスチャマッピング 平面に対して2x2のRGBAデータを貼り付け。 コード simple.vert #version 140   uniform mat4 modelMatrix; uniform mat4 viewMatrix; uniform mat4 projectionMatrix;   in vec3 a_vertex; in vec3 a_normal; in vec2 a_texcoord;   out vec3 v_normal; out vec2 v_texcoord;   void main(void) { mat4 modelViewMatr...
  • OpenGL/glew
    GLEW The OpenGL Extension Wrangler Library GLEW The OpenGL Extension Wrangler Libraryダウンロード&インストール GLEWのはじめ GLEWでOpenGLのバージョンサポートを確認する ダウンロード&インストール http //glew.sourceforge.net/ 上記のパスからダウンロードできる。 あらかじめglut(freeglut)はインストールしておく。 % tar xzf glew-1.x.x.tgz % cd glew-1.x.x % make % sudo make install ちなみに、インストール先は、Makefileの43行目あたりGLEW_DESTで設定を変更できる。 GLEWのはじめ glew_hello.cpp #...
  • ChromeOS/USBメモリから起動する方法
    Google Chrome OSをUSBメモリから起動する方法 Chrome OSはまだ開発段階のため、まだ動かない機能もありますので注意願います。 Google Chrome OSをUSBメモリから起動する方法ダウンロード Linux上でUSBにインストール 起動とログイン 参考ページ ダウンロード 本家サイト http //chromeos.hexxeh.net/ ChromeOS-Flow.img Linux上でUSBにインストール % tar xzf ChromeOS-Flow.tar.gz % shdo dd if=ChromeOS-Flow.img of=/dev/X bs=4M 起動とログイン BIOSでUSBブート可能な状態にする。 PCにUSBメモリを差し、起動する。 PCがインターネットへ接続されていない場合は、Gm...
  • OpenGL/3.x/EmptyProject
    GLSLの手続きシェーダプログラム作成用関数の準備 GLSLの空プロジェクト(GLUT版) ダウンロード ここでは、OpenGL Shader Languageを使うための準備を行います. 作成に用いた環境 OpenGL3.2 GLUT(freeglut) - 2.6.0 GLEW - 1.5.7 GLSLの手続き バーテックスシェーダとフラグメントシェーダのシェーダオブジェクトを(glCreateShader) ソースプログラム読み込み(glShaderSource) 読み込んだソースプログラムをコンパイル (glCompileShader) プログラムオブジェクト作成 (glCreateProgram) プログラムオブジェクトにシェーダオブジェクト接続 (glAttachShader) シェーダプログラムをリンク(glLinkProgram) シェーダプログ...
  • トップページ/コメントログ
    メモ帳代りのページです。 -- (管理者) 2006-04-29 00 28 52 ブログのtopに竹の画像をアップしました。 -- (管理者) 2006-05-10 07 16 15 ode翻訳ちょっと休憩。 -- (管理者) 2006-07-25 22 51 03 この間、gentoo linuxインストールに失敗。結局Vineへ … トホホ。 -- (管理者) 2006-08-21 21 55 00 でも、もうすぐVine4.0が出るっぽい! -- (管理者) 2006-08-21 21 57 12 昔に書いてた設定に役立ちそうなページを移行 -- (管理者) 2006-08-21 22 29 11 Vine4.0beta1が出たみたい。さっそく入れたよ。なかなか快適! -- (管理者) 2006-09-01 01 55 16 ...
  • OpenGL/History
    ヒストリ 勉強のため整理。 知識不足なので、まずはバージョンごとにどんな機能が使えるのかをしるために。 ヒストリOpenGL 1.0 OpenGL 1.1対応カード 拡張 OpenGL 1.2対応カード 拡張 OpenGL 1.2.1対応カード 拡張 OpenGL 1.3対応カード 拡張 OpenGL 1.4対応カード 拡張 OpenGL 1.5対応カード 拡張 OpenGL 2.0対応カード 拡張 OpenGL 2.1対応カード 拡張 OpenGL 3.0対応カード 拡張 OpenGL 3.1対応カード OpenGL 3.2対応カード OpenGL 3.3 OpenGL 4.0 OpenGL 4.1 参考 OpenGL 1.0 1992年1月リリース OpenGL 1.1 1997年1月リリース GPUハードウェア上でテクスチャについてサポート。 対...
  • OpenGL/3.x/ロードシェーダ
    ロードシェーダ OpenGL3.x ( =2.x) GL3W or GLEW 1.5.7 シェーダを読み込む関数をまとめました。 ソースコードを記述します。 ロードシェーダソースコード 使い方 ソースコード load_shader.h #ifndef __LOAD_SHADER_H_ #define __LOAD_SHADER_H_   #include GL/gl.h #include list   GLuint loadShaderFromFile(GLenum type, const char *fileName); GLuint loadShader(GLenum type, const char *str, const char* fileName=""); GLuint ...
  • OpenGL/3.x/Cube描画
    Cube描画シェーダプログラム Cube.h メインプログラム 座標系と変換マトリックス座標系 変換方法ModelMatrix ViewMatrix ProjectionMatrix perspective divide ビューポート変換&デプス・レンジ Cube描画 キューブが回転します。 シェーダプログラム シェーダプログラムは次のようになります。 教科書どおりの書き方です。 simple.vert #version 130   uniform mat4 modelMatrix; // モデル・マトリックス uniform mat4 viewMatrix; // ビュー・マトリックス uniform mat4 projectionMatrix; // 射影・マトリックス   in vec...
  • Programming/Boost/Test/リファレンス
    BoostTestリファレンス BoostTestリファレンス アサーション検査 必須条件の検査 エラーメッセージ 警告メッセージ 実行時設定 アサーション 検査 BOOST_CHECK( expr ); exprが真であることを確かめる. exprが偽だと、エラー報告をログに出力。 BOOST_CHECK_MESSAGE( expr, str ); exprが真であることを確かめる. exprが偽だと、エラー報告とstr文字列をログ出力します. BOOST_CHECK_PREDICATE( pred, arity, args ); BOOST_CHECK_EQUAL( left, right ); left=rightであることを確かめます. 偽のとき、エラー報告を出力します. char*のとき、文字列として比較します. BO...
  • Qt/Qt4/OpenGL/テクスチャマッピング
    QtでOpenGL:テクスチャマッピング QtでOpenGL:テクスチャマッピング概要 画像をリソースに追加する手順 ソースコード まとめ 概要 Qtでのテクスチャマッピングは、簡単です。 Qtは標準クラスで画像を読み込むクラスを持っています。 また、併せてテクスチャをバインドする専用をメソッドを使うことで、テクスチャマッピングの手続きが簡略化することができます。 通常の手続きだと、 画像の読み込み ↓ glGenTextures(GL_TEXTURE_2D, texture); ↓ glBindTexture(GL_TEXTURE_2D, texture); ↓ glTexImage2D( .. ); となり、面倒です。 これがQtだと、 texture = bindTexture(QImage(" /image.jpg&qu...
  • OpenGL/gl3w
    gl3w gl3wは、OpenGL3/4のcore profileが提供する機能を手に入れるための最も簡単な方法。 以下のサイトから https //github.com/skaslev/gl3w ダウンロード % git clone https //github.com/skaslev/gl3w.git gl3wをテストする % cd gl3w % ./gl3w_gen.py すると、srcディレクトリにgl3w.cファイルが生成される。 % cd src % gcc -o test test.c gl3w.c -I../include -lglut 実行する。 % ./test 実行がうまくいくと、ランダム(randf)でチカチカする画面が表示される。 サンプル #include stdio.h #inclu...
  • OpenGL/3.x/VAOを使ったレンダリング
    VAOを使ったレンダリング Vertex Array Objects(VAO)は、VBOとAttribute設定を包括するものとしてとらえることができます。 OpenGL ES 2.0では、VAOの使用が推奨されています。 今回のサンプルは、VBOのみを使ったCube描画を改変したものです。 VAOを使ったレンダリングVAOを使う プログラム 環境 OpenGL 3.2 GLUT(freeglut) 2.6.0 GLEW 1.5.7 GLM 0.9.0.6 VAOを使う void glGenVertexArrays(GLsizei n, GLuint *arrays); void glDeleteVertexArrays(GLsizei n, const GLuint *arrays); void glBindVertexArra...
  • OpenGL/3.x/ShadowMapping
    目次 目次 シャドウマッピング ソースコード説明描画前の準備シェーダ準備 シャドウマップ用のテクスチャとFBO準備 シェーダ側引数へのアクセス準備 シーン・レンダリング1stパス(シャドウマップ生成) 2ndパス(シーン描画) シェーダ側のコードバーテックス・シェーダ フラグメント・シェーダ シャドウマッピングにおける問題と回避エイリアシングの回避 モアレ(moire)パタンの回避 参考 シャドウマッピング 透視シャドウマッピング(Perspective Shadow Mapping) 正確なものか不明ですが、なんとなく形になったのでメモします。 GLGL1.3以上(GLGL1.5推奨) Deprecated記述なし(たぶん) 2パス FBO使用 ライトがぐるぐると位置を移動します。 シェーダ側の処理は、最低限表示できるだけの記述に止めています。 ...
  • eigo/verb
    動詞 マスターしておきたい重要動詞 1   非難する criticize, say bad things about~, badmouth, blame, attack 2 作る make, build(信用、自信、体力を), produce, create, write(歌を), invent 3 調べる check(up), go through, look up[info, through, over], examine, study, search, track 4 嫌う hate, don t like, dislike, beallergic to, be not happy about 5 好き like, love, adore, be crazy about, have a crush on, be stuck on, be addited to, be ...
  • ODE/manual/衝突検出2
    10. 衝突検出210.7. Geometry Classes10.7.1. Sphere Class 10.7.2. Box Class 10.7.3. Plane Class 10.7.4. Capped Cylinder Class 10.7.5. Ray Class 10.7.6. Triangle Mesh Class 10.7.7. Geometry Transform Class 10.8. User defined classes 10. 衝突検出2 10.7. Geometry Classes 10.7.1. Sphere Class dGeomID dCreateSphere (dSpaceID space, dReal radius); Create a sphere geom of the given radius, and return its ID...
  • ODE/manual/ジョイントの種類とジョイント関数
    7. ジョイントの種類とジョイント関数 7. ジョイントの種類とジョイント関数7.1. ジョイントの生成と破壊 7.2. 様々なジョイント関数 7.3. ジョイントパラメータを設定する関数7.3.1. ボールとソケット 7.3.2. ヒンジ(hinge) 7.3.3. Slider 7.3.4. Universal 7.3.5. Hinge-2 7.3.6. Fixed 固定 7.3.7. Contact 接触 7.3.8. Angular Motor 角度モータ 7.4. General 7.5. Stop and motor parameters ストップとモータパラメータ7.5.1. Parameter Functions 7.6. Setting Joint Torques/Forces Directly 7.1. ジョイントの生成と破壊 dJointID dJointCr...
  • OpenGL/SDL
    SDL - Simple DirectMedia Layer SDL - Simple DirectMedia LayerDownload Compile cmake準備 Empty Project 表示 参考 Download Compile % sudo apt-get install libsdl1.2-dev http //www.libsdl.org/ SDL.lib SDLmain.lib opengl32.lib g++ `sdl-config --cflags --libs` -lGL sample.cpp -o sample cmake準備 CMakeLists.txt # # CMakeFileLists.txt # # cmake . # # 要求するCMakeのバージョン cmake_minimum_required&#...
  • OpenGL/1.x/ポリゴン上の線描画
    ポリゴン上の線描画 ポリゴン上の線描画失敗した例 うまく描けた例 参考 地面を(ポリゴンで)描いて、その上に線を引きたいとき、下のように線がうまく見えなくなることがあります。 それを改善する方法をメモします。 失敗した例 茶色の地面に格子状の線を描こうとしたら、z座標が同じなので線が見えたり見えなかったりしています。 void drawGround() { const float gsize = 12.0f;   glDisable(GL_LIGHTING); glColor3f( 0.4, 0.3, 0.2 );   glBegin( GL_TRIANGLE_STRIP ); glNormal3f( 0,0,1...
  • OpenGL/glut/API
    OpenGL glut使い方メモ/API OpenGL glut使い方メモ/API記述 ウィンドウ初期化glutInit( int *argc, char **argv ) glutInitWindowSize(int width, int height) glutInitWindowPosition(int x, int y) glutInitDisplayMode(OR'd bit string args) int glutCreateWindow(char *name) glutSetWindow(int), glutGetWindow(int) コールバックglutDisplayFunc(void (*func)(void)) glutReshapeFunc(void (*func)(int width, int height)) glutIdleFunc(void ...
  • Qt/QT4/OpenGL/タイマーを使ったアニメーション
    QtでOpenGL:タイマーを使ったアニメーション QtでOpenGL:タイマーを使ったアニメーション概要 ソースコード 概要 QGLWidgetのpaintGL()はupdateGL()がシグナルとなって呼ばれます。 ここではタイマーを使って一定間隔ごとにupdateGL()を呼ぶことでアニメーションさせます。 タイマーは、QBasicTimerクラスを用います。 QBasicTimer 使い方は下記の通りです。 #include QBasicTimer   QBasicTimer timer;   void GLWidget initializeGL() { //タイマーの開始、間隔を16ms(≒60fps)に設定 timer.start(16, this); }...
  • ODE/manual/StepFast
    StepFast HOTE StepFastアルゴリズムはQuickStepアルゴリズム(dWorldQuickStep関数)によってサポートされています。しかしながら、 使用法の詳細をのぞいて以下の議論もQuickStepは当てはまります。 ODEのdWorldStep関数はシステムをステップするために"大きなマトリックス"を使用します。システムが大きくなってしまうため低速でたくさんのメモリを要求します。StepFast1アルゴリズムは、別の手段として速度とメモリを益として正確さを犠牲にした、システムをステップする方法を提供します。これを使うためには、単にdWorldStepの代わりにdWorldStepFast1を呼びます。 The chart in figure 11 illustrates this speed advantage ove...
  • OpenGL/3.x/ジオメトリシェーダで簡易シャドウイング
    ジオメトリシェーダで簡易シャドウイング ジオメトリシェーダで影行列を使った簡易シャドウイングを試してみました。 プログラムは、影行列を使った簡易シャドウイングを修正して、影行列の計算をジオメトリシェーダに実装します。 修正としては、Cコード側にあった影行列の計算をそっくりそのままジオメトリシェーダに実装した形です。 シェーダの効率とかはまったく考えていないので、こういうことができるんだぐらいに思ってください。 あくまでも簡易シャドウイングです。シャドウボリュームでなくてごめんなさい。 OpenGL 3.x GLUT (freeglut 3.7) GLM 0.9.0.6 GL3W (or GLEW 1.5.7) ジオメトリシェーダで簡易シャドウイング影行列 ソースコード まとめ 影行列 // 影行列の計算 mat4 calcSh...
  • OpenGL/3.x/影行列を使った簡易シャドウイング
    影行列を使った簡易シャドウイング 影行列を使った簡易シャドウイング影行列 ソースコード 参考 OpenGL3.x GLUT (freeglut3.7) GLM 0.9.0.6 GL3W (or GLEW 1.5.7) 影行列 // // - l 光源位置 // - g 地面の位置 // - n 地面の法線ベクトル // glm mat4 shadowMatrix(glm vec3 l, glm vec3 g, glm vec3 n) { float d, c; n = -n; d = glm dot(n,l); c = glm dot(g,n) - d;   glm mat4 m( glm vec4( l.x*n....
  • OpenGL/1.x/ディスプレイリスト
    ディスプレイリスト ディスプレイリストディスプレイリストとは 使い方 ディスプレイリストを使ったサンプル 参考 まとめ ディスプレイリストとは ディスプレイリストは、あとで実行できるコマンドをグループとして保存(コンパイル)するための仕組みです。 リストが生成されると、頂点とピクセルデータを評価してサーバマシン上のメモリにコピー(コンパイル)されます。メモリにコピーされるのは最初の一回だけなので、何度も複数コマンドをサーバーに送らなくて住むため、描画の高速化が期待できます。 ただし、ディスプレイリストには欠点があります。それは、一度ディスプレイリストをコンパイルするとあとで変更することができません。頻繁に変更する場合は、代わりに頂点配列や頂点バッファオブジェクト(VBO)を使う必要があります。 また、ディスプレイリストは、すべてのコマンドを保存できるわけではな...
  • ODE/7.4
    7.4. General The joint geometry parameter setting functions should only be called after the joint has been attached to bodies, and those bodies have been correctly positioned, otherwise the joint may not be initialized correctly. If the joint is not already attached, these functions will do nothing. ジョイントの幾何学パラメータの設定する関数はジョイントの剛体の接続 を行った後でなければならない。そして、それらの剛体は正確な位置を持っている。そうでなければ、ジョイントは正確に初期化されない可...
  • OpenGL/2.x/Stroing_Vertex_Attributes
    Storing Vertex Attributes 各メッシュデータには、 頂点座標(v) 法線(n) テクスチャ座標(tc) を準備し、サーバにストアする必要がある。 サーバにストアするとき、データの格納方法は2通りある。 各データを配列で格納 構造体で格納 各データを配列で格納 v v v v v v n n n n n n tc tc tc tc tc tc glFloat v[] = { ... }; glFloat n[] = { ... }; glFloat tc[] = { ... };   glVertexAttribPointer(vIndex, 3, GL_FLOAT, GL_FALSE, ...
  • OpenGL/glut/VCEE
    VisualStudio2008 Express Editionでglut VisualStudio2008 Express Editionでglut必要なもの glutのインストール コンパイル&実行 必要なもの VisualStudio C++ 2008 Express Edition glut(glut-x.x.x-bin.zip) フリー環境で。 glutのインストール glut-x.x.x-bin.zipを展開すると、glut.h, glut32.lib, glut32.dllが入っています. とりあえず、下記の場所に置きます. glut.h C \Program Files\Microsoft Visual Studio 9.0\VC\include\GL\glut.h GLフォルダは新規作成. glut32.lib C \Prog...
  • OpenGL/1.x/メモ
    OpenGLメモ OpenGLメモ投影座標変換 モデルビュー座標変換平行移動 拡大縮小 回転 ポートビュー座標変換 光源の設定 マテリアルの設定 法線の設定 シェーディング・モデル デプス・テスト 隠面消去処理 描画処理 フレーム・バッファ 行列スタック ディスプレイ・リスト テクスチャ・マッピング 混合処理 アンチエリアシング フォグ 頂点配列 投影座標変換 遠近感を出す処理。 透視投影(遠近投影法)の行列を用いる準備。 glMatrixMode(GL_PROJECTION); glLoadIdentity(); モデルビュー座標変換 視点にたいしてモデル位置づけ。 モデルビュー行列を用いる準備。 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); 平行移動 glTranslate( 0.0f...
  • ODE/manual/衝突検出
    10. 衝突検出10.1. 接触点 10.2. Geoms 10.3. space 10.4. 一般geom関数 10.5. 衝突検出10.5.1. CategoryとCollideビットフィールド 10.5.2. 衝突検出関数 10.6. space関数 10. 衝突検出210.7. Geometry Classes10.7.1. Sphere Class 10.7.2. Box Class 10.7.3. Plane Class 10.7.4. Capped Cylinder Class 10.7.5. Ray Class 10.7.6. Triangle Mesh Class 10.7.7. Geometry Transform Class 10.8. User defined classes 10. 衝突検出 ODEは2つの主要なコンポーネントを持っている:動力学シ...
  • OpenGL/1.x/ステンシルバッファ
    ステンシルバッファ ステンシルバッファについてメモします。 ステンシルバッファ概要 ステンシルバッファの使い方ステンシルバッファに1を書き込む 概要 ステンシル テストを使うと、 ピクセル単位で描画する/描画しない ができます。 各ピクセルごとのステンシル値を見て描画するかどうか決定します。 ステンシルバッファの使い方 バッファ初期化 glClearStencil(0); // clear to zero glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); ステンシル テストの有効/無効 glEnable(GL_STENCIL_TEST); glDisable(GL_STENCIL_TEST); テスト方法を設定 void glStenc...
  • Qt/Qt4/OpenGL/クラス
    QtでOpenGL:クラス QtでOpenGLを扱うためのクラスを記載ます。 QtでOpenGL:クラスQGLWidget QGLShaderProgram QGLFunctions(Qt4.8) 便利クラスQVector2D QVector3D QMatrix4x4 QQuaternion QImage めも 参考 QGLWidget QGLWidgetは、OpenGLのキャンパスの役割をなします。 #include QtOpenGL   class GLWidget public QGLWidget { Q_OBJECT public GLWidget(QWidget *parent = 0); ~GLWidget();   protected vi...
  • ODE/manual/サポート関数
    9. サポート関数 9. サポート関数9.1. 回転関数 9.2. 質量(Mass)関数 9.3. 数学(Math)関数 9.4. エラーとメモリ関数 9.1. 回転関数 Rigid body orientations are represented with quaternions. A quaternion is four numbers [cos( theta /2),sin( theta /2)*u] where theta is a rotation angle and u is a unit length rotation axis. 剛体の方位は四元数で表わされる。シータが回転角度で、uがユニット長 さ回転軸である場合、四元数は[cos(θ/2)およびsin(θ/2)*u]の4つの数である。 Every rigid body also has a 3x3 ...
  • OpenGL/GLM
    GLM - OpenGL Mathematics GLMは3DグラフィックスのためのC++ライブラリです。 GLSLのAPIと類似しており扱いやすくなっています。 GLM - OpenGL Mathematicsダウンロード 簡単な使い方 ヘッダファイル 基本Identity(単位行列) Matrix Transformtranslate行列(移動) rotate行列(回転) scale行列(拡大縮小) Matrix Projectionortho frustum perspective Matrix Transform2lookAt Quaternion使い方 フルにSwizzleを使う 2つのベクトルの角度差 2次元ベクトルの回転 ダウンロード http //glm.g-truc.net/ 簡単な使い方 次のヘッダをインクルードします。 ...
  • OpenGL/1.x/テクスチャマッピング
    テクスチャマッピング テクスチャマッピング概要 詳細 まとめ 概要 テクスチャマッピングは、3D物体(ポリゴン)の表面の質感を表現するために、にテクスチャ(画像)を貼付けること。 貼り付ける物体形状とテクスチャの形状は一致している必要はありません。 大まかな手順は次のとおりです。 テクスチャとなる画像配列の準備 テクスチャ作成:画像配列をテクスチャバッファへ格納 ポリゴンへテクスチャを貼付け 画像配列は、RGBRGBRGB…とならんだデータのことです。 data[0] = Rデータ0 data[1] = Gデータ0 data[2] = Bデータ0 data[3] = Rデータ1 data[4] = Gデータ1 data[5] = Bデータ1 … OpenGLではBMPやJPEGなどから画像配列を取り出す機能は持ち合わせていませんので、変換...
  • OpenGL/1.x/Quaternionによる回転
    Quaternionによる回転 GLUT (freeglut3.7) GLM 0.9.0.6 Quaternionによる回転四元数について四元数の表現 四元数の掛け算 三次元座標の四元数による表現 四元数での回転表現 c実装メモ GLMを使ったサンプルコード 四元数について 四元数の表現 四元数Qは、 Q = (t; x, y, z) と表すことができます。 このとき、tは実数部、x,y,zは虚数部です。 四元数の掛け算 A = (a; U) B = (b; V) AB = (ab - U・V; aV + bU + U×V) ただし、「・」は内積、「×」は外積を表します。 三次元座標の四元数による表現 たとえばx,y,zで示された座標を四元数で表現すると、 P = (0; x,y,z) となります。このとき実数部はとりあえず0にし...
  • SystemC/sc_clock
    sc_clock sc_clockはモジュールにクロック信号を与えるためのシグナル。 sc_clockはsc_signalを継承しているので、基本的な扱いはsc_signalと同じ。 ただし、コンストラクタで周期とかデューティ比とかスタート時間とかを設定するようになる。 sc_clockクロック信号記述設定例 クロックの位置 テストベンチからクロックを供給する方法 クロック信号記述 sc_clock sc_clock( "信号名", 周期,[単位,] デューディ比 (初期値=0.5), スタート時間 (初期値=SC_ZERO_TIME),[単位,] スタートエッジ (初期値=true) ); 設定例 信号名CLK、クロック周期25[ns]、デューティ比0.5、立...
  • Programming/Boost
    Boost foreach lexical_cast Test Test/リファレンス
  • SystemC/TLM-2.0/Interconnect
    Interconnect Component イニシエータとターゲットの間のモデル。 ここでは、ブロッキングI/Fを利用したLTモデルを説明。 b_transoprtメソッドのみの実装を記述。そのほかのメソッドは今回は非サポート。 Interconnect Componentサンプル 構成 TOP Router サンプル b_lt_model_plus_router.tgz 構成 インスタンス関係 sc_main |== top(TOP) |== initiator(Initiator) |== router(Router) |== target[4](Target) 接続関係 initiator == router +== target[0] |== tar...
  • SystemC/Makefile
    SystemCコンパイルのためのGNU-Makefile書き方メモ 書き方なんてひとそれぞれですが、以外とMakefile書くのも面倒なのでメモ書きします. コンパイルするときは、ここからコピペで使用すればOK. SystemCコンパイルのためのGNU-Makefile書き方メモ単純なコンパイル方法 シンプルなMakefile Makefile.defsを利用するMakefile.defs Makefile 作業ディレクトリ構成 お気に入りMakefileメモ 単純なコンパイル方法 test.cpp1つをコンパイルする方法。 $ g++ -I/usr/local/systemc-2.2/include -c test.cpp $ g++ -I/usr/local/systemc-2.2/lib-linux -lsystemc -lm -o run.x test.o...
  • ANTLR3/ruby/SimpleCalc
    SimpleCalc 簡単な構文からANTLRの基礎の基礎を固める。 SimpleCalcまずは簡単な足し算器を Tokenのメソッド メモ 足し算と引き算をする まずは簡単な足し算器を SimpleCalc.g grammar SimpleCalc;   options { language = Ruby; }   prog returns [result] r1=INTEGER + r2=INTEGER { $result = $r1.text.to_i + $r2.text.to_i } ;   INTEGER DIGIT+ ;   fragment DIGIT 0 .. 9 ;   WS ( | \t | \n...
  • OpenGL/3.x/Transform
    行列変換の説明Scale Translate Rotate Frustum Perspective Ortho LookAt Transformソースコード 参考 行列変換の説明 Scale 汎用のスケール行列を生成 パラメータ x,y,z x,y,z軸各々のスケール係数 変換行列 Translate 変換行列を生成 パラメータ x,y,z 変換ベクトルのx,y,z座標 変換行列 Rotate 回転行列を生成 パラメータ angle 回転する角度 x,y,z ベクトルのx,y,z座標 変換行列 Frustum 射影行列を生成 パラメータ left, right クリップ面の左右の垂直座標 bottom,top クリップ面の上下の水平座標 zNear,zFar ...
  • ODE/ポリゴン/STLファイル
    ODEでSTLフォーマット(3D)の物体を作る方法について ODEでSTLフォーマット(3D)の物体を作る方法についてSTL読み込みクラス ODE記述 drawstuff描画 参考 3D形状フォーマットにSTLというのがあるみたいです。 それを読み込んでODE上に生成する方法をメモします。 STLはアスキーとバイナリの2種類あるようですが、ここではバイナリのみについてです。 STLは三角形メッシュソリッドなので、ODEのAPITriMesh*で簡単に扱えます。 とりあえず、STL(バイナリ)フォーマットファイルを読み込むクラスを作ってみました。 ODE記述は、demo_moving_trimesh.cppを参考にしました。 サンプル(試しにBlenderのMonkeyを描画) draw_stl_20091202.zip S...
  • ANTLRv2/始めの一歩
    ANTLR 始めの一歩(C++) パーサジェネレータの1つであるANTLRの使いはじめをメモ。 ANTLRのバージョンは、C++出力をサポートするv2.7.7を使います。 ANTLR 始めの一歩(C++)コード コンパイル 実行 コード test.g options { language="Cpp"; }   { #include iostream }   class P extends Parser;   startRule n NAME { std cout "Hello, " n- getText() std endl; } ;  ...
  • @wiki全体から「GoogleTest」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索

記事メニュー
目安箱バナー