Процедурный генератор SciFi текстур WebGL

Если смотреть на плоские текстуры не совсем понятно, как они будут смотреться на объекте. Решил устранить этот недостаток, пример в 3D на WebGL, без использования сторонних фреймворков.

Процедурный генератор SciFi текстур

В статье Процедурная генерация SciFi текстур мы рассмотрели метод создания текстур.

Новогодние праздники подходят к концу, уже утром начнется мой очередной рабочий день, по этому предлагаю вашему вниманию простейший процедурный генератор текстур в SciFi стиле:

Надеюсь демонстрация порадует вас!
Если данный метод генерации вам пригодится, пожалуйста дайте об этом знать, чтобы добавить ссылку на ваш проект.

Процедурная генерация SciFi текстур

Создание процедурных текстур у многих вызывает странные чувства. В крупных компаниях, легче попросить дизайнера, нарисовать текстуру, чем написать генератор для её создания.

Но если вы создаете игру, процедурные стадии или модели для работы в браузере, то для вас такие текстуры являются проблемой. Основная проблема их размер, ведь сжать текстуры, которые нарисовал дизайнер, без потери качества очень сложно. Не так много форматов, которые могут похвастаться сильным сжатием, наверное единственный лидер сейчас это формат BPG от Fabrice Bellard.

Попробуем создать процедурную генерацию SciFi текстур с использованием метода «Диаграмма Вороного».
Читать дальше

Процедурная генерация снежинок

Процедурная генерации снежинок, весьма сложная задача, у неё есть масса решений.

Не все методы дают качественный результат, в этом можно убедиться, если попробовать поискать готовые генераторы снежинок. Среди них можно встретить даже такие экзотические методы как: «Random Snowflake Generator Based on Cellular Automaton».

Для получения результата, совершенно не обязательно использовать сложные формулы, по этому поделюсь своим рецептом.
Читать дальше

Интерфейс для генератора деревьев

Первым делом были проведены подготовительные работы. Перед началом изменения интерфейса, был изучен опыт других разработчиков. Проведен анализ программных продуктов, но только offline версии, наиболее важными были продукты SpeedTree и Plant factory. Анализ проводился по удобству интерфейса, набору основных функций формирования кроны, дополнительных средств создания структуры деревьев. Для удобства были выбраны наиболее важные параметры. Ими оказались: Уменьшение радиуса ствола от длины, Изменение масштаба текстуры ствола, Форма кроны, Качество (для создания LOD), Лиственные просветы, Изгиб, Размер листвы. Так же на каждом уровне: Число сегментов ствола, Число сторон, Количество ветвей, Длина ветвей, Радиус, Изгиб и другие параметры определяющие структуру ветвей.

Процедурные деревья в браузере

После кропотливой работы, удалось перенести мой генератор деревьев с C++ на Javascript. Но не полностью, webgl первой версии не поддерживает геометрические шейдеры, а значит вся генерация деревьев была переписана на Javascript. Работает значительно медленнее, чем реализация на C++ под OpenGL 4. Но это ни как не отражается на качестве получаемых деревьев.

webgl-tree-editor

Сейчас идет работа над портированием интерфейса, для управления формированием формы деревьев.

Генерация деревьев обширно применяется для визуализации городов, поселков, игровых локаций, лесов и других мест. По этому мне приходится много времени уделять созданию генераторов деревьев. Генератор отличается от аналогов минимальным объемом кода и большим числом управляемых параметров.

Так же планирую выпустить бесплатную версию с ограниченным функционалом и платную, в которую войдут дополнительные опции: сшивание стволов и ветвей в единый объект, управление анимацией, экспорт в популярные форматы файлов, генерация текстур стволов и листьев.

Процедурная генерация подземелий

При создании одной из игр от первого лица, потребовалось создание процедурного подземелья (с одним уровнем высоты). Подземелье должно быть в космическом, стиле с возможностью редактирования полученного результата. Для этого был выбран самый простой метод, создание сетки определенного размера и размещение на ней комнат. После создания, производилось оформление комнат в нужном стиле с возможностью замены любых деталей на другие модели. Для оформления я использовал генерацию стен и блоков из другого своего процедурного генератора, о котором постараюсь рассказать более подробно в других публикациях.
procedural-tile-generatorПлюсы метода:

  • простота создания,
  • легко модернизировать
  • быстрая генерация

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

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

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

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

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

1 2