Mengapa grafis gaming tidak seindah film animasi?


60

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)?


1
Saya benar-benar tidak melihat bagaimana jawaban yang diterima benar-benar memenuhi poin pertanyaan Anda. Dapatkah Anda meninggalkan komentar di sini sebagai ringkasan dari apa yang Anda pahami darinya, yaitu berita apa yang dibawanya kepada Anda sehingga sekarang Anda memahami masalah yang sebelumnya tidak Anda ketahui?
Bogdan Alexandru

4
Tidak yakin apa yang membuat Anda bingung. Pertanyaannya adalah judulnya; pos yang diterima menjawab pertanyaan itu.
jhocking

2
Sebenarnya saya mengerti 80% dari jawabannya. Sisanya mencakup 20%, khususnya saya belajar banyak dari jawaban @ Vladimir (lihat di bawah). Beberapa jawaban bahkan membahas hal-hal yang tidak saya pikirkan, misalnya menambahkan rincian setelah rendering. Dan untuk menjawab pertanyaan Anda, saya memilih jawabannya karena saya pikir itu membawa tingkat pemahaman yang lebih dalam (tidak hanya dia menyebutkan poin, tetapi juga algoritma / konsep yang bekerja di belakangnya). Dan pada saat saya selesai membaca ini, jawaban lain juga luar biasa! Sulit untuk memilih yang mana yang terbaik, tetapi orang-orang tampaknya juga menyukainya! Saya akan menandai mereka semua!
cowboysaif

Mungkin karena pengembang game tidak tertarik menghabiskan $ 50.000.000 untuk efek - sesuatu yang dilakukan produsen film secara rutin akhir-akhir ini.
Pieter Geerkens

Jawaban:


109

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:

  1. Perangkat keras yang lebih kuat: Ketika komputer (permainan) menjadi lebih baik (= lebih banyak daya komputasi [paralel], transmisi data yang lebih tinggi antara komponen-komponen komputer, semakin banyak dan semakin cepat memori, dll.), Kesetiaan visual juga meningkat, karena perhitungan yang lebih memakan waktu sebenarnya menjadi layak dalam sistem waktu nyata.
  2. 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:


4
@cowboysajika tidak, Anda tidak dapat melakukannya di GPU "apa adanya". Anda harus mendapatkan HW khusus. Namun ada upaya untuk melakukan raytracing realtime menggunakan CUDA atau teknologi serupa.
wonderra

4
Ada banyak teknik lain selain raytracing yang digunakan dalam render offline, saat membuat sinematik berkualitas profesional. Tetapi seperti yang Anda katakan, mereka menggunakan teknik rendering, pencahayaan, dan naungan yang mahal yang tidak praktis untuk rendering real-time.
MrCranky

40
Jawaban ini menjelaskan mengapa animasi yang dibuat sebelumnya membutuhkan lebih banyak waktu tetapi tidak benar-benar memberikan skala. Perbedaannya sangat besar ! Gim harus merender bingkai di bawah 1/30 detik, sedangkan film secara rutin membutuhkan beberapa hari untuk merender setiap frame.
jhocking

9
"Days" jelas merupakan akhir dari skala waktu, tetapi ya film kadang-kadang membutuhkan lebih dari 1 hari untuk membuat satu frame (lihat di sini misalnya venturebeat.com/2013/04/24/... ) Dan bahkan dengan rata-rata waktu render masih seperti setengah hari per frame, yang masih lebih lama dari permainan harus render. Alasan mengapa seluruh film tidak membutuhkan waktu satu dekade untuk merender adalah karena mereka memiliki render farm. ratusan mesin merender pada saat bersamaan.
jhocking

7
Beberapa fakta: raytracing digunakan di mana-mana, itu sama sekali bukan teknik niche. VRay hanya CPU. VRayRT hanya GPU. GPU tidak cocok untuk produksi karena adegan biasanya mengambil banyak GB RAM dan tidak cocok dengan GPU (tetapi kadang-kadang membantu). Hasil bidikan kami sendiri membutuhkan 1-2 jam / bingkai pada CPU kelas atas dan tidak terlalu lama. JackAidley benar-benar salah.
Calvin1602

44

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.)


12
Suatu hal yang tidak bisa diremehkan. Rendering satu set frame tetap memungkinkan fokus penuh pada hanya frame-frame itu, apa pun yang menyebabkan masalah pada frame individual dapat diatasi secara manual.
aaaaaaaaaaaa

9
Heck, ini sering digunakan dengan gim-gim yang melakukan cutscene mereka "live in engine," yang mengapa adegan cut masih bisa terlihat lebih baik.
trlkly

Salah satu permainan yang melanggar peraturan ini adalah Brother: Sebuah Kisah Dua Putra Para devs berusaha keras untuk memastikan kamera berakhir di tempat yang tepat dan terasa alami juga.
Dasar

12
Bagaimana dengan rendering film animasi selama berjam-jam membuatnya begitu indah sementara rendering dalam game kurang indah (dari sudut pandang umum)?

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.


Mesin permainan juga melakukan itu! ;-)
Adrian Maire

@AdrianMaire: mereka mungkin melakukan beberapa hal lain, tetapi mereka tidak akan memiliki manusia di sana untuk bertindak sebagai editor dan men-tweak hal-hal yang diperlukan. Saya tahu saya menyebutkan bagaimana mereka men-tweak sesuatu, tetapi poin utama saya adalah bahwa ada manusia yang terlibat dalam hal-hal yang telah ditentukan sebelumnya.
Joe

10

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.


1
Suka jawaban ini! Jadi siapa yang harus menjadi pelakunya? Tingkat poligon atau penelusuran sinar? Apakah mesin game cenderung menggunakan buffer z karena lebih ringan? Atau ray tracing melakukan lebih banyak pekerjaan daripada menghitung kedalaman?
cowboysaif

2
Saya kira itu ray tracing. Philip tampaknya jauh lebih berpengetahuan daripada saya tentang hal ini, tetapi sejauh yang saya tahu, itu pada dasarnya adalah cara untuk mensimulasikan sinar cahaya seperti yang akan mereka lakukan dalam kenyataan - memantulkan benda-benda, menyebar, rusak, atau diubah oleh bahan-bahan dalam adegan. , dan seterusnya. Jika Anda memiliki hal-hal seperti bulu, rambut, atau simulasi berat lainnya (seperti cairan) dalam adegan Anda, fisiknya juga berat - juga, hal-hal itu kemudian memengaruhi kerumitan penelusuran sinar lagi.
Christian

2
Aplikasi penelusuran sinar juga membutuhkan sesuatu seperti buffer Z untuk menentukan dan menyimpan objek mana yang tersumbat dengan objek lain. Tetapi penelusuran sinar jauh lebih rinci daripada aplikasi waktu-nyata, karena melakukan semua hal yang telah disebutkan oleh Christian dan saya untuk mendapatkan kesetiaan grafis yang lebih tinggi dengan mengirimkan sinar cahaya individu tersebut dan menghitung refraksi / hamburan aktual, misalnya pada benda-benda kaca atau air. , render rambut fisik, pencahayaan tidak langsung dan oklusi ambien, dll. (meskipun beberapa bagian tersebut juga dapat diperkirakan dalam aplikasi waktu nyata saat ini seperti yang saya sebutkan).
Philip Allgaier

7
Film diberikan dengan sekitar 10-12 jam waktu komputasi per bingkai. Dan menurut Hukum Blinn setiap kali kekuatan perhitungan menjadi lebih baik, mereka hanya menambahkan lebih banyak barang ke adegan sehingga benar-benar tidak pernah menjadi lebih cepat. Render film juga cenderung menggunakan solusi 'tepat' bentuk tertutup untuk semua persamaan rendering, di mana game membuat banyak perkiraan karena harus sejuta kali lebih cepat daripada film.
Chuck Walbourn

2
belum pernah mendengar tentang Hukum Blinn sebelumnya, tautan itu luar biasa
jhocking

8

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.


8

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.


2
Belum lagi semua pekerjaan pemrosesan pos yang masuk ke animasi film. Banyak hal yang dirender sebagai beberapa adegan terpisah yang perlu dilapisi bersama setelah rendering. Itulah sebabnya, di banyak film animasi, Anda akan sering melihat latar belakang yang relatif statis dengan karakter yang bergerak di latar depan.
Vladimir

6

Untuk menjawab salah satu pertanyaan, OP bertanya dalam komentar:

"Jadi siapa yang seharusnya menjadi penyebab utama? Tingkat poligon atau penelusuran sinar?"

Pertanyaan ini lebih sulit daripada yang terlihat. Saya pikir aturan praktis yang baik adalah persamaan berikut (yang saya buat dengan cara):

number of calculations = {polygons} * {light sources} * {effects}

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:

max reflections  = 2
ray length limit = None
...

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.


2
Ya Tuhan, inilah tujuan saya berburu. Meskipun itu bukan pertanyaan saya (saya agak bingung apa yang harus saya minta), saya pikir ini dia!
cowboysaif

1
@cowboysaif Senang membantu! :)
Vladimir

1
Pada kenyataannya, segala sesuatunya tidak sebaik yang saya buat. Tetapi saya pikir ini dapat membantu Anda mendapatkan ide umum. Saya biasanya hanya mengandalkan trial and error. Seperti jika saya membuat adegan yang lebih panjang (100+ frame), saya pertama-tama membuat satu atau dua frame sehingga saya bisa melihat seberapa cepat dan efek apa yang cenderung memperlambatnya.
Vladimir

2
Trik lama menggunakan POVRay pada 486 pada hari itu - jika Anda ingin tahu bagian mana dari adegan Anda yang paling mahal, buatlah beberapa pandangan dari seluruh panggung dengan semua aktor dan alat peraga di tempatnya dan saksikan bagian yang lambat Raytracer ke merangkak. Memperbesar bagian-bagian itu dan mencari tahu kinerja kasus terburuk dan mencari menghabiskan sebagian besar anggaran rendering Anda pada frame yang menggabungkan elemen-elemen tersebut. Jika Anda memiliki jadwal rendering yang ketat, pertimbangkan untuk membingkai ulang beberapa pemotretan.
Tom B

1
@ TomB Nasihat yang bagus! Saya menambahkan bahwa jika Anda mengharapkan adegan tertentu menjadi lambat, Anda dapat mengolahnya melalui web dan merender semua lainnya secara lokal.
Vladimir

4

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:

Bagaimana dengan rendering film animasi selama berjam-jam membuatnya begitu indah sementara rendering dalam game kurang indah (dari sudut pandang umum)?

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.


1
Oooh Anda baru saja mendiskusikan sesuatu yang ingin saya bicarakan. Deformasi mesh? apakah itu juga disebut pengubah jala? Ada pengubah yang saya gunakan saat saya bermain-main dengan unity 3d, yang disebut mega- fiers ( west-racing.com/mf/?page_id=2 ). Meskipun kesatuan mendukung animasi berbasis tulang saja, apakah Anda pikir teknologi game akhirnya mengatasi itu? Saya tidak tahu tentang mesin game lain!
cowboysaif

1
Efek semacam itu harus kompatibel dengan segala jenis teknik animasi selama Anda menggunakan distorsi seluruh model matematika dengan vertex shader (mungkin apa yang dilakukan "mega-fiers"). Beberapa pendekatan lain adalah: * memiliki "target" mesh yang merupakan mesh kedua yang sepenuhnya terdistorsi dan menggunakan vertex shader Anda untuk memindahkan simpul di mesh Anda ke arah simpul yang cocok di mesh kedua; * Memiliki deformasi dimasukkan ke dalam model Anda sendiri dan menggunakan animasi keyframe; * Melakukan distorsi Anda menggunakan animasi kerangka secara eksklusif menempatkan tulang tambahan sesuai kebutuhan ...
Tom B

1
Saya yakin bahwa jenis animasi ini telah dimungkinkan untuk sementara waktu, dan pada tingkat tertentu telah digunakan meskipun sebagian besar saya hanya dapat mengingat contoh dalam game dengan makhluk goblok dan model yang fleksibel (seperti Gish, Tower of Goo, Octodad) . Bagian yang sulit datang dari mencari tahu kapan harus menggunakan efek, terutama ketika datang untuk menggunakan kelipatan atau noda. Arah gerakan kamera memengaruhi seperti apa hasil multi-smear seharusnya. Saya menduga pedoman yang digunakan animator tangan akan menjadi titik awal yang baik, tetapi pikirkan semua kesenangan yang bisa didapat dalam eksperimen!
Tom B

3

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.

  • Cahaya memantul. Dalam kehidupan nyata cahaya memantul sampai benar-benar diserap oleh permukaan yang memantul. Untuk setiap perhitungan sumber cahaya harus dibuat. Cobalah untuk memegang benda berwarna di sebelah selembar kertas putih, Anda akan melihat warna berdarah ke kertas.
  • Game memiliki batasan keras pada jumlah poligon yang digunakan, film prerender tidak memiliki batasan ini, hanya perlu waktu lebih lama untuk ditampilkan. Kembali ke cahaya memantul, jika kita memiliki lebih banyak poligon maka ada lebih banyak perhitungan cahaya untuk visual yang lebih baik tetapi dengan mengorbankan biaya yang tumbuh secara eksponensial.
  • Ukuran tekstur, kartu grafis hanya dapat menampung sejumlah data di dalamnya dan mengganti data ini mahal. Tekstur 1024x1024 umum termasuk semua peta shader dapat dengan mudah mengambil beberapa persen dari kartu GFX 1GB Anda. Ketika kartu perlu berganti data, ini dikenakan biaya. Jelas kami tidak terlalu peduli dengan hal ini saat melakukan pra-peninjauan film. Juga, dalam sebuah film kita hanya perlu tekstur resolusi tinggi di mana kamera mendekat, untuk permainan kita menginginkan ini untuk setiap objek yang dekat dengan pemain.
  • Pathfinding sangat menuntut pada CPU. Algoritme pathfinding, misalnya, membuat musuh menemukan rute ke arah Anda atau membuat pemain Anda berjalan di jalur ketika Anda mengklik suatu tempat. Pathfinding ini bisa mahal, ketika ada 10.000 titik-jalan (yang hanya setiap meter persegi pada peta 100m x 100m) maka mungkin kita perlu melewati semua titik-jalan ini berkali-kali dalam satu bingkai. Ada banyak cara untuk membuat ini lebih murah tergantung pada kebutuhan, tetapi kenyataannya kita tidak membutuhkan ini untuk adegan yang ditayangkan sebelumnya.

Simpy put, kita perlu membuat trik "murah" untuk membuat game terlihat bagus. Tetapi mata manusia sulit untuk dibodohi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.