Saya memiliki peta isometrik tempat saya meletakkan berbagai gambar. Sebagian besar gambar akan muat di atas ubin tunggal, tetapi beberapa gambar sedikit lebih besar. Sebagai contoh, saya memiliki tempat tidur ukuran 2x3 ubin.
Ini menciptakan masalah ketika menggambar objek saya ke layar karena saya mendapatkan beberapa ubin yang keliru menumpuk ubin lainnya.
Dua solusi yang saya tahu adalah membagi gambar menjadi segmen ubin 1x1 atau menerapkan algoritma urutan gambar saya sendiri, misalnya dengan menetapkan setiap gambar nomor. Gambar dengan angka 1 diambil lebih dulu, lalu 2, 3 dll.
Adakah yang punya saran tentang apa yang harus saya lakukan?
Sepertinya saya suka memisahkan gambar isometrik sangat tidak jelas. Bagaimana Anda memutuskan bagian gambar mana yang 'berada' di ubin tertentu? Saya tidak dapat membagi semua gambar saya secara manual.
Algoritma draw order sepertinya pilihan yang lebih baik tetapi saya tidak yakin apakah itu akan mudah diimplementasikan. Saya tidak bisa memecahkan, di kepala saya, bagaimana menghadapi situasi di mana Anda mengubah indeks dari satu gambar, yang menyebabkan ketukan pada banyak gambar lainnya. Jika ada yang punya sumber daya / tutorial tentang ini saya akan sangat berterima kasih.
Bagilah benda-benda Anda menjadi 1 × 1 × 1 kubus, dengan menetapkan masing-masing gambar kubus dari bagian-bagian objek yang secara fisik akan berada di kubus itu.
Ini mudah jika Anda mulai dengan objek 3D aktual dan merendernya ke 2D. Jika Anda menggambar objek secara langsung dalam 2D (atau jika Anda memiliki seni yang perlu Anda pisahkan), dibutuhkan upaya manual. Untungnya, perpecahan tidak perlu tepat, selama Anda memastikan bahwa tidak ada bagian gambar yang ditetapkan untuk tumpahan kubus yang diberikan di luar area heksagonal yang kubus 1 × 1 × 1 padat pada posisi itu akan menutupi. Mungkin membantu membuat hamparan yang menunjukkan garis besar setiap kubus sebagai lapisan tambahan di editor grafis Anda.
Kemudian Anda hanya menetapkan prioritas untuk setiap kubus sebagai p = x + y + z (dengan asumsi bahwa ketiga koordinat meningkat ke arah kamera) dan membuat kubus dalam urutan naik berdasarkan prioritas.
Berikut adalah contoh cepat berdasarkan gambar ini dari Wikimedia Commons (oleh Phasmatinox / Allefant , digunakan di bawah lisensi CC-By-SA 3.0 ):
Laci laci di gambar mengambil dua ubin, dan saya telah menggambar batas-batas ubin (hexagon merah) di atasnya. Bagian-bagian dari gambar yang terletak di dalam setiap segi enam harus ditetapkan untuk ubin yang sesuai; bagian di mana segi enam tumpang tindih dapat ditugaskan ke salah satu petak (atau bahkan untuk keduanya, jika Anda suka), karena pilihan tidak akan mempengaruhi hasil akhir.
Perhatikan bahwa Anda mungkin perlu menguraikan algoritma sederhana ini jika Anda dapat memiliki beberapa objek dalam satu ubin, dinding / lantai di antara ubin, atau benda (seperti orang) bergerak dengan lancar di antara ubin. Dinding dan lantai cukup sederhana untuk ditangani: mereka dapat digambar kapan saja setelah isi ubin ada di depan (dari sudut pandang kamera) dan sebelum ubin ada di belakang. Ini juga merupakan aturan praktis yang berguna untuk objek yang bergerak di antara ubin; perlakukan mereka seperti dinding di antara ubin-ubin itu.
Adapun beberapa objek dalam ubin, kadang-kadang - itu cukup sederhana: misalnya, jika Anda memiliki buku yang terletak di atas dada di gambar, itu harus jelas diambil setelah permukaan itu terletak. Namun, berbagai hal bisa menjadi lebih rumit jika Anda, katakanlah, memiliki benda yang dapat diduduki orang. Misalnya, jika seseorang sedang duduk di bangku, menghadap jauh dari kamera, maka tubuh orang tersebut harus ditarik setelah bangku tetapi kaki mereka (yang berada di belakang bangku dari kamera) harus ditarik sebelum itu. Salah satu solusi, dalam hal ini, adalah dengan membagi kaki orang yang duduk menjadi komponen yang terpisah dengan posisinya sendiri (baik di ubin yang berdekatan, atau di antara ubin).
sumber
Ini dapat membantu Anda untuk mempartisi objek berdasarkan tipe atau ketinggian. Misalnya, lansekap (lantai, dinding) harus digambar sebelum benda (tempat tidur). Juga, karena perspektif isometrik, petak dengan ketinggian lebih rendah harus digambar sebelum petak yang lebih tinggi.
Juga, jika Anda menggunakan penomoran indeks (pemesanan Z, sebenarnya), saya sarankan menggunakan celah di antara angka - jangan membuat lantai
1
dan tempat tidur Anda2
. Gunakan sesuatu seperti lantai =10
dan tempat tidur =20
atau100
atau sesuatu yang lain, sehingga Anda dapat "memasukkan" barang-barang di tengah tanpa menambah domino semua yang lain.sumber