Apakah memperlihatkan tabrakan dalam gerakan lambat yang membuat komputer relaks?

11

Dalam banyak game balap ( Burnout Paradise , misalnya) ketika sebuah tabrakan akan terjadi, permainan game secara otomatis beralih ke gerakan lambat dan melanjutkan dalam urutan lambat sampai setelah tabrakan selesai.

Saya selalu berpikir ini untuk efeknya. Anda tidak ingin ketinggalan bagian dari tabrakan! Tetapi salah satu teman saya baru-baru ini menyarankan bahwa ini dilakukan untuk memastikan tidak ada tingkat pemrosesan yang berlebihan ketika tabrakan terjadi.

Sekarang saya pikir itu sebenarnya sebaliknya. Ketika tabrakan terjadi, begitu banyak detail ditampilkan dalam gerakan lambat, saya yakin ada overhead pada komputasi dan rendering pipeline.

Apa yang benar

Apakah adegan gerak lambat meningkatkan penggunaan CPU / GPU, atau menguranginya?

Lazer
sumber

Jawaban:

4

Jika Anda menjalankan simulasi fisika Anda dengan timestep tetap (sebagaimana mestinya), maka gerakan lambat akan mengurangi beban pada simulasi fisika, karena lebih sedikit perhitungan yang harus dilakukan per frame.

Mari kita asumsikan Anda menjalankan fisika Anda dengan 200 pembaruan per detik. Misalnya. satu pembaruan setiap 0.005detik waktu simulasi. Saat menjalankan game dengan 50 pembaruan per detik, itu akan menghasilkan 4 pembaruan fisika per pembaruan render. Sekarang Anda akan menjalankan permainan dalam gerakan lambat, itu berarti Anda memperlambat waktu simulasi. Jadi jika permainan masih berjalan pada 50 pembaruan per detik ( 0.02detik waktu simulasi), tetapi Anda menunjukkan dunia dalam gerakan lambat (misalkan setengah kecepatan), maka satu frame akan setara dengan 0.01detik waktu simulasi. Jadi hanya 2 pembaruan fisika per frame yang diberikan. Berarti lebih sedikit perhitungan fisika per bingkai yang diberikan.

Jadi jika Anda melihatnya dari perspektif penggunaan CPU per frame yang diberikan, maka gerakan lambat kurang berat CPU (kecuali Anda memilih untuk meningkatkan tingkat simulasi fisika Anda selama gerakan lambat). Beban GPU per frame tentu saja cukup konstan.

Jika Anda bertanya tentang beban CPU / GPU kumulatif selama satu kali tabrakan , maka jelas simulasi fisika adalah sama, baik itu gerak lambat atau kecepatan normal. Beban GPU akan lebih tinggi, karena Anda membuat lebih banyak bingkai.

bummzack
sumber
Paragraf pertama Anda berbicara tentang beban GPU yang lebih tinggi. Saya berharap beban pada GPU relatif konstan, atau lebih baik dinyatakan, terkait langsung dengan framerate (dengan asumsi konten adegan tidak berubah).
notlesh
Dia mengatakan itu lebih tinggi per tabrakan , tetapi itu hanya karena tabrakan berlangsung lebih lama. Seperti kalimat terakhir dari paragraf pertama.
MichaelHouse
Saya pikir dalam kasus rata-rata beban semua harus tetap sama - kode akan berjalan melalui bagian yang sama baik cara dan karenanya akan memiliki tentang beban yang sama. Dalam kasus khusus, saya akan berpikir bahwa beban pada CPU akan benar-benar lebih tinggi dalam kasus gerak lambat ketika diamati selama durasi seluruh tabrakan, karena resolusi tabrakan mereka mungkin akan bekerja dengan beberapa jenis faktor waktu-langkah yang akan menjadi jauh lebih kecil (membuat terjemahan yang dihasilkan lebih kecil) dalam gerakan lambat, meningkatkan kemungkinan tabrakan akan terdeteksi per frame, menghasilkan resolusi
TravisG
Saya tidak menambahkan itu sebagai jawaban karena hanya itulah yang dapat saya pikirkan saat ini dan saya tidak memiliki data atau pengalaman aktual dengan sistem gerak lambat untuk mendukungnya: P
TravisG
2
@ Byte56 Pertanyaannya adalah "Apakah adegan gerak lambat meningkatkan penggunaan CPU / GPU?" Ini [hampir] tentu saja menyiratkan penggunaan per waktu, bukan per tabrakan. Jadi saya pikir jawabannya, sejauh GPU berjalan, adalah tetap tidak berubah. Saya hanya membahas ini karena tidak jelas apa yang paragraf pertama coba sampaikan.
not not
3

Mungkin saja ini yang terjadi. Kecuali Anda melakukan fisika untuk tabrakan pada GPU, itu berarti jongkok untuk itu. Tetapi dalam hal fisika itu sendiri ... itu mungkin.

Jika Anda mensimulasikan pergerakan sejumlah tubuh, mereka cenderung bergerak dengan cara yang sangat mudah ditebak. Medan gaya dan gaya (yaitu: gravitasi) mudah diprediksi. Tempat perpindahan barang dihitung dengan cepat.

Sampai satu hal menyentuh yang lain. Lihat, dalam fisika, Anda memiliki apa yang disebut kutu waktu; ini adalah jumlah waktu yang dieksekusi oleh sistem fisika. Jika kutu waktu Anda mencakup 1/30 detik (30fps untuk pembaruan fisika), maka setiap pembaruan fisika memindahkan objek 33,3 milidetik ke masa depan.

Ketika objek tidak bertabrakan, Anda bisa memindahkannya dari awal 33,3ms ke akhir. Fisika untuk melakukan itu sederhana dan telah terkenal selama berabad-abad. Anda cukup menentukan akselerasi dari gaya total, menerapkan akselerasi untuk kutu waktu ke objek, dan memindahkannya pada kecepatan baru (catatan: ini bisa lebih kompleks jika Anda menginginkan akurasi yang lebih besar).

Masalahnya adalah ketika benda bertabrakan. Tiba-tiba, sekarang Anda harus memproses kekuatan fisika dalam kutu waktu, bukan hanya sekali di awal. Jika sebuah objek bertabrakan dua atau tiga kali dalam bingkai fisika, maka itu lebih banyak perhitungan fisika yang harus Anda ulangi.

Jika Anda memiliki banyak tabrakan dalam satu kali kutu, Anda dapat benar-benar membunuh framerate Anda. Namun, peluang beberapa tabrakan dalam kisi waktu berkurang karena ukuran kutu waktu berkurang. Sim balap canggih seperti Forza dan Gran Turismo menjalankan sistem fisika mereka pada framerate yang luar biasa. Saya pikir salah satu dari mereka mendapat hingga 300 + fps pada pembaruan fisika mereka.

Gerakan lambat adalah padanan efektif dari itu. Dengan mengurangi jangka waktu fisika tanpa juga meningkatkan rendering framerate untuk mengompensasi, dunia tampak lebih lambat. Dan karena itu, Anda membuatnya jauh lebih kecil kemungkinannya untuk mendapatkan beberapa tabrakan dalam kutu waktu.

Yang sedang berkata, saya ragu bahwa ini sebabnya game seperti ini berjalan lambat. Secara umum, ini lebih untuk bakat visual dan presentasi dramatis. Sistem-sistem fisika itu umumnya dapat mengatasinya, berdasarkan kinerja.

Nicol Bolas
sumber
1

Pertama-tama, ini dilakukan untuk efek visual, bukan karena alasan kinerja.

Cara standar berurusan dengan kinerja dalam permainan berat fisika adalah untuk skala jumlah objek, skala kompleksitas objek, dan mengutak-atik pengaturan mesin untuk skala antara presisi simulasi dan kinerja. Jika ada masalah, Anda akan membatalkan fitur yang menurut Anda paling tidak signifikan.

Namun ingat, industri ini telah membuat game mobil yang cukup realistis selama ~ 15 tahun terakhir, dengan komputer modern tidak seperti mereka harus kembali ke 3 roda untuk menjalankannya.

Masalahnya:
Memang benar bahwa tabrakan dapat menyebabkan kerja ekstra, seberapa banyak banyak hal bergantung pada spesifikasi permainan, mesin fisika yang lebih terperinci akan memiliki banyak tabrakan kecil antara bagian yang berbeda yang mungkin merupakan peningkatan signifikan dalam perhitungan yang diperlukan. . Tapi itu harus diperhitungkan ketika fisika ditingkatkan, itu tidak masalah untuk mendapatkan fisika yang baik yang masih bisa menangani beberapa tabrakan.

Jika Anda menjalankan simulasi fisika lebih lambat untuk mendapatkan gerakan lambat, beban akan turun secara proporsional. Namun, orang harus mencatat bahwa persyaratan untuk gerak lambat dan fisika waktu nyata berbeda, Anda dapat memiliki presisi yang lebih rendah ketika hal-hal terjadi pada kecepatan balap. Selama pemain tidak menyadari bahwa mesin fisika salah, itu bukan masalah besar, gerakan lambat membuat slip lebih mudah ditangkap, sehingga gerakan lambat memiliki persyaratan presisi yang lebih tinggi.

Seseorang dapat memilih untuk menggunakan fisika yang sama, diskalakan untuk memenuhi kedua set persyaratan. Solusi ini akan membutuhkan beberapa kekuatan pemrosesan tambahan, tetapi mudah diimplementasikan dan diberikan komputer modern yang layak.

Mengalihkan pengaturan fisika lebih rumit, tetapi berpotensi menghasilkan beberapa tabrakan yang indah, tidak hanya dapat meningkatkan ketepatan, juga dimungkinkan untuk mengganti model fisika mobil untuk model terperinci yang lebih baik yang memecah dengan cara yang lebih realistis. Mode ini harus berakhir menggunakan kira-kira jumlah waktu CPU yang sama untuk fisika seperti mode normal, hanya karena keduanya diskalakan untuk dijalankan pada konfigurasi minspec yang sama.

Cara tengah adalah dengan menggunakan mesin fisika langkah variabel, yang secara umum akan meningkatkan presisi ketika Anda memperlambat simulasi, sehingga memecahkan setidaknya sebagian dari masalah. Ada alasan lain untuk tidak menggunakan fisika langkah variabel, tetapi langkah variabel masih cukup umum di industri.

aaaaaaaaaaaa
sumber