Render peta 2D kotor

10

Saya terus mendengar orang-orang berbicara tentang "rendering kotor" ketika datang ke rendering peta untuk HTML5. Saya sudah mencari Google dan mencari GameDev tentang hal itu tetapi tidak banyak tentang hal itu.

  • Apa itu sebenarnya?
  • Bagaimana cara mengimplementasikannya dengan benar?
foobar
sumber

Jawaban:

12

Ini berarti bahwa ketika latar belakang digambar, tidak semuanya digambar ulang setiap bingkai. Ketika sesuatu di peta bergerak, area yang digunakan untuk ditempati ditandai sebagai kotor . Kemudian ketika menggambar, Anda tahu Anda hanya perlu menggambar ulang bagian latar belakang itu. Ini bermanfaat karena Anda hanya perlu menggambar ulang area yang tidak ditampilkan sebelumnya.

Jadi ini benar-benar hanya menguntungkan ketika Anda tidak memiliki banyak hal bergerak, jika tidak, menghabiskan lebih banyak waktu untuk mencari tahu apa bidang baru untuk menggambar daripada jika Anda hanya menggambar seluruh latar belakang. Ini tidak terlalu umum lagi karena platform biasanya cukup cepat untuk menggambar semuanya tanpa masalah. Karena ini benar-benar hanya fitur pengoptimalan, saya akan mengabaikannya untuk saat ini, dan kembali ke sana jika Anda menemukan bahwa kinerjanya kurang.

MichaelHouse
sumber
6

Rendering dalam sebagian besar game berlangsung dalam satu loop (loop game) dan di setiap iterasi dari loop game seluruh backbuffer dihapus (dalam hal ini kanvas Anda) dan digambar ulang dari awal.

Istilah rendering kotor mengacu pada teknik di mana alih-alih membersihkan seluruh kanvas setiap frame, Anda hanya menghapusnya berdasarkan permintaan (yaitu hanya ketika sesuatu berubah dalam adegan) dan mungkin hanya sebagian darinya (yaitu hanya bagian di mana sesuatu berubah ).

Proses menandai hanya sebagian kanvas Anda untuk digambar ulang adalah apa yang dimaksud dengan kotor (yaitu bagian kanvas itu kotor dan perlu digambar ulang tetapi yang lainnya masih bersih dan tidak boleh disentuh ).

Saya tidak tahu apakah ada cara khusus bagi Anda untuk mengimplementasikan ini dalam HTML5, tetapi saya menemukan sumber ini yang mungkin memberi Anda beberapa ide.

David Gouveia
sumber