Hitungan Vertex
Saya telah meneliti "Hitungan Poligon" selama lebih dari 15 tahun. Tidak ada cara ketat untuk mengetahui berapa batasan Anda, terutama dengan perangkat lunak dan perangkat keras yang lebih modern. Batas jauh lebih berguna pada mesin yang hanya mendukung 4.000 segitiga untuk seluruh level. Sekarang, Anda akan menemukan sebagian besar objek di lingkungan permainan akan melebihi itu secara individual.
Yang terpenting adalah apa yang dilakukan mesin dengan strip poligon.
Saat mesin membuat setiap model, dibutuhkan koordinat UV yang dipetakan, tekstur / bahan yang ditampilkan pada segitiga, dan membuat strip segitiga. Dalam kebanyakan kasus, kipas segitiga dipecah menjadi strip segitiga terpisah per segitiga. Ini meningkatkan jumlah strip segitiga, menurunkan kinerja.
Contoh utama untuk memperbaiki ini adalah bagian atas datar silinder. Paket 3D umumnya mengatur kipas segitiga dengan simpul di tengah. Saya menghapus tepi dan simpul tengah, lalu membuat paha depan. Ini kemudian harus melakukan triangulasi menjadi strip segitiga tunggal alih-alih beberapa strip wajah tunggal, tanpa mengubah jumlah poligon.
Ambil hitungan poligon sebagai panduan, dan perhatikan bagaimana Anda membuat model, dan UV Map mesh. Kurang perpecahan di jala ketika Pemetaan UV sering kali bisa lebih bermanfaat.
Selanjutnya, pertimbangkan apa yang bisa dipalsukan dengan peta normal. Wajah datar dengan banyak detail case biasanya dipetakan secara normal. Kurva hanya perlu bulat di mana Anda dapat melihat siluet. Saat melihat wajah melengkung ke depan, Anda tidak akan melihat perbedaan antara assett resolusi tinggi Anda, dan assett resolusi game. Siluet inilah yang membuat perbedaan dalam model Anda ketika peta normal terlibat. Silhouette sekarang dapat dimodifikasi dengan DirectX 11, menggunakan pemetaan tessellation dan perpindahan.
Desain permainan
Pertimbangkan hal berikut saat merancang game Anda:
- Tentukan jenis permainan (mis. Aksi / petualangan / balap / scroller)
- Tentukan jenis tampilan (mis. Orang pertama / orang ketiga / ortografis)
- Tentukan kekuatan komputasi untuk pasar Anda. (mis. penggemar / gamer kasual)
- Buat gaya visual yang ingin Anda capai. Apakah Anda ingin terlihat seperti, misalnya, Crysis 2, Borderlands, Bloodforge atau Gears of War?
- Tentukan objek penting untuk pemain. Apakah alat peraga Anda akan menjadi pusat fokus atau hanya latar belakang?
- Apakah jerat visual juga merupakan tabrakan?
Dengan menggunakan gim dan jenis tampilan, tentukan kedalaman tampilan seperti apa. Apakah Anda akan melihat objek yang jauh, dan dengan kejelasan apa? Apakah Anda membuat sesuatu dengan tampilan terbatas, seperti penembak koridor? (mis. Gears of War) Apakah Anda membuat sesuatu bebas berkeliaran dengan lanskap terbuka? (mis. Skyrim)
Setelah Anda tahu seperti apa tampilannya, Anda dapat meneliti game yang serupa.
Animasi kemudian akan membatasi kemampuan Anda untuk meningkatkan jumlah poligon. Sambungan statis, apa pun yang tetap berada di posisi yang sama paling murah pada GPU dan CPU. Apalagi jika mereka bukan benda fisika. Untuk objek fisika, Anda sering dapat membuat lambung tabrakan sederhana, dan jerat visual yang kompleks. Tidak ada interaksi yang cukup di sebagian besar game untuk melihat perbedaannya. Animasi menggerakkan model Anda 3-Dimensi, dengan beberapa tulang per titik, memadukan antara bobot masing-masing. Ini bisa mahal pada waktu CPU, yang dapat berbenturan dengan AI dan fisika berbasis perangkat lunak. Semakin banyak simpul yang dipengaruhi oleh jumlah tulang di seluruh model akan menurunkan kinerja CPU. Ini adalah alasan lain mengapa karakter permainan dianggap "seni". Sangat sulit untuk menentukan batas poligon.
Teladan saya
Saya menggunakan UDK, membuat penembak orang ketiga yang berjalan lambat, dengan jumlah pemain dan NPC terbatas di layar setiap saat. Untuk ini, saya menargetkan sekitar 10.000 segitiga per pemain, 5.000 segitiga untuk tipikal, musuh generik, dan jika saya membuat karakter gaya "bos", sekitar 15.000. Selain itu, senjata untuk orang ketiga sekitar 4.000 segitiga akan muncul sangat rinci. Kendaraan sekitar 10.000 segitiga. Semuanya akan membutuhkan Level of Detail, karena saya memerlukan jarak tampilan yang jauh.
Jika membuat orang pertama, saya akan mendasarkan lengan pada sekitar 2.000 segitiga, senjata sekitar 5.000 segitiga, dengan pemetaan normal untuk masing-masing.
Kesimpulan
Inilah yang mungkin berarti "Itu tergantung", tetapi saya pikir itu mungkin mengklarifikasi beberapa hal yang orang sering bertanya-tanya.
- Gunakan jumlah poligon sebagai panduan.
- Lihatlah area yang bisa dipetakan secara normal alih-alih dimodelkan.
- Hati-hati saat menempatkan kipas segitiga, jika mungkin, buat strip.
- Gunakan sedikit split pada mesh saat memetakan UV, perhatikan strip.