So-net無料ブログ作成
検索選択
プログラミング ブログトップ
前の10件 | -

ブロックのおかしな動作 [プログラミング]

前回完成した球面非球面のBezier曲線近似。思ったよりうまくできたので、さっそく会社の資料の中に入れた。先日それを会社の別の人が自分の資料のためにpdfからコピーしてぱわぽに貼った。それがなぜかZEMAXのビットマップよりぐにゃぐにゃして醜い。しかもたんなるpdfのビットマップスナップショットよりも汚い。縦横比も微妙におかしい。見せてもらってびっくりした。

ぱわぽってどうなってるんだ????おかしいんじゃないのか?

もう、ぱわぽでの問題はうんざりなので放っておくとして、OS Xのブロックでのおかしな動作について....

続きを読む


コーディングスタイル [プログラミング]

こないだからやり始めたBezier曲線による近似。もともとは光線追跡の自分の古いコードを見直さなければならなくなったからなんだけど、古いといってもたかだか2年とちょっとほど前のCocoa/Objective-Cのコード。僕は偏屈で頑固な年寄りなのでたかだか2年前なら違わないだろうと思っていたら、今の自分のコーディングスタイルと全然違っていて、見直すのが煩わしくなって、全部書き直すことにした。どこが違うかというと、自分でも面白いぐらい....

続きを読む


ポリゴンレンダラ - その14 [プログラミング]

こないだからやってたポリゴン表示アプリの実装をそろそろ始めたい。そのアプリではモデリングやその編集はできない(もちろんするつもりはない。そんなの大変)ので、なんらかのできあがったモデルをファイルから読み込むことになる。最初はそのファイル形式を適当に決めようと思ってたんだけど、ちょうどいいファイル形式があることをたまたま知った。そこでじぶんかってな形式ではなく、そのすでにあるファイル形式を読み込めるようにすることにした。そのファイル形式の話。

続きを読む


ポリゴンレンダラ - その13 [プログラミング]

一番最初に座標変換をまとめたけど、あれではまずいことがわかった。 あれ自身は間違っていないのだけど、今回のアプリにはふさわしくない点があることがわかった。なぜふさわしくないか、は出来上がったときに説明する。ちょっとやり直し。

続きを読む


なぜブロックなのか? - 後編 [プログラミング]

昨日GCDでブロックを使うといかに簡単になるか、というのをコードの例を使ってブロックを使わない場合との比較で示してみた。

今日はその続きで、ブロックを動かすためにコンパイラが何をしているか、ということからプログラマにとってのブロックの位置づけを考えてみる。

続きを読む


なぜブロックなのか? - 前編 [プログラミング]

OS XとiOSでマルチスレッドなアプリを作るためにGCD(Grand Central Dispatch、Appleによる日本語pdf)というCから呼べる機能がOS Xでは10.6から追加された。これはdispatchというライブラリとC言語に「ブロックAppleによる日本語pdf)」という仕様を追加して実現されている。GCDは便利なんだけど、Cの文法にいわゆる「クロージャ」というCとは異質な仕様を追加してまでやるべきことなのか?という疑問が湧いた。

「ブロック」について今日ともう1回かけて考えてみる。今日は例を使ってシングルスレッドなコードをGCDとブロックを使ってマルチスレッドにすること、そしてもしGCDがブロックを使わないとしたらどうなるか、ということを考えてみる。

続きを読む


ポリゴンレンダラ - その12 [プログラミング]

こないだのベンチマークでは倍精度浮動小数点(double)を主に比べて単精度はおまけにしたのか、最終的に画面に表示するだけなら単精度で十分で、そっちのほうがメモリ効率も高いので単精度をメインにすべきではないか、という意見は当然である。

これがなぜかというとそれはOS Xのせいである。

続きを読む


ポリゴンレンダラ - その11 [プログラミング]

前回vDSPやCBLASの効率の単純比較をした。比較したのはN×NN×Mのマトリクスの積のうちNが4という非常に小さな場合だった。今回のポルゴンレンダラにはこれで十分なのでこの結果だけで判断して実装すればいい。でもそれだけでは面白くないのでNがもっと大きい場合も比較してみた。そうするとマトリクスの積なんていう単純な計算なのに思いがけない結果が出た。

やっぱりBLAS/CBLASはすごい。

続きを読む


ポリゴンレンダラ - その10 [プログラミング]

前回今回の計算にvDSPが使えるか、使えるとしたらどうすればいいか、を考えた。劇的に速くなる、ということはあまりなさそう、ということぐらいはわかった。ということで実際に測定してみよう。今回のようなパフォーマンスが問題になるアプリでは、vDSPが速いとAppleが言ってるから、というだけでそれに最適化したりせず、具体的に測定してみることが重要。

やってみると、ごく当たり前の結果と、思いもしなかった結果が得られた...

続きを読む


ポリゴンレンダラ - その9 [プログラミング]

前回vDSPにあるFFT以外の関数群をおさらいした。ごちゃごちゃと雑多なものが含まれている。vDSPのFFTは以前驚くほどのスピードを出していたが、それ以外の関数が同じくらいのパフォーマンスがでるかどうかは試していないのでわからない。普通に考えれば単純計算を実行する関数が多いのでFFTほどのパフォーマンス差は出ない、と考えるのが素直な姿勢だろう。

パフォーマンスの単純比較をする前に、今回のポリゴンレンダラに使う計算のうち、どの部分にどんなvDSPの関数が使えそうかをざっくりと見てみることにする。

続きを読む


前の10件 | - プログラミング ブログトップ
メッセージを送る