Game development
Old hardware
Games and game consoles
Comments 16
0
Шикарно!
Надо найти старую демку и заново пройти (e3-1220/16gb ddr3/ssd-480/HD7750)
+1
В шутерах наподобие Quake использовалось двоичное разбиение пространства (binary space partitioning, BSP), а Turok выбрал совершенно иной подход: в нём применялись только статичные меши.
Что, простите? BSP это технология, позволяющая попилить пространство и не отрисовывать то, что не видно на экране, с целью выдавить немного фпс из машинки. Статические меши-то тут при чем?
+2
Абсолютно причем. Выпиливая из BSP ненужные полигоны вы получаете динамический меш, который обновляется каждый кадр и передаёте его в GPU. Так работали движки на основе quake. В современном мире у вас есть статические меши уже хранящиеся на GPU и вы просто делаете вызов на их отрисовку.
+1
Я проще скажу. Разработчики игрового уровня Quake должны были делать уровень подобно созданию деталей в современных 3D CAD системах: Autocad, Компас и др. Разработчики Турок (а еще сюда можно добавить TES3-5, GTA3-5, Stalker, Crysis и др.) — просто расставляли заранее сделанные текстурированные детали по уровню, как им удобно.
+2
Но сами детали, из которых собирать уровень всё равно надо было делать подобно созданию деталей в современных 3D CAD системах :)
+2
В современном 3D MAX очень много инструментов, которыми CAD не обладают. Да и работа в них отличается. В CAD, в основном, я пользуюсь инструментами выдавить, вырезать и сплайнами (кстати, тоже самое в редакторе карт для Quake и Half-Life), а в MAX работаю на уровне вершин и полигонов.
Но мне самому не нравится такой подход, когда уровень собирают по кусочкам из деталек, что-то уникальное сделать там сложно. Полет фантазии приходится ограничивать.
0
Занятно, в Half life 2 есть уровень, где гордон пробирается под мостом. Мост в этой локации сделали одним большим мешем-декорацией. Т.е. не используя примитивы «браши» редактора, которыми создают большую часть остальных уровней.
+1
Half-Life 2 использует сходный с Quake механизм удаления невидимых поверхностей — BSP + PVS, но для практически целиком просматриваемых конструкций моста он не подходит.
Это известная проблема — ещё со времён Quake есть типы брашей, например func_wall, которые не участвуют в построении основного BSP дерева уровня* и не влияют на построение его PVS. Всякие мелкие детали, кнопки, тонкие металлоконструкции дают лишние разбиения, раздувают число листьев в BSP-дереве, при этом практически ничего не скрывают.
Но даже браши func_wall обходятся/рисуются дороже моделек — как обычные стены, с картой освещения, проекцией текстур и т.д.
Решение сделать целый мост мешем-декорацией вполне обосновано :)
Тем более для моделек там неплохо работают уровни детализации (LOD)

* уровень в Quake состоит из нескольких «моделей» и у каждой из них своё BSP дерево, там их лес :). Первая модель есть сам уровень, остальные это всякие двери, подъемники и т.п. Спец. браши выносятся из первой модели в отдельные.
+8
Это немножко не так :)
BSP это технология, позволяющая попилить пространство
да, и отсортировать объекты
и не отрисовывать то, что не видно на экране
— так было в Doom, но в Quake для этого используется PVS, который основан на выпуклых областях и порталах между ними (утилита vis) — BSP лишь один из способов разбить уровень на выпуклые области чтобы рассчитать видимость, причём разбиение далеко не самое лучшее.

Для простоты — меш это набор треугольников с одной и той-же текстурой.
Модели врагов и оружия в Quake — цельные меши, но сам уровень использует множество текстур, поэтому состоит из нескольких мешей.
Выпиливая из BSP ненужные полигоны

BSP дерево в Quake статично, и видимость определяется для листьев дерева целиком.
У каждого листа есть перечень других листьев, которые оттуда видно (PVS).
Лист статичен и содержит несколько мешей по числу текстур, использованных в нём (выпуклой многогранной области)
вы получаете динамический меш, который обновляется каждый кадр

Это набор статических мешей, который меняется только когда камера переходит из одного листа BSP дерева в другое. В целях оптимизации несколько мешей с одной текстурой объединялись, но это не каждый кадр, а раз для листа (вот наверное единственное что «динамический меш»), но Quake и без этого работает.
В современном мире у вас есть статические меши уже хранящиеся на GPU и вы просто делаете вызов на их отрисовку.

GLQuake точно так-же работает. Модели врагов в Quake были статическими мешами, определёнными для кадра анимации, тогда как Turok ещё и скиннинг/интерполяцию делал.
+3
>Однако когда игрок получает более тяжёлое вооружение и по всему экрану начинают появляться взрывы, скорость падает до 10fps.

Забавно, в детстве этот эффект просадки в динамичных играх серии Twisted Metal (на PS1) давал эффект, напоминающий стилизованное слоу-мо. И это доставляло.

Не играл в Turok, но судя по статье эта механика управления была удачной и была применена на в игре Syphon Filter в 1999, любителям стелс-шутеров рекомендую. Хорошая, художественно целостная графика и локации, сюжет, атмосфера.

Скриншоты





0
По заверению разработчиков они лишь пару раз слышали про MGS, которая параллельно создавалась.
0

Запомнил ее, потому что шла вторым диском (первый с драйверами) с первой видеокартой с 3d ускорителем, не в pci, а уже в agp слот. Вроде бы это была ati rage 128...

Only those users with full accounts are able to leave comments. , please.