Процедурно генерировать низкополигональные деревья

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

Вот тип дерева, которое я хочу генерировать "на лету": Low poly examples

Полезны даже простые алгоритмы генерации капли, которые выглядят как верхняя часть дерева.

Ответы

Ответ 1

Я собрал что-то с единством. Он генерирует твердые тела с алгоритмом Quickhull, который довольно легко объясняется и обнаруживается в Интернете.

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

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

Это решение прочно 1.0 и позволяет только один кусок дерева, но то, что я сейчас использую, и находится в магазине активов для всех, кто интересуется. Низкий генератор дерева дерева

Ответ 2

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

В противном случае...

Общее назначение L-system поможет в процедурной генерации растений (а не только для деревьев).

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

Как гораздо более дешевая альтернатива изо-поверхностям, вы можете быстро получить результаты, изменив предварительно сгенерированные примитивы. Я бы, вероятно, создал несколько icospheres (используя данные из L-System) и использовал дополнительные данные ветвей для масштабирования и деформирования. Это не только дешевле строить (экономя ваши дни работы, получая ваши изо-поверхности правильно), но и будет выполняться быстрее и дает вам прямой контроль над топологией листвы.

Как только у вас появятся ваши блубовидные фигуры, рандомизируйте координаты, чтобы придать органический вид.