cocos2dxでシェーダを使ってみた その2

iOS Developer Programのアクティベートコードがまだ来ない。
きっとツンデレのツンモードだから素気ない、ご機嫌斜めなのであろう、
と、無理矢理思い込むことで精神の平静を保っている状態。
それとも金を振り込んだユーザをしばらく放置するのが
Apple流のオシャレだったりするのだろうか?
俺がオシャレを理解できていないのか?


仕方ないので環境構築は保留にして、実機での速度の調査の方をやってた。
前回作ったシェーダを毎フレーム呼び出して、どのくらい速度が出るか試した。
作ったコードはこれ。
https://gist.github.com/t-takasaka/d221cb7d387456d2a975

スプライトやテクスチャの生成処理の時間を取りたくなかったので
updateの中でcreateするのでなくて、予めメンバ変数に持たせて、
initでスプライトの生成とシェーダの紐付けまで済ませておいた。
updateではスプライトに紐付け済みのシェーダを取ってきて、
ブラーの幅を少しずつ増やした後、スプライトに再設定することにした。
(画面が変わらないと描画が上手くいってるのか分からんので)

結果としては、android実機でも60fps出ているっぽい。
ぽいのだが、実記とPCで明らかに画面の変化の速度が違う。
cocos2dxの機能で画面左下にfpsspf(1フレームに使った秒数)が
表示されるのだけど、これの計算が合っていない(?)気がする。
具体的には60fps/0.28spfという感じの数値が出てる。
でも60fpsなら最高でも0.0166spf以下に収まるものじゃないんだろか?
それとも俺がspfを理解できていないのか? 
spfもオシャレも理解できていないのか?

fpsが俺の想定しているものと違うみたい。
想定外の事態に動揺を隠し切れない。
俺が今までの人生で信じてきたfpsは一体何だったのか。

timeval tv;
gettimeofday(&tv, nullptr);
m_radius = (int)((tv.tv_usec / 1000000.0) * MAX_RADIUS);

update内でブラーの幅を設定する箇所を変えたら実機だと処理落ちしてる。
spfが上がらないことを目安とすべきらしい。
そして特に高速化してないシェーダだと実機では厳しいということも
分かったので今後の課題にしたい。

シェーダのfor文の終了値の件、定数しか使えない仕様っぽい。
取り合えずopengl es 2.0では。マジか。

そんなことはなかった。
http://d.hatena.ne.jp/t_takasaka/20140913/1410628035