Найти в Дзене

Девелопер показал бесшовный open world на «железе» Nintendo 64

Разработчик James Lambert показал движок для Nintendo 64, который тянет «бесшовный, огромный мир без экранов загрузки» на оригинальном железе. В демо Junkrunner 64 дальность прорисовки выглядит так, что с угла карты можно видеть почти весь мир. Демо уже доступно публике: версия 2.1 выложена как 16,5 МБ файл формата z64. Код и исходники тоже открыты. Главная боль N64 в больших локациях — дальность прорисовки и артефакты глубины. В видео Lambert прямо упирается в проблему Z-fighting, когда полигоны «спорят» за приоритет, и дальние объекты могут перекрывать ближние. ❗️ ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ КРУТЫЕ СТАТЬИ БЕСПЛАТНО Причина в том, что у N64 15-битный Z-buffer. Он хранит около 32 000 уникальных значений глубины. По словам разработчика, в его тестах примерно 90% этих значений «съедают» объекты рядом с камерой. На дальние дистанции точности уже не хватает, и сцена начинает мерцать. Решение Lambert описывает просто: «I just draw the world twice». Сначала движок рисует дальни
Оглавление

Разработчик James Lambert показал движок для Nintendo 64, который тянет «бесшовный, огромный мир без экранов загрузки» на оригинальном железе. В демо Junkrunner 64 дальность прорисовки выглядит так, что с угла карты можно видеть почти весь мир.

Демо уже доступно публике: версия 2.1 выложена как 16,5 МБ файл формата z64. Код и исходники тоже открыты.

Как Junkrunner 64 обходит ограничения N64 по дальности и глубине

Главная боль N64 в больших локациях — дальность прорисовки и артефакты глубины. В видео Lambert прямо упирается в проблему Z-fighting, когда полигоны «спорят» за приоритет, и дальние объекты могут перекрывать ближние.

❗️ ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ КРУТЫЕ СТАТЬИ БЕСПЛАТНО

-2

Причина в том, что у N64 15-битный Z-buffer. Он хранит около 32 000 уникальных значений глубины. По словам разработчика, в его тестах примерно 90% этих значений «съедают» объекты рядом с камерой. На дальние дистанции точности уже не хватает, и сцена начинает мерцать.

Решение Lambert описывает просто: «I just draw the world twice». Сначала движок рисует дальний мир, но в масштабе примерно в 100 раз меньше, а затем отдельным проходом отрисовывает ближнюю геометрию с более «жёсткой» near clipping plane и большей детализацией.

-3

Вторая часть трюка — тайлы мира с разными уровнями детализации. Движок «слоями» подмешивает нужную LOD-геометрию и экономит и память, и производительность.

Текстуры, «запечённый» свет и новый туман

-4

Над текстурированием демо работал разработчик Pyroxene. Он использовал baking — когда освещение и материал частично «запекают» прямо в текстуры. Это помогает низкополигональным моделям выглядеть богаче без дорогих эффектов в реальном времени.

Ещё одна заметная деталь — туман. В демо используют RGB-смешиваемые градиенты тумана на дистанции и локально окрашенный туман. Для N64 это редкая роскошь, и она хорошо маскирует компромиссы по дальним объектам.

Что это за демо и куда пойдут технологии дальше

В ролике Junkrunner 64 персонаж бегает по миру и катается на джет-байке. Карта поначалу скрыта и открывается по мере исследования, как в современных open world. Для перемещения есть быстрый ховербайк со скоростью 180 mph (около 290 км/ч), который можно улучшать.

Lambert в конце видео тизерит полноценную игру (название пока не назвали), которая выйдет на N64, ModRetro и Analogue 3D и будет использовать эти же технологии.

Сам ролик с объяснением техники разработчик опубликовал на YouTube: James Lambert. А демо Junkrunner 64 v2.1 лежит в релизах на GitHub: Version 2.1 is now on GitHub.

❗️ ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ КРУТЫЕ СТАТЬИ БЕСПЛАТНО

Подписывайтесь на наши каналы в Telegram и Дзен, чтобы узнавать больше. И делитесь своим мнением и опытом в нашем чате.

Девелопер показал бесшовный open world на «железе» Nintendo 64 ⚡️