Процедурная вселенная до 64Кб

В один прекрасный день, появилась фантастическая идея. А что, если создать процедурную вселенную, с малым размером, до 64Кб. При этом должны быть планеты, туманности, космические станции и другие объекты. Задача, хоть и простая, но добиться минимального размера, со всеми ресурсами, весьма не просто. Каждый байт имеет вес и цену, каждая строчка кода должна быть оптимальной. После пары месяцев родился первый прототип. И как результат, появилась группа единомышленников, с которой мы постоянно ведём обсуждения, делаем выбор тех или иных решений. Сейчас проект находится в активной стадии разработки.

Текущую версию проекта можно посмотреть на сайте www.invspace.com

Обсуждение идёт в телеграмме ссылка на группу

Процедурное моделирование зданий

Создание зданий и сооружений в футуристическом виде, весьма сложная задача. Особенно «процедурные», ведь требуется создать не просто один этаж и размножить его, а создать совершенно новую, удивительную архитектуру, которая должна быть необычной для нашего глаза, при этом быть этапом эволюции в развитии технологий. В Интернете, если искать картинки по запросу «здания будущего», полученный результат можно разбить на 3 группы. В первую попадают куполообразные здания и сооружения. Во вторую состоящие из труб с огромными вентиляторами и с десятком непонятных пластин. В третью, привычные людям здания с измененной геометрией.

Художники, фантасты, архитекторы и другие деятели видят будущее по своему. Но всех их объединяет создание нового, прекрасного мира с выдающейся архитектурой.

Предлагаю вашему вниманию результат простейшего генератора зданий. Он основывается на конструктивной сплошной геометрии с оптимизацией.

Генератор зданий создан полностью на Javascript, не использует сторонних библиотек. Создан для проекта Dreams Gate.

С Днем защитника Отечества!

Поздравляю с праздником друзей, знакомых и читателей моего блога!

И представляю вашему вниманию, обновление, ко дню защитника отечества.

webgl-realistic-planet

На этот раз это поверхность планет. Процедурные планеты и поверхность созданы без использования текстур. Вы сразу можете возразить, как?! Ответ очень прост, в реальности не используются текстуры для отображения гор вообще. Расчет цвета для каждого пикселя гор осуществляется в момент вывода его на экран, по заданным координатам. Но такой подход, требует наличия, далеко не слабой видеокарты. Ведь каждый кадр, поверхность строится по новой. И чем больше разрешение экрана, тем выше требования. Но и это еще не всё, без использования текстур, повышается сложность создания реалистичной поверхности планет. Ведь нам придется писать формулы для каждого типа поверхности (трава, камни, снег, вода, земля). А это сложно и требует много времени. Так какие же преимущества и недостатки в итоге.

webgl-procedutal-terrain

Преимущества планет без текстур:

  • Не требуется память для хранения кусков текстур
  • Уникальный вид поверхности
  • Возможность задания разных свойств материалов
  • Изменение поверхности в реальном времени (лава, рост травы, обледенение и т.п.)

Недостатки тоже есть:

  • Требуется хорошая видеокарта
  • Высокая сложность создания новых типов поверхности (камни, песок, трава)
  • Постоянный просчет пикселей без возможности кеширования

Развитие видеокарт идет в сторону улучшения и ускорения, по этому, этот (гибридный) метод будет востребован, в ближайшем будущем.

webgl-procedutal-planet

Я специально ограничил размер планеты до 13км, удалил из кода куски для работы полноразмерных планет, оставил только одну форму планеты. Так же убрал камни и траву. А чтобы планета выводилась у большего числа людей, ограничил число проходов шума, до четырех. Конечно качество картинки резко ухудшилось, но даст большему числу людей с комфортом посмотреть на планету.

Почему?!

До момента выхода игры, оно будет в таком урезанном виде, уже не раз сталкивался, что мой код кочует в чужие проекты (даже без указания автора и ссылки откуда они это слямзили).

Обновление доступно по адресу: play.dg8.ru
Управление в режиме «Реалистичная Планета»:
W,A,S,D — для перемещения камеры
Q,E — наклон камеры
Левой кнопкой мышки на экран и двигать — вращение камеры

Процедурный генератор стадий и помещений

Как и планировал, делюсь информацией о ходе развития проекта. И первым на очереди: Процедурное Моделирование. Это одна из частей новой версии трехмерного редактора моделей (Dreams 3D). Процедурное создание стадий и помещений, будоражит сердца разработчиков уже несколько десятилетий. Еще во времена первого Doom были попытки создания автоматизированных средств рисующих карты. Но успеха добиться на этом пути очень сложно. Есть множество программ которые комбинируют из блоков стадии, но их дизайн весьма прост, привычен и повторяется. Например серия игр Quake и Doom подарила своим поклонникам новый мир, где дизайн на столько необычный. Пропитан духом фантастики, мистики, где за каждым углом таится опасность. Но все карты в этих играх нарисованы людьми. И вот рассмотрим как это всё происходит.
Читать дальше

Эволюция процедурных генераторов

С самого начала создания моих проектов, в голове жила-была мысль, а что если компьютер сам будет всё рисовать. Технику, здания, предметы и даже модели игроков. Звучит как фантастика, но в этом направлении велось очень много работы. Первыми появились простые поверхности напоминающие горы. Следующим на этапе освоения генерации стало создание генератора деревьев.
Читать дальше