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?
Odpowiedzi:
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.
źródło
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.
źródło
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:
Znowu nie moja lista - wszystkie zasługi należy się Louisowi Gorenfeldowi za jego niesamowite badania.
źródło
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.
źródło
Jazz Jackrabbit i stare gry Sonic miały te światy premiowe, które były pseudo 3d.
źródło