Разница между Doom и Quake 3D-рендерингом

Я изучал (старые) методы 3D-рендеринга в течение последних недель и думаю, что теперь у меня есть справедливое понимание того, как работает 3D-рендеринг в Doom. Он использует raycasting для рендеринга 3D-сцены, использует спрайты для объектов и, следовательно, не является "истинным" 3D. Это также не позволяет реально смотреть вверх/вниз, только через Y-стрижку.

Quake - это идентификатор первого "истинного" 3D-движка, имеет объекты, которые можно просматривать под разными углами и позволяет смотреть вверх и вниз.

Теперь, когда я изучаю эти методы, я слышу этот "истинный" 3D, но я не могу получить четкое объяснение того, что именно означает этот истинный 3D. Как рендеринг Quake отличается от рендеринга Doom?

Использует ли мир Quake 3D-вершины и все они проектируются вместо raycasting для пересечений?

Я хотел бы услышать четкое объяснение различий!

P.S. Я знаю, что исходный код Quake доступен, но FTP-код id работает в течение нескольких недель, и я не могу найти его нигде. Если кто-нибудь знает, где его найти в другом месте, дайте мне знать.

Ответ 1

Я не думаю, что существует одно универсальное определение. Возможно, самый верный возможный 3D - это тот, который неотличим от того, что вы видите в реальной жизни, что означает фотографически реалистичное качество рендеринга объектов, освещения, оттенков, полностью учитывающих изменения, происходящие в реальном времени, создавая ощущение глубины и также изменяя положение зрителя, использование левого, правого или обоих глаз и изменение фокуса. В настоящее время у нас нет таких мощных технологий на наших компьютерах и телевизорах. Реальный опыт до сих пор превосходит все доступные на рынке для общего потребителя.

По сравнению с Doom Quake улучшил освещение (через световые карты), затенение, улучшенное отображение текстур (через MIP-карты, уменьшающие артефакты сглаживания, наблюдаемые при просмотре удаленных объектов) и 3d-объекты вместо спрайтов. Его игровое пространство не было неотъемлемо плоским, поскольку Doom и рендеринг позволяли смотреть на вещи под разными углами, как вы говорите.

Более подробную информацию можно найти в здесь и здесь.

Если вам интересно, как все эти интересные вещи Quake можно сделать, прочитайте книги Майкла Абраша, например. Ramblings в режиме реального времени и Графическое программирование Черной книги.

Ответ 2

Просто, чтобы указать, движок рендеринга Doom не является raycaster (как Wolfenstein 3D), то есть он не работает, бросая луч для каждого столбца экрана. Скорее, это двигатель BSP. Геометрия уровня делится на двоичное дерево, и это дерево спускается для рендеринга сцены.

В каждой точке дерева есть два поддерева, и они идут в порядке, который зависит от местоположения игрока относительно линии, которая их делит. Это гарантирует, что они отображаются в порядке, так что отдаленные стены закрываются более близкими.

Вертикальный вертикальный поиск вверх и вниз невозможен по причинам, которые вы объясняете - такие игры, как Heretic и Hexen, которые добавили способность делать это, использовали Y-стрижку, которая по сути является взломом. Это как расширение вертикальной высоты экрана, а затем предоставление окна в него, которое перемещается вверх и вниз.

Вы можете найти дополнительную информацию о Doom wiki и Wikipedia - оба они получены из write-up Я написал обо всем 2 года назад.

Надеюсь, это поможет!

Ответ 3

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

Ответ 4

dom 3d появление - не менее иллюзия, чем землетрясение, двигатель землетрясения может отображать одни и те же карты (если их портировать) как обреченность, если вы откажетесь от поиска вверх/вниз, тогда это будет по-прежнему истинно 3d из-за того, что он делает в соответствии с капот, несмотря на то, что он выглядит так же, как гибель? или это будет меньше 3d тогда? результат будет таким же.