大きな値(800 x 600のような)を画面に表示するには、Love2dに効率的な方法がありますか?私はたくさんの矩形(ひどく遅い)を作成するか、imageDataを作成して描画する(テーブル値がすべてのフレームで変更されていない場合は問題ありませんが、そうすることを試みました)。ありがとう!Love2dテーブルから描画
1
A
答えて
1
余計なデータなしで値を計算することができれば、シェーダーを作成して、物事が描かれている間に計算することができます。
これでうまくいかない場合、ImageDataの使用は通常、デフォルトよりもはるかに高速に行うことができます。まず、フレームごとにg = love.graphics.newImage(image_data)
を呼び出していないことを確認してください。一度作成してから、g:refresh()
と呼び出してください。
次に、:mapPixel
はCからLua(1ピクセルにつき1回)を呼び出すため、実際には遅く、かなりオーバーヘッドです。 Luaでそれを書き直すか、または:setPixel
(おそらくは:getPixel
)のプレーンループを使う方が速いです。
それでも遅すぎる場合、最後の問題は次のとおりです。LuaJITは、通常のLua APIで提供されているC関数への呼び出しをJITコンパイルできません。しかし、これらは、ffiを介してデータ構造を記述し、LuaJITに直接アクセスさせる場合に置き換えることができます。スライムは愛のためにこれをしました-0.9(code on github)。ちょうどrequire
そのファイルとそれは遅い機能を置き換えます、そして、すべてがより速くすべきです。私は100%確信していませんが、私はすでにこれを現在のバージョン(0.10)で使用していると思いますが、それでも動作します。 (ImageDataの内部フォーマットが変更された場合、それは中断されますが、修正するのは比較的簡単でなければなりません。他の人がコードを更新してどこかに投稿する可能性があります)
関連する問題
- 1. Android、メインアクティビティからの描画
- 2. 式から描画する
- 3. CALayersからの画像を描画
- 4. jQueryを使用してテーブルを描画
- 5. カスタムボタンからポリゴンの描画を開始
- 6. データセットからのグラデーションの描画
- 7. 子スレッドからのウィンドウへの描画
- 8. Androidでのサービスからの描画
- 9. JComboBoxコントロールからの再描画
- 10. Java描画イメージ(Int配列から)
- 11. ファイルパスからビットマップ/描画ファイルを作成
- 12. DLLからのXNAテキストの描画
- 13. コーディネートファブリックjsからのパスを描画
- 14. PaintCode StyleKitからUITabBarItemへの描画
- 15. スプライトのベクトルからの描画SFML
- 16. DataTables:最初にテーブルを描画し、サーバー側からデータを入力します
- 17. パスを描いてからhtml5で画像を描く
- 18. 描画領域に画像を描画
- 19. Love2dが画面上のオブジェクトを移動する
- 20. love2D love.physicsと体に画像を設定する
- 21. パネル上にHTMLテーブルを描画しますか?
- 22. LOVE2D:ポイント(カーソル)とのスケール(ズーム)
- 23. ボタンアクションイベント内から画面を更新/再描画する方法
- 24. URLから画像をダウンロードしてキャンバスに描画する - Android
- 25. gpuから直接画面上に描画する
- 26. データURLからキャンバスへの画像の描画
- 27. Android:SDカードの既知のパスからImageViewに画像を描画
- 28. wxPython:ファイルからベクトルベースの画像を描画する
- 29. Android:描画可能なフォルダから画像をビジュアルにする
- 30. ビデオからキャンバスへのHTML5描画画像