Dlaczego stare gry 3D miały „roztrzęsioną” grafikę? [Zamknięte]

15

Ostatnio grałem w „MediEvil” i zastanawiałem się: co powoduje, że niektóre stare gry 3D mają „płynną” grafikę podczas ruchu? Jest obecny w grach takich jak „Final Fantasy VII” , „MediEvil” i pamiętam, że „Dungeon Keeper 2” ma to samo w trybie powiększenia. Jednak przykłady takie jak „Quake 2” nie miały tego „problemu” i jest tak samo stary. Rozdzielczość nie wydaje się być problemem, wszystko jest doskonale odwzorowane, gdy stoisz w miejscu. Czy gra jest odświeżana powoli, czy może ma to związek z buforowaniem?

dreta
źródło
5
Czy możesz zamieścić link do filmu pokazującego efekt, o którym mówisz?
John Calsbeek,
1
youtube.com/watch?v=H-M6EPgs1JY&t=1m20s na przykład, za każdym razem, gdy kamera porusza ekranem, szaleje, wygląda dziwnie, PS nie wydaje się mieć problemów z generowaniem linii prostej, więc nie sądzę to tylko pikselacja
dreta,
1
Nic nie widzę ... być może byłem wtedy tak przyzwyczajony do grania w gry, że nie zauważyłem problemów. Ale moja pierwsza myśl była taka, że ​​być może widziałeś afektywną transformację tekstury wspomnianą w odpowiedzi Mike'a, która może sprawiać, że rzeczy wydają się dziwnie rozciągać w zależności od kąta patrzenia.
Kylotan,
@Kylotan jest szczególnie zauważalny przy wolniejszych ruchach kamery (np. Około 16 min w linku YouTube dreta, powinieneś to zauważyć na podłodze i ścianach). Myślę, że właśnie dlatego gry PS miały tak szybkie kamery w prawie każdej grze :)
kaoD
1
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ pyta, dlaczego szeroki zestaw gier wideo działał w taki sposób. Te pytania są generalnie nie na temat, przynajmniej teraz, ponieważ opierają się na spekulacji, w jaki sposób programiści faktycznie zrobili to, co robią. Często możemy poprawić te pytania, zmieniając „jak to zrobić w mojej własnej grze”, ale tutaj nie wydaje się, że taka jest rzeczywista intencja.
Gnemlock

Odpowiedzi:

27

Mam na ten temat tylko najdziwniejsze cytaty , ale pojawia się na oryginalnej PlayStation, jednostka wektorowa (która zwykle była używana do transformacji wierzchołków) była zdolna do operacji w punkcie stałym, a rasterizer używał również matematyki w punkcie stałym, ale między tymi liczbami można było przekazywać tylko liczby całkowite. Widzisz więc artefakty kwantyzacji: narożniki wielokąta są przyciągane do najbliższego punktu siatki. Idealnie stabilny do nieruchomej sceny, ale dość niepokojący w ruchu.

Z odrobiny dodatkowych badań wynika, że ​​oryginalny PlayStation miał różne rozdzielczości, przy których rasterizer mógł pracować, od 256x224 do 740x480. Możesz więc wybrać niższe rozdzielczości, aby uzyskać lepszy współczynnik wypełnienia, ale zobaczysz tego rodzaju artefakty, ponieważ siatka w niskich rozdzielczościach jest wystarczająco gruba, aby łatwo wykryć gołym okiem.

John Calsbeek
źródło
IIRC na PC (dotyczy animacji siatkowych) wystąpiły pewne problemy (całkiem niedawno, naprawione około 2000-2005) z obliczeniami zmiennoprzecinkowymi na GPU - nie pamiętam, jaki dokładnie był problem, ale spowodowało to bardzo „ niepokojące animacje postaci. Pamiętam, że Gwiezdne wojny Mroczne widmo pokazało to zachowanie dość drastycznie.
Jonathan Dickinson
@JathanathanDickinson Nie myślisz o efekcie „opakowania cukierków” na stawy, prawda? isg.cs.tcd.ie/projects/DualQuaternions
John Calsbeek,
Nie, to były pewne nieścisłości powstałe z powodów, których po prostu nie pamiętam.
Jonathan Dickinson
9

Jeśli grasz w Quake 2 w trybie programowym, faktycznie zawiera on niektóre z wymienionych przez ciebie problemów. Jeśli spojrzysz na modele Certian pod ostrymi kątami w Quake 2, zobaczysz tekstury „pływania”. Wynika to z faktu, że wiele wczesnych silników 3D używało afinicznego odwzorowywania tekstur . Oszczędza to kosztownego podziału na piksel, który zapewnia prawidłowe odwzorowanie tekstury z perspektywy, ale oznacza, że ​​tekstury będą się wypaczać, gdy będą oglądane pod ostrymi kątami.

Ponadto wiele wczesnych gier 3D (w tym Quake 2) stosowało proste przekształcanie wierzchołków celu animowania swoich modeli w przeciwieństwie do animacji szkieletowych. Wierzchołki są animowane między klatkami kluczowymi z interpolacją liniową. Oczywiście nie zachowuje to zbyt dobrze odległości między wierzchołkami, więc kończy się syndromem galaretowatego wierzchołka - modele drżą nieco podczas animacji!

Mike Welsh
źródło
2
Prawidłowe, a rozdzielczość oczek wynosiła tylko 256 x 256, więc ruch wierzchołków interpolowany w nieprostych liniach. Jakby próbować narysować płynnie animowaną huśtawkę miecza w sztuce pikseli.
Myrddin Emrys
Tak, format MD2 miał tylko jeden 3 bajty / wierzchołek.
Tili
1
Quake 2 faktycznie wykonywał mapowanie tekstur z poprawną perspektywą, ale korygował tylko co 16 (lub 8 za pomocą opcji użytkownika) pikseli.
Maximus Minimus
1
Aby to poprawić w oświadczeniach o Q2: Quake 2 używa poprawnego perspektywicznie odwzorowania txt dla geometrii poziomu (interpolacja liniowa co 16 poprawnych obliczonych pikseli) i dostosowuje mapowanie tekstu dla obiektów ruchomych
Peter Parker