Przykłady udawania 3D

17

Czy ktoś zna jakieś dobre przykłady fałszowania 3D w 2D (niekoniecznie kod, ale gry, które mógłbym wyszukać)? Gracz ma perspektywę, że „wejdzie” na ekran i wszystko na niego wychodzi. W tej chwili po prostu skaluję wrogów 2D, aby dać złudzenie, że zbliżają się, ale nadal wydaje się dość płaski. Czy są jakieś wskazówki, jak zwiększyć iluzję 3D bez korzystania z silnika 3D?

Edycja : Właśnie natknąłem się na termin „Mode7” i ten film, który pokazuje prawie to, co próbuję rozgryźć . (zwłaszcza gry o 0:13 i 1:03). Jaki jest dobry sposób na wdrożenie czegoś takiego?

XSL
źródło
1
Wiele gier komputerowych sprzed połowy lat 90. „sfałszowało” 3d i prawie wszystkie gry na konsole sprzed ery piątej generacji (Playstation / N64). Może to pomóc wyjaśnić, co robisz teraz za pomocą zrzutu ekranu lub czegoś takiego ...
thedaian
1
Zaktualizowałem post za pomocą filmu, który właśnie znalazłem.
XSL,
2
Wszystkie 3D w grach komputerowych są sfałszowane 3D. Nic z tych rzeczy naprawdę nie istnieje! (Mam na myśli to w tym sensie, że każde „fałszowanie” 3D w grze jest tylko spokrewnieniem tego, co myślisz, że jest „prawdziwe”. Tryb 7 to tylko środek między nimi. Ta sama podstawowa matematyka.)
DampeS8N

Odpowiedzi:

13

Jedna z moich ulubionych klasycznych gier zręcznościowych również zrobiła fałszywą grę 3D: Space Harrier

W tym filmie możesz zobaczyć kilka sztuczek, których użyli, ale jeden z najbardziej skutecznych efektów wizualnych jest tak płynny, że możesz nawet nie zauważyć, że to się dzieje: kiedy porusza się odtwarzacz (lub, co ważniejsze, kamera), używają paralaksy, aby podawać przedmioty scena poczucie głębi.

Oznacza to, że bliższe obiekty poruszają się na boki szybciej niż odległe obiekty. Klasycznym przykładem paralaksy jest wyglądanie przez okno jadącego samochodu: pobliskie rzeczy, takie jak znaki uliczne, mkną w plamie, drzewa dalej poruszają się wolniej, a odległe rzeczy, takie jak góry, ledwo się poruszają.

Ponadto obiekty nie skalują się liniowo w miarę zbliżania się. Oznacza to, że obiekty skalują się tylko w niewielkiej odległości i powiększają się szybciej, gdy są blisko; skalowanie liniowe byłoby, gdyby skalowały się w tym samym tempie przez cały czas. Mówisz, że skalujesz już obiekty, gdy się zbliżają, ale możesz skalować je liniowo, a to wygląda płasko.

DODATEK: Afterburner to kolejna klasyczna gra zręcznościowa, w której zastosowano wiele takich samych sztuczek graficznych.

jhocking
źródło
1
Cienie są również bardzo kluczowymi elementami sprawiającymi, że rzeczy wydają się „3D”. W zależności od stylu gry może to być lub nie być tak łatwe, czy twoja postać może rzucić cień na ziemię, czy też twój statek jest wystarczająco duży, aby rzucić cień na planetę? Jest to ogólna koncepcja mapowania nierówności lub normalnego. (Nie sugeruję, że należy to zrobić, tak jak w przypadku najwyższej klasy). Cień twojej postaci przesuwający się lekko nad drzewem w tle, ale nie w oddali wzgórza w odległości, może tylko dodać krawędź, której szukasz.
James
6

Większość z tych gier wykorzystuje słynne sztuczki „Mode 7”. To tylko rotozoom. Ta operacja została wykonana przez koprocesor na konsoli, więc była bardzo szybka na tych sprzętach. Rzeczywiste operacje 3D były zbyt kosztowne. Ale przy użyciu rzeczywistego sprzętu łatwiej jest symulować za pomocą prawdziwego 3D.

Rotozoom to rotacja i powiększenie duszka. Spójrz na to wyjaśnienie lub tę implementację SDL .

Wyszukaj w Google „floatap MODE-7”, aby znaleźć próbki i kod.

F-Zero Mode 7 był jedną z pierwszych gier, w których zastosowano go na snes.

Ellis
źródło
5

Kilka lat temu znalazłem fantastyczny przegląd tych technik wraz z przykładami i objaśnieniami. Twoje pytanie skłoniło mnie do jego ponownego wyszukania: Pseudo 3d strona Lou . Kiedyś miał działający silnik Outrun, ale z jakiegoś powodu go usunął ( Wayback Machine, jeśli twój przyjaciel tutaj )

Aby dalej odpowiedzieć na twoje pytanie, oto lista gier z jego strony:

  • Street Fighter II (arkada) („efekty rastrowe” na podłodze dojo)
  • Outrun (arkada)
  • Space Harrier (arkada)
  • Super Hang-on (arkada)
  • Enduro (Atari 2600)
  • Pole Position (arkada, Atari 2600)
  • Wysypka na drodze (3DO)
  • Power Drift (arkada)
  • Racin 'Force (arkada)
  • Hydra (arkada)
  • Outrunners (arkada)
  • Turbo (arkada)
  • Spy Hunter II (zręcznościowa)
  • Pitstop II (Commodore 64)
  • Enduro Racer (arkada)
  • Lotus (Commodore Amiga)
  • Test Drive II (Commodore Amiga?)
  • Speed ​​Buggy

Znowu nie moja lista - wszystkie zasługi należy się Louisowi Gorenfeldowi za jego niesamowite badania.

technomalogiczny
źródło
4

Wszystkie gry 3d są fałszywe 3d: P Żartuję, wiem, co masz na myśli przez „fałszywe 3d” ..

Cóż, 8 / 16bit ma kilka przykładów bardzo powszechnej techniki przedstawiania tła w warstwach poruszających się z różnymi prędkościami, aby naśladować paralaksę. Bardzo często się też widywało… w rzeczywistości łatwiej jest spojrzeć na dowolną grę wyścigową stworzoną dla tych konsol niż wyjaśniać, co moim zdaniem jest tym, co próbujesz zrobić.

W scenariuszu flashowym pojawiają się nowe rzeczy w tym samym duchu. Spójrz na Missile Game 3d .

Nie wiem, jaką ścieżkę chcesz podjąć, aby osiągnąć ten efekt, ale wydaje się, że sugerujesz, że zacząłeś programować i masz dostęp do grafiki (może API?). Więc to tylko kwestia znalezienia odpowiednich parametrów do poruszania się po ekranie i skalowania w funkcji czasu. Nie sądzę, że znajdziesz odpowiednie równania, ponieważ prawdopodobnie będzie to w dużej mierze zależało od konkretnej sytuacji w grze (zwykła prędkość, wyścigi, samoloty, tunele itp.). jest najlepszym rozwiązaniem, aby znaleźć skalę funkcji i trajektorię na ekranie w stosunku do czasu.

Diego
źródło
3

Jazz Jackrabbit i stare gry Sonic miały te światy premiowe, które były pseudo 3d.

Jordaan Mylonas
źródło