Как Джон Кармак смог перейти от 3D-движка Wolfenstein к движку Doom?

119
13
1
Лучший ответ
118

Для Wolf3D все стены были выровнены по оси и имели постоянный размер. Итак, в рендере луч отбрасывается на вертикальный столбец пикселей экрана. Первое пересечение было найдено с использованием сетки и с использованием расстояния и местоположения в сетке, вертикальное отображение текстуры было простым кусочком математики. Расположение Y под этим столбцом - это этаж, а над столбцом - потолок.

Для Doom все еще существовали те же ограничения движения камеры. Там нет камеры крена или смотреть вверх или вниз. Это позволило масштабировать все стены по вертикали. Однако вместо того, чтобы все стены были на регулярной сетке, они могут быть произвольными, но все же вертикальными. Doom использовал 2D BSP-деревья, чтобы рекурсивно подразделить эти линии (стены, спроецированные на плоскость пола) на выпуклые области. Это дерево BSP может быть пройдено во время выполнения, приводя к ближайшему интервалу для каждого столбца вертикального сканирования. Затем выпуклые 2D-области можно использовать для определения областей пола и потолка, которые имеют постоянную высоту на каждый выпуклый сектор.

Doom также добавил некоторые дополнительные функции, такие как настройка глубины (затемнение на расстоянии), простое освещение областей стен, альфа-тестирование стен и цилиндрическое небо.

ответил(а) 2020-03-30T00:22:04+03:00 11 месяцев назад
102

Фабьен Санглард написал хороший обзор исходного кода движка Doom (среди нескольких других). Он ответит на большинство ваших вопросов: обзор исходного кода Doom Engine.

ответил(а) 2020-03-30T00:22:04+03:00 11 месяцев назад
96

Книга Masters of Doom дает захватывающее представление о всей разработке Wolf3D, DOOM и т. Д. Не становится особенно технической, но, по крайней мере, устанавливает сцену для того, как и где он выполнил работу.
Мастера гибели: как два парня создали империю и преобразовали поп-культуру: Дэвид Кушнер: 9780812972153: Amazon.com: Books

ответил(а) 2020-03-30T00:22:04+03:00 11 месяцев назад
36

Он делал это постепенно. Существует игра Raven под названием Shadowcaster, в которой есть движок, созданный Carmack, который считается ранней реализацией того, что могло бы превратиться в движок Doom. Это было медленнее, но сама игра была разработана таким образом, что это мало что значило. Интересно, что в нем есть некоторые особенности, которых не было в Doom, например, склоны.

Возможно, самым большим скачком был выбор использования BSP-рендеринга в отличие от Raytracing. Решение было принято после того, как Ромеро создал область, из-за которой игра замедлилась до ползучести. Кармак читал о BSP и решил внедрить его, чтобы посмотреть, решит ли это проблему Ромеро. Это было открытием, это было намного быстрее, позволяло использовать сектора, и это делало разработку карт более интуитивно понятной. Есть места, которые могут объяснить это лучше, поиск движка Doom и разбиение двоичного пространства, я уверен, вы что-нибудь найдете.

ответил(а) 2020-03-30T00:22:04+03:00 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема