GPUPPURのソースコードを公開

Sourceforge.jpにGPUPPURプロジェクトを登録し、GPUPPURのソースコードを公開しました。


GPUPPURプロジェクトページ:
http://sourceforge.jp/projects/gpuppur/


GPUPPURのソースコードの特徴は

  • C++で書かれている
  • 今のところVisual C++ 2005でしかコンパイルできない
  • 変数の等の命名規則がBoostライブラリとほぼ同じ
  • STL、Boost等を使っている
  • templateがちょっと多いかも

GPUPPUR自体はまだまだ実用的なライブラリにはなってませんがGPUPPURに含まれるいくつかの部品はそこそこ使えるんじゃないかと思います。


gpuppurut

  • ウィンドウの初期化、管理、破棄やマウス、キーボードの入力処理等を楽にしてくれるライブラリ
  • OpenGLUTやDXUTをOpenGLDirect3D両方を使えるようにしたもの
  • 複数ウィンドウ、フルスクリーンに対応
  • 一応GPUPPURの開発、テスト用に作ったので機能があまり多くない


include/gpuppur/3dmath/vectorNd.hpp
template
struct VectorNd

  • N次元ベクトルテンプレートクラス
  • ベクトル計算に必要な関数は一通りあると思う
  • ベクトル同士の掛け算、割算(加減算と同様に各要素同士の乗除)とか4次元ベクトルのx,y成分を2次元ベクトルとして扱える等の機能もある
  • boost::arrayにベクトル計算関数をくっつけただけのクラスなので、reinterpret_cast(VectorNd())のようにreinterpret_castするだけでOpenGL,Direct3D,PhysX SDKの関数の引数に渡すことができる


include/gpuppur/3dmath/matrixRxC.hpp
template
class matrixRxC

  • R行C列の行列テンプレートクラス
  • 3Dで必要になる行列関連の関数は一通りあると思う
  • 行列の要素をメモリに格納する方法としてrow-major orderとcolumn-major orderがありますが、両方をサポート
  • 行列の各行や列をベクトルとして扱うことができる
  • reinterpret_castでOpenGL,Direct3D,PhysX SDKの関数の引数に渡せる


sourceforgecvsソースコードをアップロードしようと思ったのですが、ssh関連がうまくいってないのでまだアップロードしてないです。orz