[WIP] Процедурные извращения в JME3

» опубликован

Вводная информация

Продолжая тему "что можно накодить за обеденный перерыв?", хочу рассказать вам о своем микропроекте, который посвящен процедурной генерации моделей.
Началось это все, когда мне не хватило геометрических примитивов для прототипирования, а лезть в 3д-редактор было лень. Можно было, конечно, взять готовый пак моделей из интернета или просто добавить дополнительные формы примитивов, но кого интересуют легкие решения?
В итоге былы выбрана процедурная генерация меша по набору сплайнов. И не банальное построение меша путем вращения сплайна или растягивание одного сплайна вдоль другого, а генерация меша по независимым направляющим, исходящим из одной точки.
Для визуализации используется движок JMonkeyEngine 3.0.
Все вершины, треугольники и нормали генерируются програмно, за исключением небольшого набора вершин, задающего узлы направляющих.
Для интерполяции используется алгоритм CatmullRom.

План действий

  • Построить направляющие по набору ключевых точек - готово
  • Построить лоуполи модель по направляющим - готово
  • Добавить вертикальное и горизонтальное сглаживание к модели путем увеличения кол-ва вершин - готово
  • Построить нормали к поверхности - готово
  • Построить высокополигональную модель по вершинам - готово
  • Добавить текстурные координаты для вершин
  • Добавить возможность редактировать направляющие в режиме реального времени - в процессе
  • Убрать ограничения на форму и количество направляющих
  • Добавить процедурную генерацию текстур
  • Добавить поддержку LOD
  • Добавить поддержку других алгоритмов интерполяции помимо CatmullRom
  • Добавить поддержку более сложных форм за счет комбинирования нескольких сгенерированных моделей
  • Добавить механизм, позволяющий контролировать плотность сетки
  • Добавить возможность делать острые углы на модели, а не только сглаженные до безобразия поверхности
  • Добавить другие алгоритмы генерации помимо базового
  • Добавить возможность экспорта в файл для дальнейшего использования в графических редакторах

Фотоотчет


 

Просмотров: 716

prog #1 - 4 года назад (отредактировано ) 0
Исправлена генерация поверхности по вершинам.
Доработан генератор нормалей.
Исправлен косяк, мешавший сгенерировать последний ряд вершин.
На очереди возможность двигать узлы направляющих, деформируя тем самым сгенерированную поверхность.
прикреплены файлы