Saya ingat menonton trailer Tomb Raider yang sudah dirender, dan berharap gambar-gambar itu ada di dalam game itu sendiri.
Mengapa ada perbedaan besar antara trailer dan game yang sebenarnya? Saya mengerti permainan adalah konsep yang sama sekali berbeda, ia memiliki pipa yang berbeda, harus melalui berbagai jenis interaksi pemain dll. Saya ingin tahu apa itu tentang permainan yang membuat membuat mereka sangat sulit dibandingkan dengan film animasi.
Sejauh ini saya tahu bahwa membuat game dan film animasi berbagi beberapa beban kerja dasar, misalnya membuat model 3d, merendernya (hanya dalam game itu terjadi langsung). Film animasi dirender untuk waktu yang lama dan kami hanya melihat adegan yang telah dirender. Itu yang saya tahu jadi saya harap Anda akan menjawab dari perspektif itu!
Bagaimana dengan rendering film animasi selama berjam-jam membuatnya begitu indah sementara rendering dalam game kurang indah (dari sudut pandang umum)?
Jawaban:
Anda telah menyebutkan salah satu poin utama: Waktu .
Dalam proses di balik rendering animasi kesetiaan tinggi, banyak pendekatan dan algoritma yang berbeda digunakan (semua biasanya digabungkan dengan istilah "Global Illumination" ), dengan Ray-Tracing menjadi salah satu yang paling umum (yang lain termasuk misalnya Radiosity dan Ambient Occlusion) ).
Ray-Tracing melibatkan simulasi sejumlah (biasanya tinggi) sinar cahaya melalui adegan dan menghitung jalur mereka, refleksi dan refraksi ketika mereka mengenai benda dengan bahan yang berbeda. Bahan yang berbeda sebagai imbalannya kemudian memiliki sifat fisik yang berbeda yang menghasilkan reaksi spesifik untuk sinar (jumlah cahaya yang memantul dari satu objek misalnya lebih tinggi untuk objek mengkilap dibandingkan dengan yang mengkilap).
Poin lainnya adalah Fisika : Mensimulasikan ribuan jenis rambut dengan cara yang benar secara fisik memakan waktu. Inilah sebabnya mengapa dalam permainan yang lebih tua, rambut sering didekati dengan jaring yang sangat kasar yang kemudian bertekstur untuk memberi kesan rambut, mungkin dengan beberapa objek bergerak tambahan agar terlihat sedikit lebih realistis.
Juga harus dipertimbangkan: Memori & Bandwidth . Semakin tinggi kualitas tekstur yang diterapkan pada objek dalam sebuah adegan, semakin banyak memori yang Anda butuhkan untuk memuat dan menggunakannya dalam sebuah game. Tetapi tidak hanya sistem perlu memiliki cukup memori untuk menyimpan data, tetapi data ini juga perlu ditransfer sekitar yang menggunakan bandwidth yang tersedia. Karena memori dan bandwidth terbatas, ada maksimal apa yang bisa dicapai.
Game sering menipu sedikit dengan hanya menggunakan tekstur beresolusi tinggi untuk objek dekat, dan menggunakan gambar beresolusi lebih rendah untuk objek jauh (istilah: MipMapping ) sehingga mengurangi bandwidth yang diperlukan karena lebih sedikit texels yang perlu diambil yang sebagai gantinya meningkatkan kinerja (lihat bagian tentang Pemetaan dalam Panduan Pemrograman OpenGLES Apple).
Demikian pula, game juga sering menggunakan jerat yang berbeda untuk objek tergantung seberapa jauh mereka dengan objek yang jauh kurang detail (istilah: LoD = Level of Detail ).
Kesimpulan: Dalam grafik waktu nyata (seperti game dan simulasi), proses rendering yang terperinci dan kompleks ini tentu saja tidak akan bekerja untuk menghasilkan adegan yang lancar / lancar. Anda memerlukan setidaknya 20 frame yang dirender per detik untuk mencapai efek animasi / gerakan yang mengalir untuk mata manusia. Di sisi lain, rendering satu frame (!) Dalam film animasi dapat dengan mudah mengambil apa pun dari beberapa jam hingga beberapa hari tergantung pada banyak faktor seperti jumlah sinar yang digunakan dalam Ray-Tracing atau jumlah sampel untuk Ambient Oklusi (lihat halaman Pixar ini 1 / halaman Pixar 2 untuk screenshot 16 vs 256 sampel) serta resolusi film yang diinginkan (lebih banyak piksel = lebih banyak informasi yang akan dihitung). Lihat juga artikel initentang proses di balik film animasi Universitas Monsters Pixar , memberikan beberapa wawasan menarik dan juga menyebutkan waktu render 29 jam per frame.
Secara umum: Semakin tinggi kesetiaan / realisme yang ingin dicapai, semakin banyak diperlukan pengulangan / pantulan / sampel yang sebagai gantinya membutuhkan lebih banyak sumber daya (baik waktu dan / atau daya komputasi / memori). Untuk memvisualisasikan perbedaan, lihat render yang dihasilkan berdasarkan jumlah bouncing untuk perhitungan refraksi dalam contoh ini: Diamond Bounce dari Keyshot
Namun tentu saja, kualitas dalam aplikasi waktu nyata meningkat setiap saat karena dua alasan:
Metode / formula yang lebih pintar dikembangkan dan diimplementasikan yang mampu menciptakan efek foto-realistis tanpa perlu raytracing. Ini sering melibatkan perkiraan dan kadang-kadang data yang dihitung sebelumnya. Beberapa contoh:
sumber
Selain faktor waktu, perlu dicatat bahwa dalam sebuah film, artis memiliki kendali penuh atas apa yang dilihat dan tidak akan dilihat oleh penonton.
Dalam adegan film tipikal Anda, kamera tidak akan menghabiskan banyak waktu menunjuk ke langit-langit, atau menunjuk ke sudut gelap ruangan, atau mengarah ke pergelangan kaki seseorang, sehingga anggaran poligon dan tekstur untuk elemen-elemen tersebut akan cukup rendah.
Jika seluruh adegan terjadi dari satu sudut pandang, set virtual (seperti set film nyata) tidak perlu menyertakan bagian-bagian yang ada di belakang kamera. Di sebagian besar gim, pemain bebas mencari di mana saja kapan saja. Itu berarti anggaran kualitas dapat difokuskan pada apa yang sebenarnya dilihat. (Beberapa gim orang ketiga, misalnya seri God Of War, menggunakan kamera terbatas; visualnya cenderung lebih baik daripada gim-gim kamera gratis lainnya.)
sumber
Anda berasumsi bahwa perbedaannya hanyalah pada render - dalam film animasi, ada juga kesempatan untuk mengedit setelah fakta. Mereka mungkin memiliki efek yang dikomposisikan dalam yang akan sulit dicapai dalam mesin asli, atau mereka dapat mengubah sedikit hal (misalnya, menghapus atau mengulangi setiap frame 10 untuk mempercepat / memperlambat animasi).
Jika Anda mendapat kesempatan, gali salah satu DVD 'Roughnecks: The Starship Trooper Chronicles', karena mereka memiliki trek komentar oleh editor & animator tentang trik yang harus mereka lakukan ketika mereka mulai ketinggalan jadwal pengiriman mereka - hal-hal seperti mendaur ulang bidikan tetapi membalik poros sehingga tidak sejelas koreksi warna, menutupi hal-hal yang tidak mereka sukai, menambah ledakan, dll.
sumber
Anda sudah menjawab pertanyaan Anda sendiri. Film animasi biasanya memiliki tingkat detail yang lebih tinggi yang menyebabkan waktu render yang lama untuk setiap frame.
Permainan di sisi lain tidak memiliki detail yang cukup banyak di dalamnya, karena adegan harus dirender 30 kali atau lebih per detik. Itu juga sebabnya pengembang mencoba menggunakan kembali sebanyak mungkin aset (tekstur, model, dll.), Karena merender objek yang sama dalam dua posisi jauh lebih cepat daripada jika semuanya unik. Mereka juga harus berhati-hati untuk tidak menggunakan terlalu banyak poligon dalam model mereka, dan sebaliknya mencoba untuk mencapai kesan mendalam dengan menggunakan pencahayaan, tekstur, pemetaan benjolan, dan teknik lainnya.
Film tidak memiliki masalah itu; mereka membuat adegan seperti yang mereka inginkan dan menggunakan tekstur, model, dan geometri sebanyak mungkin dan terperinci yang diperlukan untuk mencapai adegan yang mereka cari.
Orang mungkin berpendapat bahwa game sedang mengejar ketinggalan. Jika Anda melihat beberapa game berpenampilan terbaik belakangan ini, mereka tidak jauh dari kualitas film seperti dulu. Tentu saja Anda akan selalu dapat menjejalkan lebih detail ke dalam adegan yang sudah dirender daripada game, tapi saya pikir perbedaannya tidak akan begitu terlihat dalam beberapa tahun mendatang.
sumber
Jawaban lainnya mencakup masalah grafis mentah dengan detail yang baik, tetapi jangan menyebutkan bagian penting dari realisme game vs. film dan trailer: animasi dan pergerakan kamera .
Dalam sebuah film atau trailer, setiap gerakan orang dan kamera dapat dikoordinasikan dengan cermat untuk menunjukkan emosi yang tepat untuk saat ini, dan mereka tidak perlu diulang. Dalam permainan video, permainan harus dapat bereaksi secara instan terhadap pergerakan pemain, dan harus menggunakan kembali kumpulan kecil stok animasi untuk mengisi waktu permainan yang tidak terbatas yang dapat dimungkinkan.
Contoh ini dari trailer yang dimaksud adalah ketika terapis mengangguk dan memberikan senyum "tidak buruk" , dan ketika Lara mencengkeram sandaran tangan, menggoncangkan kakinya, atau memandang gua dengan kagum. Hal-hal kecil ini (atau kekurangannya, dan karakter "plastik" yang terlibat) memengaruhi realisme yang dirasakan jauh lebih dari sekadar perbaikan grafis kecil.
Tidak seperti perbedaan grafik lainnya, ini bukan masalah yang berpotensi dipecahkan dengan melemparkan lebih banyak daya komputasi padanya: ini adalah perbedaan mendasar antara dunia yang dituliskan dan dunia yang merespons setiap tindakan Anda. Dalam hal khusus ini, saya berharap bahwa realisme trailer hari ini akan melebihi semua gameplay untuk masa mendatang.
sumber
Menambahkan ke jawaban hebat lainnya yang sudah diposting, perlu dicatat bahwa untuk mencapai waktu pemrosesan cepat yang dibutuhkan game, pengembang game perlu memanggang banyak efek visual mereka sebagai tekstur sederhana. Ini berarti harus sangat berhati-hati dalam menghindari efek yang tidak akan matang dengan baik.
Salah satu efek penting yang sulit dipanggang untuk gim video adalah Subsurface Scattering (SSS) . Sayangnya, efek ini sangat penting dalam menghasilkan kulit manusia yang tampak realistis. Itu sebabnya banyak karakter video game "realistis" keluar terlihat plastik.
Salah satu cara pengembang menghindari masalah ini adalah dengan sengaja membuat karakter berwarna cerah untuk mengurangi tampilan plastik, atau dengan menambahkan banyak bayangan dan detail tekstur ke wajah (seperti jenggot dll) untuk memecah bagian yang besar dan terus menerus dari kulit.
sumber
Untuk menjawab salah satu pertanyaan, OP bertanya dalam komentar:
Pertanyaan ini lebih sulit daripada yang terlihat. Saya pikir aturan praktis yang baik adalah persamaan berikut (yang saya buat dengan cara):
Pada dasarnya, ini berarti bahwa untuk model dengan bahan khusus yang relatif sedikit (yaitu tidak ada cermin, subsurf, dll.), Waktu perhitungan akan sangat ditentukan oleh jumlah poligon. Ini biasanya berlaku untuk grafik video game yang sangat sederhana.
Namun, dalam praktiknya, dalam game-game high-end yang lebih baru dan khususnya film, pelakunya adalah "biasanya" ray tracing. Mengapa? Ya karena dua alasan. Saya akan memberikan alasan matematika pertama, dan kemudian pendapat saya tentang alasan sebenarnya di akhir.
Alasan Mathy:
Pembaruan: Penjelasan matematika ini mungkin tidak sepenuhnya akurat. Silakan lihat penjelasan CrazyCasta di komentar untuk detail lebih lanjut.
Misalkan Anda memiliki 1000 poligon dan 3 sumber cahaya. Jumlah jejak ray terkecil yang perlu Anda lakukan adalah 3 * 1000.
Jika kita terlalu menyederhanakan situasi dan mengasumsikan bahwa 1 ray trace = 1 perhitungan (perkiraan terlalu rendah) maka kita akan membutuhkan 3000 perhitungan.
Tapi sekarang mari kita anggap Anda ingin memiliki refleksi juga.
Pengaturan default untuk refleksi dalam program freeware Blender adalah:
Untuk pengaturan ini kami dapat memperkirakan bahwa, dalam skenario kasus terbaik, refleksi super sederhana ini akan menggandakan biaya komputasi model Anda.
Tapi seperti yang saya katakan sebelumnya, contoh ini sangat disederhanakan, dan Anda dapat menemukan banyak efek (selain yang sudah saya sebutkan) yang akan memotret waktu rendering Anda melalui atap.
Huruf besar dan kecil: coba render refleksi
gloss=1
(default di Blender), lalu putar gloss ke 0,01 dan bandingkan dua waktu rendering. Anda akan menemukan bahwa yang dengan 0,01 gloss akan jauh lebih lambat, tetapi kompleksitas model tidak berubah sama sekali.Alasan kualitatif saya tetapi lebih realistis:
Meningkatkan kompleksitas jala hanya akan meningkatkan kualitas model ke titik. Setelah melewati beberapa juta wajah, sebenarnya tidak banyak yang menambahkan lebih banyak wajah akan dilakukan. Saya bahkan akan melangkah lebih jauh dengan mengatakan bahwa jika Anda menggunakan smoothing, Anda akan dapat pergi hanya dengan beberapa ratus wajah untuk tujuan paling umum.
Tetapi hal-hal yang hampir selalu membuat perbedaan adalah pencahayaan, efek material, dan penelusuran sinar. Itulah sebabnya film cenderung menggunakan banyak dari ini dalam upaya untuk mendekati kompleksitas indah dunia nyata.
Cara terbaik untuk merasakan semua hal ini adalah dengan melihat daftar pemain di akhir animasi panjang fitur Disney terbaru. Anda mungkin akan terkejut dengan betapa banyak pencahayaan dan tekstur orang yang mereka miliki.
sumber
:)
Perlu ditambahkan bahwa animasi film biasanya melakukan banyak tipu daya visual untuk membuat gerakan yang dirasakan lebih lancar.
Animator dapat, misalnya, menggunakan teknik animasi tangan tradisional yang biasanya tidak digunakan dalam rendering waktu nyata, seperti apusan, kelipatan, atau pelengkungan untuk menghasilkan gerakan yang tampak lebih lancar meskipun framerat yang lebih rendah di mana film berada (pada tingkat apa pun, hingga saat ini, hingga saat ini) ) ditampilkan di. Penggunaan smear dan kelipatan khususnya rumit dengan penggunaan jerat - Anda perlu menghasilkan deformasi mesh untuk distorsi mesh semacam itu, dan saya tidak percaya saya pernah melihat hal itu dilakukan di setiap video game 3d.
Bingkai dengan objek yang bergerak cepat melewatinya dapat diberikan pada framerate yang berbeda dan kemudian digabungkan lagi untuk menghasilkan gerakan kabur melalui pemandangan. Motion blur adalah teknik yang cukup umum dalam grafik 3d realtime hari ini. Efeknya biasanya tidak berkualitas tinggi yang akan diperoleh oleh sebuah rumah animasi dengan puluhan prosesor (lihat jawaban "waktu" di atas) sebagian besar disebabkan oleh fakta bahwa gerakan memabur yang sangat baik memerlukan beberapa langkah pemrosesan pos pasca per lapisan, dan sejumlah besar frame perantara menjadi sangat cair.
Melakukan tipuan visual semacam ini untuk meningkatkan kualitas yang dirasakan dengan grafik realtime secara efektif memerlukan pembatasan framerate output ke tingkat jauh di bawah maksimum, frame menengah rendering latar belakang, kemudian melakukan penggabungan untuk menghasilkan bingkai akhir. Mungkin ada beberapa aliran pemikiran tentang apakah sedikit peningkatan dalam kesetiaan visual untuk menggunakan teknik seperti ini sepadan dengan hilangnya anggaran bingkai, terutama jika itu akan sangat sulit untuk diperbaiki.
Untuk mengatasi satu aspek dari pertanyaan Anda:
Artisanry, terutama. Seniman realtime tidak diberi kesempatan untuk menyempurnakan setiap frame atau membuat gimmick satu kali untuk meningkatkan tampilan keseluruhan adegan, atau reaksi, bukan hanya karena kendala waktu (baik dalam pengembangan dan dalam rendering) tetapi juga karena kendala praktis. Sebagaimana dicatat dalam komentar interaktivitas, pemain mungkin tidak akan melakukan hal yang persis sama setiap kali, tetapi film akan bermain sama setiap kali.
Ini berarti bahwa artis video game memiliki serangkaian prioritas yang sangat berbeda di mana menyangkut kualitas model dan kualitas render akhir daripada artis film. Keduanya membutuhkan keterampilan yang sangat besar, tetapi masing-masing membutuhkan teknik yang berbeda. Saya berharap teknik-teknik ini semakin menyatu ketika perangkat rendering tingkat konsumen terus berkembang dan jenius matematika lebih lanjut terus muncul di SIGGRAPHs Anda dan GDC Anda.
sumber
Sebuah film animasi tunggal dapat memakan waktu bertahun-tahun untuk ditampilkan pada satu binatang buas dari sebuah mesin. Karena pre-render, tidak masalah berapa banyak efek mahal seperti pantulan cahaya, bayangan, dll. Kita tambahkan ke tempat kejadian. Film-film ini biasanya dibuat oleh render farms di mana ribuan PC terhubung bersama-sama bekerja pada pekerjaan yang sama.
Alasan kami tidak dapat mencapai kualitas yang sama untuk waktu nyata adalah karena mesin perlu membuat frame saat ini dalam waktu sekitar 16ms untuk mencapai FPS 60. Satu frame untuk film animasi bisa memakan waktu berjam-jam untuk di-render pada PC tunggal.
Dalam sebuah game, selain grafis, banyak hal lain yang terjadi. Setiap frame ada banyak perhitungan. Sederhananya, sebuah film animasi tidak perlu menghitung kerusakan yang diambil oleh pemain dari peluncur roket, Anda hanya menghidupkan gibs dan poligon akan merender.
Untungnya ada beberapa orang jenius yang berjalan-jalan di planet ini. Terlepas dari PC yang lebih baik yang dapat membuat lebih banyak poligon dan tekstur yang lebih besar ada beberapa penemuan cerdik yang dibuat seperti peta normal yang dapat menghidupkan cahaya / bayangan pada poligon datar dengan sangat murah, membuat objek 3D yang membosankan terlihat detail luar biasa.
Beberapa efek mahal yang membuat film memiliki suar ekstra.
Simpy put, kita perlu membuat trik "murah" untuk membuat game terlihat bagus. Tetapi mata manusia sulit untuk dibodohi.
sumber