Интерактивная демонстрация рендеринга Comanche — 20 строк кода и карта высот
Интерактивная демонстрация алгоритма Voxel Space — того самого движка, на котором работал вертолётный симулятор Comanche в 1992 году.
Интерактивная демонстрация алгоритма Voxel Space — того самого движка, на котором работал вертолётный симулятор Comanche в 1992 году. Вся магия — в карте высот и наборе призм с фиксированным основанием. Технически это не воксели (не деление 3D-пространства по всем трём осям), а height map — но в 1992-м на 386SX-16 это выглядело как колдовство.
В треде один из участников применил подход из первой миссии Comanche к тестированию кода: «Первое задание в игре — "Oil Tank Holiday": прилетай к незащищённым цистернам, стреляй, смотри, как горят, лети домой. Ни врагов. Просто научись летать и стрелять. Я применяю это в тестировании: после написания кода придумай минимально возможный тест, доказывающий, что код вообще что-то делает». Идеальное определение smoke test — дым от нефтяных цистерн.
Другой разработчик поделился, что портировал этот алгоритм на AGS Engine — движок для point-and-click приключений. Пришлось применять хитрости, чтобы рендеринг работал с ограничениями движка, который никогда не проектировался для 3D.
Тема карт высот со «встроенными» тенями в цветовой карте вызвала архитектурную дискуссию: по сути, это precomputed lighting в текстуре — тот же подход, который сегодня используется в lightmap baking для игр.
Периодическое возвращение этой демо в топ HN — индикатор того, что сообщество ценит элегантные решения. Когда весь ландшафт рисуется из 20 строк кода и одной операции ray marching по столбцам — это красиво вне зависимости от года.
Получайте такие разборы каждый день
Главные истории Hacker News на русском — в Telegram или RSS-ридере.
Автор righto.com разобрал микрокод сопроцессора с 80-битными регистрами — и автор чипа пришёл в тред
Ken Shirriff продолжает серию публикаций о внутренностях Intel 8087 — сопроцессора для операций с плавающей запятой, выпущенного в 1980 году.