Saya baru mengenal gamedev dan Blender, dan ada sesuatu yang tidak bisa saya goyangkan:
Di Blender, render tunggal (bahkan menggunakan renderer Cycles yang lebih canggih) dapat memakan waktu hingga 45 detik di mesin saya. Namun yang jelas, dalam sebuah gim, Anda dapat memiliki grafik yang luar biasa, dan karenanya rendering jelas terjadi terus menerus, beberapa kali sedetik dalam waktu nyata.
Jadi saya juga bertanya-tanya apa itu putuskan, mengenai bagaimana "lambat" rendering Blender tampaknya, versus bagaimana mesin game mencapai rendering real-time (atau hampir real-time).
Jawaban:
Render waktu-nyata, bahkan render waktu-nyata modern, adalah paket trik, pintasan, peretasan, dan perkiraan.
Ambil bayangan misalnya.
Kami masih belum memiliki mekanisme yang sepenuhnya akurat & tangguh untuk menampilkan bayangan waktu nyata dari sejumlah lampu dan objek kompleks yang berubah-ubah. Kami memang memiliki banyak varian pada teknik pemetaan bayangan tetapi mereka semua menderita dari masalah yang terkenal dengan peta bayangan dan bahkan "perbaikan" untuk ini benar-benar hanya kumpulan penyelesaian dan pertukaran (sebagai aturan praktis jika Anda melihat istilah "kedalaman bias" atau "offset poligon" dalam apa pun maka itu bukan teknik yang kuat).
Contoh lain dari teknik yang digunakan oleh penyaji waktu nyata adalah prapenghitungan. Jika sesuatu (misalnya penerangan) terlalu lambat untuk dihitung secara waktu nyata (dan ini dapat bergantung pada sistem penerangan yang Anda gunakan), kami dapat melakukan pra-perhitungan dan menyimpannya, maka kami dapat menggunakan data pra-perhitungan secara nyata -waktu untuk peningkatan kinerja, yang sering kali mengorbankan efek dinamis. Ini adalah memori langsung vs pengorbanan komputasi: memori seringkali murah dan berlimpah, komputasi sering tidak, jadi kami membakar memori ekstra sebagai ganti penghematan pada penghitungan.
Penyaji offline dan alat pemodelan, di sisi lain, cenderung lebih fokus pada ketepatan dan kualitas. Juga, karena mereka bekerja dengan geometri yang berubah secara dinamis (seperti model saat Anda sedang membangunnya), mereka harus sering menghitung ulang hal-hal, sedangkan penyaji waktu nyata akan bekerja dengan versi final yang tidak memiliki persyaratan ini.
sumber
Jawaban saat ini telah melakukan pekerjaan yang sangat baik untuk menjelaskan masalah-masalah umum yang terlibat, tetapi saya merasa itu melewatkan detail teknis yang penting: Mesin render "Cycles" Blender adalah jenis mesin yang berbeda dengan yang digunakan kebanyakan gim.
Biasanya permainan diberikan dengan mengulangi semua poligon dalam sebuah adegan dan menggambarnya satu per satu. Ini dilakukan dengan 'memproyeksikan' koordinat poligon melalui kamera virtual untuk menghasilkan gambar datar. Alasan teknik ini digunakan untuk permainan adalah bahwa perangkat keras modern dirancang di sekitar teknik ini dan dapat dilakukan secara realtime hingga tingkat detail yang relatif tinggi. Karena ketertarikan, ini juga merupakan teknik yang digunakan oleh mesin render Blender sebelumnya sebelum Blender Foundation menjatuhkan mesin lama demi mesin Cycles.
Siklus di sisi lain adalah apa yang dikenal sebagai mesin raytracing. Alih-alih melihat poligon dan merendernya satu per satu, ia memancarkan sinar virtual cahaya ke dalam adegan (satu untuk setiap piksel pada gambar akhir), memantulkan sinar cahaya itu dari beberapa permukaan dan kemudian menggunakan data itu untuk memutuskan warna apa warna piksel tersebut. seharusnya. Raytracing adalah teknik yang sangat mahal secara komputasional yang membuatnya tidak praktis untuk rendering waktu nyata, tetapi digunakan untuk merender gambar dan video karena memberikan tingkat detail dan realisme yang ekstra.
Harap dicatat bahwa deskripsi singkat saya tentang raytracing dan rendering poligon sangat terbuka demi singkatnya. Jika Anda ingin tahu lebih banyak tentang teknik ini, saya sarankan Anda mencari tutorial atau buku yang mendalam karena saya curiga ada banyak sekali orang yang telah menulis penjelasan yang lebih baik daripada yang bisa saya kumpulkan.
Juga perhatikan bahwa ada berbagai teknik yang terlibat dalam rendering 3D dan beberapa game benar-benar menggunakan variasi raytracing untuk tujuan tertentu.
sumber