Почему старые 3D-игры имеют «нервную» графику? [закрыто]

15

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

Dreta
источник
5
Можете ли вы дать ссылку на видео, которое демонстрирует эффект, о котором вы говорите?
Джон Калсбек
1
youtube.com/watch?v=H-M6EPgs1JY&t=1m20s, например, каждый раз, когда камера двигает экран, он выглядит странно, у PS не возникает проблем с генерацией прямой линии, поэтому я не думаю, что это просто пикселизация
dreta
1
Я ничего не вижу ... возможно, я тогда так привык играть в игры, что не замечаю проблем. Но моей первой мыслью было, что, возможно, вы видели трансформацию аффинной текстуры, упомянутую в ответе Майка, которая может заставить вещи странно растягиваться в зависимости от угла обзора.
Kylotan
@Kylotan это особенно заметно в медленных движениях камеры (например, около 16 минут на ссылке YouTube в dreta, вы должны заметить это на полу и на стенах.) Я думаю, именно поэтому в играх PS были такие быстрые камеры почти в каждой игре :)
kaoD
1
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он спрашивает, почему широкий набор видеоигр действовал так, как они. Эти вопросы, как правило, не по теме, по крайней мере, сейчас, поскольку они основаны на предположениях о том, как разработчики на самом деле сделали то, что они делают. Мы часто можем улучшить эти вопросы, пересмотрев вопрос «как мне сделать это в моей собственной игре», но здесь это не является реальным намерением.
Гнемлок

Ответы:

27

У меня есть только самые странные цитаты для этого, но, похоже, на оригинальной PlayStation, векторный блок (который обычно использовался для преобразования вершин) был способен к операциям с фиксированной точкой, а растеризатор также использовал математику с фиксированной точкой, но только два числа могут быть переданы между ними. Итак, вы видите артефакты квантования: углы многоугольника привязываются к ближайшей точке сетки. Идеально устойчив для неподвижной сцены, но довольно смущает в движении.

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

Джон Калсбек
источник
IIRC на ПК (для работы с анимацией сетки) были некоторые проблемы (на самом деле, совсем недавно, исправленные в 2000-2005 гг.) С вычислениями с плавающей точкой на графическом процессоре - хотя я не могу вспомнить, какая именно была проблема, но это привело к очень " смущает "анимация персонажей". Я помню, что «Звездные войны» - «Призрачная угроза» - демонстрировали это поведение довольно резко.
Джонатан Дикинсон
@JonathanDickinson Вы не думаете о эффекте «фантики» на суставы, не так ли? isg.cs.tcd.ie/projects/DualQuaternions
Джон Калсбек,
Нет, это были некоторые неточности, возникающие по причинам, которые я просто не могу вспомнить.
Джонатан Дикинсон
9

Если вы играете в Quake 2 в программном режиме, у вас действительно есть некоторые проблемы, о которых вы упомянули. Если вы посмотрите на модели Certian под острыми углами в Quake 2, вы увидите «плавающие» текстуры. Это потому, что многие ранние 3D движки использовали аффинное наложение текстур . Это экономит ваше дорогое разделение на пиксель, что дает вам перспективное наложение текстуры, но это означает, что ваши текстуры будут деформироваться при просмотре под острыми углами.

Кроме того, многие ранние 3D-игры (включая Quake 2) использовали простое изменение вершин для анимации своих моделей, в отличие от скелетной анимации. Вершины перемещаются между ключевыми кадрами с линейной интерполяцией. Естественно, это не очень хорошо сохраняет расстояния между вершинами, так что в итоге вы получите синдром вершин желе - модели немного покачиваются, когда они анимируются!

Майк валлийский
источник
2
Правильно, а разрешение ячеек было всего 256х256, поэтому движение вершин интерполировалось по неровным линиям. Вроде как пытаться нарисовать плавный анимационный ход меча в пиксельной графике.
Myrddin Emrys
Да, у формата MD2 была только одна 3 байта / вершина.
Тили
1
Quake 2 на самом деле делал перспективное наложение текстур, но исправлял его только каждые 16 (или 8 с помощью пользовательской опции) пикселей.
Максимус Минимус
1
Чтобы сделать это правильно в заявлениях о Q2: Quake 2 использует перспективное правильное отображение текста txt для геометрии уровня (линейная интерполяция каждого 16-го правильного вычисленного пикселя) и аффинное отображение текста для подвижных объектов
Питер Паркер