ページ 11

描写速度について

Posted: 2010年11月05日(金) 17:38
by パコネコ
同じ描写を行う場合
DrawPixel()//点を打つ

LoadGraphScreen()//画像の描写
ではスピードに差は出ますか?

出ないもしくは誤差程度なら画像データを
DrawPixel()を使って絵を描く関数を作るツールを作ろうと思っているのですが、
どうなのでしょうか?

わかりずらい場合

DrawPixel()を1000回使うのと
DrawLine()で長さ1000の線を書くのとでは処理は同じでしょうか?

Re:描写速度について

Posted: 2010年11月05日(金) 21:25
by ookami
座標を1個1個指定しながら色を塗っていく処理を、グラフィックボードがやってくれるので、LoadGraphScreenの方が相当軽いはずです。

Re:描写速度について

Posted: 2010年11月06日(土) 00:02
by Dixq (管理人)
圧倒的な差があると思いますが、試しに計測してみたら一番わかりやすいのでは?
パフォーマンス測定はあらゆる設計前の調査で必要となりうる作業なので、こういうのは重要な作業ですね。

しかしLoadGraphScreenをDrawPixelで行う意味あります?

Re:描写速度について

Posted: 2010年11月06日(土) 00:18
by パコネコ
意味:
ただ単に画像のロードなしにしたかっただけですね…
プログラムのコードで画像をたまに書くので
(点ではなく四角形で書くことばかり)
画像を変換できそうだな~と考えた結果あまりにも差が出ると処理墜ちしそうでだったので、
質問させてもらいました。

ookamiさんやキューさんの意見ではスピード差は結構ありそうなので怖いですが…

やはりどっちにしても、はかってみる必要はあるようなので
一度試してみます。

お意見ありがとうございました。 画像

Re:描写速度について

Posted: 2010年11月06日(土) 00:32
by Dixq (管理人)
少し前に取ったデータですが、
OpenCVの画像データをDrawPixelで表示していると
(320x240)の画像が3.6[ms]
だったのに対して、ReCreateGraphFromBaseImageによる変換を通して描画すると0.5[ms]になりました。

計測した環境はCPU core2duo 3.00GHz, VGAオンボードでした。
グラフィックスアクセラレータを使えるかどうかでもかなり違うと思いますが、
1ピクセルごとに関数を呼びだすオーバーヘッドも大きいと思います。