chaos with coffee

A blog loved chaos.

slowFastRendering

oFのサンプル勉強 2つ目

slowFastRendering
座標が変化する大量のパーティクルのレンダリングを行う。
また複数レンダリング手法での速度を比較をしている。

遅め : OpenGLのglVertex2f
→頂点ひとつ一つを描画
高速 : 頂点配列
→配列に頂点を設定し一括で描画
非常に高速 : VBO (頂点バッファオブジェクト)
→あらかじめ頂点データをOpenGL側に作成しておき、グラフィクスカード側で演算を行う手法

□やってること
・座標移動パラメーターの「speeds」を変化させ、パーティクルの座標「points」に加算し動きを表現している。

 y座標の移動
 speeds[i].y += 0.04; // some grav

 減速
 speeds[i] *= 0.98;
 →x、y両方に?


□学んだこと
・points.size()でパーティクルの数(配列の要素数)を取得できる。
・ofVec2fクラスの変数同士だとx、yを意識することなく+-できる。

・if(points[i].x > ofGetWidth()) points[i].x = 1;
 画面領域を超えた時の設定。
 移動パラメーターはspeeds変数で更新しているため、pointsをリセットできる。


□疑問点
vector <ofVec2f> speeds;
の変数宣言の仕方が見慣れない


□課題
・ofVec2fクラスの関数の内部処理
 mouseVec.length()
 mouseVec.normalize();

 ノーマライズについて
 http://of.studio23c.com/index.php/archives/256

・頂点配列、VBOに関し理解を深める