Процедурно генерировать низкополигональные деревья
Я ищу алгоритм или продукт, который будет генерировать низкополигональные деревья. Не имеет значения язык. Я искал все, и есть много алгоритмов генерации деревьев, но они обслуживают более реалистичные деревья, а не наоборот.
Вот тип дерева, которое я хочу генерировать "на лету":
![Low poly examples]()
Полезны даже простые алгоритмы генерации капли, которые выглядят как верхняя часть дерева.
Ответы
Ответ 1
Я собрал что-то с единством. Он генерирует твердые тела с алгоритмом Quickhull, который довольно легко объясняется и обнаруживается в Интернете.
Это приведет к созданию выпуклых оболочек входных точек. Поэтому я произвольно генерирую точки внутри древовидной формы.
Затем, после сгенерирования blob, я могу затем сдвинуться вокруг вершин, соответственно регулирующих нормали. Необходимо иметь в виду, чтобы объект выглядел так, чтобы каждый треугольник обладал собственной вершиной и нормалью, а все три треугольника одинаковы.
Это решение прочно 1.0 и позволяет только один кусок дерева, но то, что я сейчас использую, и находится в магазине активов для всех, кто интересуется.
Низкий генератор дерева дерева
Ответ 2
Попробуйте использовать любую из существующих систем, доступных вам, при настройке параметров для уменьшения количества треугольников.
В противном случае...
Общее назначение L-system поможет в процедурной генерации растений (а не только для деревьев).
Если вы задаете вопрос о том, как слить листья, вы можете генерировать isosurfaces вокруг узлов и оценивать с помощью маршевые кубы.
Может быть сделано с нуля или сценарием, но в любом случае значительная часть работы.
Как гораздо более дешевая альтернатива изо-поверхностям, вы можете быстро получить результаты, изменив предварительно сгенерированные примитивы. Я бы, вероятно, создал несколько icospheres (используя данные из L-System) и использовал дополнительные данные ветвей для масштабирования и деформирования.
Это не только дешевле строить (экономя ваши дни работы, получая ваши изо-поверхности правильно), но и будет выполняться быстрее и дает вам прямой контроль над топологией листвы.
Как только у вас появятся ваши блубовидные фигуры, рандомизируйте координаты, чтобы придать органический вид.