Оптимизация треугольников

Последние четыре дня были весьма насыщенными. Стояла задача: ускорить созданием базовой модели и исправить недочеты в базовой модели. До оптимизации создание базовой модели занимало 10 и более секунд на 50 костей. Конечно, в современном мире это совершенно неприемлемо. Началась кропотливая работа над ускорением процесса создания модели.

Читать дальше

Преобразование в треугольники

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

Редактор создавался для быстрого прототипирования моделей, где очень удобно создавать людей и животных. Единственная проблема — они состояли из сфер. И им требовалось преобразование в треугольники. После нескольких бессонных ночей, удалось решить эту задачу.

Читать дальше

Таинственное путешествие

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

Читать дальше

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

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

Двухмерный редактор

Векторный двухмерный редактор был создан с основной целью — создание сечений с последующим преобразованием в 3D модель. Но в процессе развития он изменялся и в него внедрялись всё новые и новые функции. В итоге сейчас это инструмент для работы с векторной графикой и процедурной генерацией. Практически все мои проекты направлены на процедурную составляющую. Мир слишком большой и рисовать его руками, без вспомогательных инструментов, крайне сложно, даже небольшие детали требуют сложной и кропотливой работы.

В чем же преимущество редактора, почему в очередной раз не использую готовые редакторы. Основное отличие редактора от аналогов — он работает сразу с десятками чертежей, каждый из которых содержит различные слои. Чертежи зависят друг от друга. Слои могут содержать сотни и более объектов. Слои так же можно связывать как с текущим чертежом так и с другими чертежами. Это позволяет проработать полноценную 3D модель состоящую только из сечений, которые расположены на разных уровнях.

html5-free-vector-editor

Но кроме ручного редактирования сечений в редактор были встроены дополнительные генераторы. Процедурный генератор городов и процедурный генератор векторных подземелий. Кроме этого в редакторе можно создавать планировку зданий, помещений, квартир.

html5-procedural-city

Песочница HTML5 + Javascript + WebGL

Для быстрого прототипирования и тестирования идей, нужна изолированная среда, которая, не повлияет на создание продукта. Очень часто многие разработчики тестируют идеи прямо в продукте который разрабатывают. Но это не всегда корректно и не всегда возможно полноценно протестировать полученный результат. По этому для себя создал изолированную среду (песочницу), где можно опробовать идею или протестировать различные функции. В основном среда используется для прототипирования трехмерных сцен и объектов. В песочнице можно в режиме реального времени редактировать код и следить за визуальными изменениями.webgl-sandbox

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

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

webgl-tree-editor

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

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

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

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

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

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

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

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

1 2 3 5