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に関し理解を深める