Contoh pemalsuan 3D


17

Adakah yang tahu ada contoh bagus dari 3D yang dipalsukan dalam 2D ​​(tidak harus kode, tapi game yang bisa saya cari)? Pemain memiliki perspektif bahwa mereka akan 'masuk' ke layar dan hal-hal keluar pada mereka. Saat ini, saya hanya meningkatkan musuh 2D untuk memberikan ilusi bahwa mereka semakin dekat, tetapi masih terasa cukup datar. Apakah ada tips tentang cara memberikan ilusi 3D lebih banyak tanpa benar-benar menggunakan mesin 3D?

Sunting : Baru saja menemukan istilah 'Mode7' dan video ini yang menunjukkan cukup banyak apa yang saya coba cari tahu. (terutama game pada 0:13 dan 1:03). Apa cara yang baik untuk mengimplementasikan sesuatu seperti ini?


1
Banyak game komputer sebelum pertengahan 90-an "palsu" 3d, dan hampir semua game konsol sebelum era generasi kelima (Playstation / N64) melakukannya. Mungkin membantu untuk memperjelas apa yang Anda lakukan sekarang dengan tangkapan layar atau sesuatu ...
thedaian

1
Saya telah memperbarui posting dengan video yang baru saja saya temukan.
XSL

2
Semua 3D di game komputer adalah 3D palsu. Tak satu pun dari hal-hal itu benar-benar ada! (Maksud saya ini dalam arti bahwa setiap 'pemalsuan' 3D dalam permainan hanyalah kerabat dari apa yang Anda pikirkan adalah 'nyata'. Mode7 hanyalah jalan tengah di antara mereka. Matematika dasar yang sama.)
DampeS8N

Jawaban:


13

Salah satu permainan arcade klasik favorit saya juga kebetulan melakukan 3D palsu: Space Harrier

Dalam video itu Anda dapat melihat beberapa trik yang mereka gunakan, tetapi salah satu efek visual paling efektif sangat mulus sehingga Anda mungkin tidak menyadarinya: ketika pemain (atau yang lebih penting kamera) bergerak, mereka menggunakan paralaks untuk memberikan objek dalam pemandangan perasaan mendalam.

Artinya, objek yang lebih dekat bergerak dari sisi ke sisi lebih cepat dari objek yang jauh. Contoh klasik paralaks memandang ke luar jendela mobil yang bergerak: benda-benda di dekatnya seperti rambu-rambu jalan mencambuk, pohon-pohon di kejauhan bergerak lebih lambat, sementara hal-hal yang jauh seperti gunung tampaknya tidak bergerak.

Selain itu, objek tidak skala secara linear saat semakin dekat. Artinya, objek hanya berskala sedikit saat jauh dan meningkatkan lebih cepat ketika dekat; scaling linear akan jika mereka naik pada tingkat yang sama sepanjang waktu. Anda mengatakan bahwa Anda telah menskala objek Anda saat semakin dekat, tetapi Anda mungkin memperbesarnya secara linear dan itu terlihat datar.

TAMBAHAN: Afterburner adalah gim arcade klasik lain yang menggunakan banyak trik grafis yang sama.


1
Bayangan juga bagian yang sangat penting dalam membuat sesuatu 'tampak seperti' 3D. Bergantung pada gaya permainan ini mungkin atau mungkin tidak mudah dilakukan, dapatkah karakter Anda membuat bayangan di tanah atau apakah kapal Anda cukup besar untuk membuat bayangan di planet? Ini adalah konsep umum di balik benjolan atau pemetaan normal. (Tidak menyarankan itu dilakukan, hanya sebagai contoh high-end) Bayangan karakter Anda pergi di atas pohon sedikit di latar belakang tetapi tidak bukit jauh di kejauhan hanya dapat menambahkan tepi yang Anda cari.
James

6

Sebagian besar gim ini menggunakan trik "Mode 7" yang terkenal. Itu hanya rotozoom. Operasi ini dilakukan oleh coprocessor pada konsol sehingga sangat cepat pada perangkat ini. Operasi 3d nyata terlalu mahal. Tetapi dengan perangkat keras yang sebenarnya, lebih mudah untuk mensimulasikan dengan 3D nyata.

Rotozoom adalah rotasi dan zoom pada sprite. Lihatlah penjelasan ini atau implementasi SDL ini .

Cari di google "MODE-7 floormap" untuk menemukan sampel dan kode.

F-Zero Mode 7 adalah salah satu game pertama yang menggunakannya di snes.


5

Saya menemukan ulasan fantastis dari teknik ini, dengan contoh dan penjelasan, beberapa tahun yang lalu. Pertanyaan Anda mendorong saya untuk mencarinya lagi: Lou's Pseudo 3d Page . Dia dulu memiliki mesin berlari lebih cepat tetapi menghapusnya untuk beberapa alasan ( Mesin Wayback jika teman Anda di sini )

Untuk lebih jauh menjawab pertanyaan Anda, berikut adalah daftar game dari halamannya:

  • Street Fighter II (arcade) ("efek raster" di lantai dojo)
  • Berlari lebih cepat (arcade)
  • Space Harrier (arcade)
  • Super Hang-on (arcade)
  • Enduro (Atari 2600)
  • Posisi Tiang (arcade, Atari 2600)
  • Road Rash (3DO)
  • Power Drift (arcade)
  • Racin 'Force (arcade)
  • Hydra (arcade)
  • Berlari lebih cepat (arcade)
  • Turbo (arcade)
  • Spy Hunter II (arcade)
  • Pitstop II (Commodore 64)
  • Pembalap Enduro (arcade)
  • Lotus (Commodore Amiga)
  • Test Drive II (Commodore Amiga?)
  • Buggy Kecepatan

Sekali lagi, bukan daftar saya — semua kredit harus diberikan kepada Louis Gorenfeld untuk penelitiannya yang luar biasa.


4

Semua game 3d palsu 3d: P Saya bercanda, saya tahu apa yang Anda maksud dengan 'palsu 3d' ..

Nah, 8 / 16bit memiliki beberapa contoh teknik yang sangat umum menghadirkan latar belakang berlapis-lapis bergerak dengan kecepatan yang berbeda, untuk meniru paralaks. Itu juga sangat umum untuk dilihat .. sebenarnya, lebih mudah untuk hanya melihat game balap yang dibuat untuk konsol daripada menjelaskan, yang saya percaya adalah apa yang Anda coba lakukan.

Saya melihat beberapa hal baru dengan semangat yang sama muncul dalam skenario flash. Lihatlah Missile Game 3d .

Saya tidak tahu jalur apa yang ingin Anda ambil untuk mencapai efek ini, tetapi tampaknya Anda menyarankan Anda telah memulai beberapa pemrograman dan memiliki akses ke grafik (sebuah API, mungkin?). Jadi itu hanya masalah menemukan parameter yang tepat untuk pergerakan melintasi layar dan skala sebagai fungsi waktu. Saya tidak berpikir Anda akan menemukan persamaan khusus untuk itu, karena mungkin akan sangat tergantung pada situasi spesifik gim Anda (kecepatan, balap, pesawat terbang, terowongan, dll.) Percobaan dan kesalahan yang sudah Anda lakukan adalah taruhan terbaik Anda, untuk menemukan skala fungsi dan lintasan di layar sehubungan dengan waktu.


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.