【AS3】FlashDevelop【フリー】 (601レス)
前次1-
抽出解除 レス栞

481
(2): 2010/11/21(日)21:22 ID:MAKzmVKc(1/3) AAS
画像の描画方法に関する質問です

Sprite.graphicsに対して、clearで初期化しbeginBitmapFillで開始して
moveTo, lineTo, drawTriangles等を行っていますが、パフォーマンスが上がりません。
Graphicsクラスはバッファに直接描画しているのではなく、Excelのオートシェイプの
ようなものを生成して後で描画するようなのですが、BitmapDataのようなラスタバッファに
柔軟な描画をする方法はないでしょうか。

たとえばjava.awtならint型配列にソフトウェアレンダで書き込んで画面に出力する方法が
ありますが、ActionScript3.0でVector.<uint>に同様に書き込んでBitmapData.setVector
で出力しても、演算の方が遅すぎて余計に時間がかかってしまいます。

ドキュメントにはSprite.cacheAsBitmapをtrueにすればバッファがラスタ化するように
省2
483: 481 2010/11/21(日)21:58 ID:MAKzmVKc(2/3) AAS
>>482
ありがとうございます。試してみます。
484: 481 2010/11/21(日)22:31 ID:MAKzmVKc(3/3) AAS
全ての三角形(負荷テスト中なので1万個)を一回のdrawPathで描画してみたところ、
uvtDataにnullを指定したdrawTrianglesより1.6倍の速さで描画されました。

実際にはuvtを指定しなければならないため、drawPathだと1つの面を描画するたびに
matrixを変更してbeginBitmapFillを呼びなおすことになり、結局改善しません。
しかしmoveTo, lineToを使わないというのは有効でした、ありがとうございます。

根本的な解決には描画先がラスタになってないといけないと思うのですが、どうでしょうか。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.349s*