ポリゴンレンダラ - その10 [プログラミング]
前回今回の計算にvDSPが使えるか、使えるとしたらどうすればいいか、を考えた。劇的に速くなる、ということはあまりなさそう、ということぐらいはわかった。ということで実際に測定してみよう。今回のようなパフォーマンスが問題になるアプリでは、vDSPが速いとAppleが言ってるから、というだけでそれに最適化したりせず、具体的に測定してみることが重要。
やってみると、ごく当たり前の結果と、思いもしなかった結果が得られた...
やってみると、ごく当たり前の結果と、思いもしなかった結果が得られた...
ポリゴンレンダラ - その9 [プログラミング]
前回vDSPにあるFFT以外の関数群をおさらいした。ごちゃごちゃと雑多なものが含まれている。vDSPのFFTは以前驚くほどのスピードを出していたが、それ以外の関数が同じくらいのパフォーマンスがでるかどうかは試していないのでわからない。普通に考えれば単純計算を実行する関数が多いのでFFTほどのパフォーマンス差は出ない、と考えるのが素直な姿勢だろう。
パフォーマンスの単純比較をする前に、今回のポリゴンレンダラに使う計算のうち、どの部分にどんなvDSPの関数が使えそうかをざっくりと見てみることにする。
パフォーマンスの単純比較をする前に、今回のポリゴンレンダラに使う計算のうち、どの部分にどんなvDSPの関数が使えそうかをざっくりと見てみることにする。
ポリゴンレンダラ - その8 [プログラミング]
前回ポリゴンの集合に対して輪郭線を引く方法を考えた。今回の僕の最終的な目的のためには計算が素早くできないといけない。ひとまわりの計算がディスプレイのリフレッシュの間に終わることが望ましい。
ということで、今日は何を計算するかをまとめて、ちょっと実装に先回りして効率のいい計算のためにvDSPを使うことを考えてみる。
vDSPと言えばFFTなんだけど、それ以外の関数もたくさん含まれている。それでどんなことができるのか見通しがよくないので簡単に整理した表を作った。表になにが書いてあるかは続きを読んで欲しい。
ということで、今日は何を計算するかをまとめて、ちょっと実装に先回りして効率のいい計算のためにvDSPを使うことを考えてみる。
vDSPと言えばFFTなんだけど、それ以外の関数もたくさん含まれている。それでどんなことができるのか見通しがよくないので簡単に整理した表を作った。表になにが書いてあるかは続きを読んで欲しい。
ポリゴンレンダラ - その6 [プログラミング]
ポリゴンレンダラ - その5 [プログラミング]
片付け感の強い数学のまとめ。前回は同次座標を使って立体を平面に射影するマトリクスの具体的な形を求めた。
今日はちょっと追加作業をして、面の表示色を求めるためのPhongモデルをおさらい。片付け感は延長する。
今日はちょっと追加作業をして、面の表示色を求めるためのPhongモデルをおさらい。片付け感は延長する。
ポリゴンレンダラ - その3 [プログラミング]
効率的なPDFベースのポリゴンのレンダラを実装しようとしている。今回は効率優先なので前回MathematicaのGraphicsComplexというデータ構造をパクることにした。最初からあまり実装に近いところに突っ込むとぐちゃぐちゃになって投げ出すということになりかねないので、注意しないといけない。
今日はまた座標変換のための専用の数学をまとめておく。特に目新しいことはなくて、どうしても退屈なベクトルを使った幾何学の話になるけど、これをやっておかないと実装のときにやっぱりぐちゃぐちゃになってしまうのでやっておく。
今日はまた座標変換のための専用の数学をまとめておく。特に目新しいことはなくて、どうしても退屈なベクトルを使った幾何学の話になるけど、これをやっておかないと実装のときにやっぱりぐちゃぐちゃになってしまうのでやっておく。
MacOS Xの数値計算用API [プログラミング]
先日から始めたポリゴンレンダラの実行効率のいい実装のためにひさしぶりに調べ物をしている。MacOS Xで数値計算を実装するならAccelerateフレームワークを使うのが一番手っ取り早くて効率もいい。MacOS XではAccelerateフレームワーク以外にはFFTWとgslがフリーであって、それ以外と言えばインテルのMKLと、NAGのポートぐらいだろう。Windowsではどうなんだろ。全然知らないんだけど、もっといい選択肢がいっぱいあるんだろうな。
MacOS XではAccelerateフレームワークは10.0から標準でインストールされるので使えるなら使ったほうがいい。またiOS6/MacOS X10.7からは完全に同じ呼び出しが両方のOSで使えるようになっている。
MacOS XではAccelerateフレームワークは10.0から標準でインストールされるので使えるなら使ったほうがいい。またiOS6/MacOS X10.7からは完全に同じ呼び出しが両方のOSで使えるようになっている。