[Разработка игр, Старое железо, Игры и игровые приставки] Энтузиаст добавил в ретроконсоль трассировку лучей

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
16-Дек-2020 17:33
Извините, данный ресурс не поддреживается. :( Разработчик и энтузиаст Бен Картер добавил в Super NES аппаратный трассировщик лучей. Напомню что самой консоли уже 30 лет.Для реализации этой идеи его надоумил друг и желание получше изучить Verilog и FPGA. Таким образом появился проект SuperRT. Блогер хотел сделать аналог чипа SuperFX - даже названия похожи. Чип SuperFX располагался в картридже и обрабатывал визуальные эффекты недоступные самой консоли из-за ограничения "железа". В итоге Картер собрал кастомную плату картриджа с тремя дополнительными вычислительными ядрами с частотой 50 МГ - они обеспечивают поддержку трассировку лучей. На КПДВ можно можно видеть их работу. Автор извиняется за качество видео - виновата плата видеозахвата.
На фото можно видеть снятый корпус для монтажа проводов, по словам автора, никаких измениний в железо не вносились. Для создания модифицированной платы, автор купил древний картридж с "ужасной игрой Pachinko", удалил ПЗУ с игрой и вставил туда кабели. Еще он использовал несколько логических преобразователей (level shifters) и программируемой логической схемы (FPGA) DE10-Nano. Большинство проводов на снимке выше обеспечивают коммутацию логических преобразователей, необходимых для конвертации напряжения с 5В, передаваемых SNES, в 3,3В допустимых для современных чипов.Получившийся в итоге франкенштейн способен просчитывать и отображать геометрию, цвета, тени и отражения для примерно 50 миллионов базовых объектов: плоскостей, сфер и трёхмерных объёмов (AABB). Отрендеренное изображение конвертируется в пригодный для SNES формат и передаётся в видеопамять консоли, откуда выводится на экран.Чип вычисляет и записывает в буфер RAM результаты своей работы. Дизассемблированный командный буфер выглядит так:
0000 Start
0001 Plane 0, -1, 0, Dist=-2
0002 SphereSub OH 2, 1, 5, Rad=5
0003 SphereSub OH 4, 1, 4, Rad=4
0004 SphereSub OH 5, 1, 9, Rad=9
0005 SphereSub OH 2, 1, 2, Rad=2
0006 SphereSub OH -0.5, 1, 2, Rad=2
0007 RegisterHitNoReset 0, 248, 0, Reflectiveness=0
0008 Checkerboard ORH 48, 152, 48, Reflectiveness=0
0009 ResetHitState
0010 Plane 0, -1, 0, Dist=-2.150146
0011 RegisterHit 0, 0, 248, Reflectiveness=153
0012 AABB 4, -2.5, 11,    8, 3.5, 13
0013 ResetHitStateAndJump NH 44
0014 Origin 6, 2, 12
0015 Plane -0.2929688, 0, -0.9570313, Dist=0.2497559
0016 PlaneAnd OH 0.2919922, 0, 0.9560547, Dist=0.25
0017 PlaneAnd OH 0, 1, 0, Dist=1
0018 PlaneAnd OH 0, -1, 0, Dist=4
0019 PlaneAnd OH -0.9570313, 0, 0.2919922, Dist=-1
0020 PlaneAnd OH 0.9560547, 0, -0.2929688, Dist=1.499756
0021 RegisterHit 248, 0, 0, Reflectiveness=0
Максимально допустимая частота кадров - 30 FPS. Это связано с ограничением пропускной способности интерфейсов самой консоли. Каждый кадр с трассировкой "весит" 32 килобайта при ограничения интерфейса вывода в 16 килобайт, поэтому полное обновление картинки возможно только каждые два кадра. Автор планирует и дальше развивать свое детище, подробнее можно узнать в его личном блоге.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_razrabotka_igr (Разработка игр), #_staroe_zhelezo (Старое железо), #_igry_i_igrovye_pristavki (Игры и игровые приставки), #_snes, #_trassirovka (трассировка), #_razrabotka_igr (
Разработка игр
)
, #_staroe_zhelezo (
Старое железо
)
, #_igry_i_igrovye_pristavki (
Игры и игровые приставки
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 20:04
Часовой пояс: UTC + 5