Чому в старих 3D-іграх була «хитра» графіка? [зачинено]


15

Останнім часом я грав у "MediEvil" , і мені стало цікаво: що спричиняє те, що в деяких старих 3D-іграх "тече" графіка під час руху? Він присутній у таких іграх, як «Final Fantasy VII» , «MediEvil» , і я пам’ятаю, «Dungeon Keeper 2» мав те саме в режимі збільшення. Однак у таких прикладах, як "Quake 2" не було цієї проблеми, і це так само давно. Здається, що рішення не є проблемою, все виходить ідеально, коли ви стоїте на місці. Чи гра оновлюється повільно, чи це щось стосується буферизації?


5
Чи можете ви пов’язати відео, яке демонструє ефект, про який ви говорите?
Джон Калсбек

1
Наприклад, youtube.com/watch?v=H-M6EPgs1JY&t=1m20s , кожного разу, коли камера рухається по екрану, вона виглядає дивною, PS не здається, що виникають проблеми з генерацією прямої лінії, тому я не думаю це просто
пікселяція

1
Я нічого не бачу ... можливо, я тоді так звик грати в ігри, що не помічав проблем. Але моя перша думка полягала в тому, що, можливо, ви бачите афінну трансформацію текстури, згадану у відповіді Майка, яка може змусити речі дивно розтягнутися на основі кута зору.
Килотан

@Kylotan це особливо помітно в уповільнених рухах камери (наприклад, близько 16 хвилин у YouTube на посилання Дрети, ви повинні помітити це в підлозі та стінах.) Я думаю, саме тому PS-ігри мали такі швидкі камери майже в кожній грі :)
kaoD

1
Я голосую за те, щоб закрити це питання поза темою, тому що він задає питання, чому широкий набір відеоігор діяв так, як вони. Ці питання, як правило, поза темою, принаймні зараз, оскільки вони покладаються на спекуляції того, як розробники насправді робили те, що роблять. Ми часто можемо покращити ці питання за допомогою перегляду "як я це роблю у власній грі", але це, мабуть, не є власне наміром тут.
Gnemlock

Відповіді:


27

Я маю лише своє найбільш химерні цитати для цього, але це з'являється в оригінальній PlayStation, векторна одиниця (яка зазвичай використовувалася для перетворення вершин) була здатна до операцій з фіксованою точкою, і растерізатор також використовував математику з фіксованою точкою, але між ними можна було пропустити лише цілі числа. Отже, ви бачите артефакти квантування: кути полігона стикаються до найближчої точки сітки. Ідеально стійкий для нерухомої сцени, але досить непомітний в русі.

З невеликих додаткових досліджень виявляється, що оригінальний PlayStation мав різні роздільні здатності, при яких може діяти растерізатор, від 256x224 до 740x480. Таким чином, ви можете вибрати більш низьку роздільну здатність, щоб покращити швидкість заповнення, але ви побачите такі види артефактів, оскільки сітка з низькою роздільною здатністю досить груба, щоб легко виявити неозброєним оком.


IIRC на ПК (для роботи з сітчастими анімаціями) виникли деякі проблеми (зовсім недавно насправді, виправлені близько 2000-2005 рр.) З розрахунками з плаваючою комою на графічному процесорі - я не можу пригадати, яка точна проблема була, але це призвело до дуже " неприємні "анімації персонажів. Я пам’ятаю, Зоряні війни «Призрачна загроза» проявляла таку поведінку досить різко.
Джонатан Дікінсон,

@JonathanDickinson Ви не думаєте про ефект "цукеркової обгортки" на суглоби, чи не так? isg.cs.tcd.ie/projects/DualQuaternions
Джон Калсбек

Ні, це були деякі неточності, що виникали з причин, яких я просто не можу згадати.
Джонатан Дікінсон

9

Якщо ви граєте в Quake 2 в програмному режимі, він насправді має деякі з проблем, які ви згадуєте. Якщо ви подивитеся на моделі сертифіката під різкими кутами в Quake 2, ви побачите "плаваючі" текстури. Це тому, що багато ранніх 3D-двигунів використовували чітке відображення текстури . Це дозволяє економити дорогий поділ на піксель, який дає вам перспективне правильне відображення текстури, але це означає, що ваші текстури будуть викривлюватися, якщо дивитися під різкими кутами.

Також багато ранніх 3D-ігор (включаючи Quake 2) використовували прості вершинні морфінги щоб анімувати свої моделі на відміну від скелетної анімації. Вершини налаштовуються між ключовими кадрами з лінійною інтерполяцією. Звичайно, це не дуже добре зберігає відстані між вершинами, тож у вас закінчується синдром вершини желей - моделі трохи хитаються, коли вони оживляють!


2
Правильно, а роздільна здатність сіток становила лише 256х256, тому рух вершин інтерполювався непрямими лініями. Начебто намагаються намалювати плавно анімуючий розмах меча в піксельному мистецтві.
Мірддін Емріс

Так, у форматі MD2 було лише одне 3 байти / вершини.
Тілі

1
Quake 2 фактично робив правильне відображення текстури, але виправляв лише кожні 16 (або 8 через користувацький параметр) пікселів.
Максим Мінімус

1
Щоб зробити це твердженнями про Q2 правильним: Quake 2 використовує правильне перспективне відображення txt для геометрії рівнів (лінійна інтерполяція кожного 16-го правильного обчисленого пікселя) та афішне складання тексту для рухомих об’єктів
Пітер Паркер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.