В последнее время я играю в «MediEvil» , и меня удивляет: почему некоторые старые 3D-игры имеют «плавную» графику при движении? Он присутствует в играх, таких как "Final Fantasy VII" , "MediEvil" , и я помню, что "Dungeon Keeper 2" имеет то же самое в режиме масштабирования. Однако в таких примерах, как «Quake 2» , такой «проблемы» не было, и она такая же старая. Разрешение, похоже, не является проблемой, все отображается идеально, когда вы стоите на месте. Игра медленно обновляется, или это связано с буферизацией?
15
Ответы:
У меня есть только самые странные цитаты для этого, но, похоже, на оригинальной PlayStation, векторный блок (который обычно использовался для преобразования вершин) был способен к операциям с фиксированной точкой, а растеризатор также использовал математику с фиксированной точкой, но только два числа могут быть переданы между ними. Итак, вы видите артефакты квантования: углы многоугольника привязываются к ближайшей точке сетки. Идеально устойчив для неподвижной сцены, но довольно смущает в движении.
После небольшого дополнительного исследования выяснилось, что у оригинальной PlayStation были разные разрешения, с которыми мог работать растеризатор, от 256x224 до 740x480. Таким образом, вы можете выбрать более низкие разрешения, чтобы получить лучшую скорость заполнения, но вы бы увидели эти виды артефактов, поскольку сетка при низких разрешениях достаточно грубая, чтобы ее можно было легко обнаружить невооруженным глазом.
источник
Если вы играете в Quake 2 в программном режиме, у вас действительно есть некоторые проблемы, о которых вы упомянули. Если вы посмотрите на модели Certian под острыми углами в Quake 2, вы увидите «плавающие» текстуры. Это потому, что многие ранние 3D движки использовали аффинное наложение текстур . Это экономит ваше дорогое разделение на пиксель, что дает вам перспективное наложение текстуры, но это означает, что ваши текстуры будут деформироваться при просмотре под острыми углами.
Кроме того, многие ранние 3D-игры (включая Quake 2) использовали простое изменение вершин для анимации своих моделей, в отличие от скелетной анимации. Вершины перемещаются между ключевыми кадрами с линейной интерполяцией. Естественно, это не очень хорошо сохраняет расстояния между вершинами, так что в итоге вы получите синдром вершин желе - модели немного покачиваются, когда они анимируются!
источник