Awan
Banyak permainan menggunakan awan dan sistem cuaca yang dinamis untuk membawa suasana immersive gameplay. di Metal Gear Solid 2, misalnya, bagian dari aksi terjadi di bawah curah hujan yang sangat berat, menciptakan menindas perasaan. Permainan lainnya, seperti simulator penerbangan, perlu awan untuk menawarkan pemain realisme adalah mengharapkan dari permainan. Apapun kasusnya, awan cukup penting dalam banyak genre. Mereka bisa simulasi berhasil menggunakan beberapa metode, dari yang sangat sederhana untuk awan dekoratif dengan cukup kompleks untuk permainan yang membutuhkan awan sebagai bagian dari permainan mereka.
Di satu ekstrem, kita hanya dapat menggunakan skybox, sebuah objek besar bertekstur, yang, setelah diterapkan untuk tekstur langit, dapat menjadi langit kita. Kita akan membahas metode ini dalam sekejap. Di ujung spektrum, kita bisa menerapkan sistem awan volumetrik dengan properti seperti densitas dan suhu, sehingga pesawat dapat melintasi badai dan pemain bisa merasakan goncangan yang terjadi. Seperti biasa, pilihan akan tergantung pada jumlah siklus jam Anda bersedia untuk mengabdikan untuk simulasi awan. Fitur tambahan jarang datang tanpa biaya.
Skybox dan Dome ( Awan pada suatu tempat yang terdiri dari kotak dan lingkaran )
Cara termudah untuk mendapatkan langit mendung adalah dengan menggunakan skybox atau skydome. Ini adalah kotak cukup besar atau belahan dengan normals mencari ke dalam, dan tekstur yang ubin di segitiga mewakili langit.
Untuk skybox, lima paha digunakan. Mereka umumnya disebut atas, depan, belakang, kiri, dan kanan, dan masing-masing memiliki tekstur yang unik, yang memadukan mulus dengan paha depan tetangga. Karena paha depan yang dicat dengan tidak ada pencahayaan sama sekali, jahitannya antara mereka tidak mungkin untuk melihat, dan langit terlihat seperti keseluruhan.
Satu-satunya kesulitan dalam menciptakan skyboxes adalah mendapatkan gambar sumber sehingga mereka mengintegrasikan dengan sempurna. yang terbaik cara untuk mendapatkan mereka adalah untuk menciptakan mereka dengan paket render yang memiliki generator langit prosedural. salah satu paket yang paling populer adalah Terragen, yang menciptakan lanskap penuh dengan daerah, air, dan langit.
Menggunakan Terragen, metode ini pada dasarnya terdiri dari mendefinisikan langit yang tampan, dan kemudian menempatkan kamera di pusat skenario. Empat merender ini kemudian dilakukan pada sudut yaw dari 0,90 180, dan 270. dan kemudian
render lain dihitung dengan kamera menengadah ke atas. Sebuah render keenam dengan kamera melihat ke bawah dapat berguna untuk beberapa aplikasi, namun permainan yang paling menggunakan lima gambar.
Setelah gambar dibuat dengan Terragen, itu semua soal pengujian sampai mereka benar diletakkan pada lima
paha depan. Kemudian, perasaan berada di dalam kotak harus menghilang, dan hanya langit yang terus menerus akan terlihat.
render lain dihitung dengan kamera menengadah ke atas. Sebuah render keenam dengan kamera melihat ke bawah dapat berguna untuk beberapa aplikasi, namun permainan yang paling menggunakan lima gambar.
Setelah gambar dibuat dengan Terragen, itu semua soal pengujian sampai mereka benar diletakkan pada lima
paha depan. Kemudian, perasaan berada di dalam kotak harus menghilang, dan hanya langit yang terus menerus akan terlihat.
Billboarded Awan
Teknik lain yang dapat berguna menggunakan awan billboarded, sehingga awan masing-masing dapat bergerak dan bereaksi secara independen. Awan hanya perlu disejajarkan untuk penonton dan bergerak sangat lambat. Billboarded awan bisa dikombinasikan dengan skybox dengan mudah, tapi downside adalah bahwa kita tidak dapat menyeberang dan masuk awan. yang akan membunuh ilusi volume karena kita akan menyadari awan tidak lain adalah pesawat. Kita perlu lebih baik sistem untuk membuat representasi awan realistis.
Awan Volumetric
Untuk aplikasi yang membutuhkan tampilan yang ekstra-realistis, model awan volumetrik dapat diimplementasikan, sehingga pemain dapat memasukkan petir, dibenamkan ke dalam kabut volumetrik, dan sebagainya. Berhati-hatilah, meskipun Volumetric awan sistem memerlukan sejumlah besar sumber daya, baik dalam CPU dan GPU, dan dengan demikian dapat mengurangi kinerja keseluruhan judul.
Ada berbagai pendekatan awan volumetrik. Jadi, saya akan mengekspos sistem awan generik yang dapat disesuaikan atau diperpanjang sesuai dengan banyak kegunaan.
Komponen pertama yang kita perlukan adalah struktur data untuk menahan awan. Hal ini dapat berkisar dari yang sangat sederhana dengan sangat kompleks. Di sisi sederhana, kita bisa melakukan daftar jalur 3D dan jari-jari, dan menerapkan awan sebagai sebuah isosurface bahwa kami akan mengevaluasi per frame. Para kekeruhan titik dalam ruang akan dihitung dengan menggunakan varian dari fungsi lapangan. Pendekatan ini dapat bekerja dengan baik untuk sistem dengan sedikit elemen mana jumlah generator awan relatif kecil.
Jika kita perlu representasi yang lebih akurat, kita bisa membagi dunia permainan kami menjadi struktur voxel, dengan setiap node voxel mewakili kepadatan awan pada saat itu. Meskipun sistem voxel kadang-kadang ditolak karena jejak memori relatif besar mereka, sistem awan dapat diberikan efisien menggunakan voksel dengan biaya yang wajar. Itu semua tergantung pada memilih ukuran sel yang tepat. Sebagai contoh, skenario km 5x5, sampel dari permukaan air sampai 500 m di ketinggian (cocok untuk kota-kota dan paling luar game) pada resolusi yang homogen dari 50 meter per sampel (sampel masing-masing menjadi satu byte) hanya membutuhkan waktu 100KB. Jelas, sistem voxel harus dikontrol dengan hati-hati karena mereka cenderung untuk tumbuh, tapi itu tidak lantas membuat mereka tidak layak.
Bagi mereka situasi di mana sistem voxel terlalu mahal, dua tingkat fraktal terkompresi sistem awan dapat diimplementasikan. Berikut gagasan adalah untuk memiliki sistem resolusi rendah voxel dan "detail" voxel, yang kami tempat di dalam setiap sel-sel voxel yang lebih besar itu, sangat mirip dengan rekursi ditemukan dalam sistem fraktal. Karena kita akan interpolasi voxel rinci nilai sesuai dengan empat penjuru, self kesamaan-sel yang lebih besar akan tetap diperhatikan, dan sistem awan besar akan cocok dalam setiap kendala memori.
Adapun bagian rendering algoritma, awan volumetrik paling baik ditangani sebagai bergerak sangat lambat sistem partikel. Elemen awan hanya billboard dengan nilai opacity sangat rendah, dan oleh layering mereka, kita mencapai rasa kepadatan kami bertujuan untuk. Kita bahkan dapat menggunakan tabel warna untuk memastikan bahwa awan terlihat realistis atau bahkan ekstrak warna dari pendekatan semivolumetric; yaitu, melukis setiap elemen dalam warna sebanding dengan penjumlahan kerapatan awan di atasnya. Dengan cara ini kita dapat mewakili gradasi warna ditemukan dalam berbagai jenis awan, dari lapisan cirrus yang sangat murni untuk badai abu-abu gelap.
Mark Harris dari Universitas North Carolina di Chapel Hill menyarankan menggunakan penipu untuk mengurangi kedalaman kompleksitas dan fill rate yang dibutuhkan untuk membuat awan. Setelah semua, jangan lupa kita berbicara tentang partikel sistem, dan ini memakan banyak sumber daya sistem. Membuat awan realistis bisa memakan waktu antara 1.000 dan 5.000 partikel, dan itu jelas bukan apa yang ingin Anda membuat pada basis per-frame: Biaya adalah terlalu tinggi. Dengan demikian, kita dapat menyingkat awan ke IBRs, yang adalah apa penipu adalah semua tentang. Kita membuat
awan untuk tekstur dan menggunakannya sampai kita telah bergerak secara
signifikan, dan dengan demikian kita perlu recompute penipu tersebut. Dengan menggunakan penipu, kita secara dramatis mengurangi biaya komputasi awan sistem kami. Semua kita perlu lakukan adalah membangun kesalahan metrik yang mengatur saat ketika kita akan recompute awan.
Tidak ada komentar:
Posting Komentar