Недавно я пытаюсь реализовать алгоритм генерации лозы в реальном времени. Я как-то знаю, как это сделать на процессоре, но я хочу использовать GPU для этого. Я думал о геометрическом шейдере, но похоже, что геометрический шейдер выполняется в примитивном масштабе, то есть он будет выполнять ту же самую функциональность на каждом примитиве, чего я не ожидаю.генерировать вершины с использованием геометрического шейдера (GLSL)
Здесь концептуально работает мой алгоритм выращивания винограда. выберите любую точку на объектной сетке в качестве корневой точки, алгоритм выращивания винограда генерирует ряд точек (представляющих виноград) в соответствии с предыдущими полученными точками. На позиции точек влияют такие факторы, как гравитация, адгезия и расстояние до треугольных граней. Каждая точка должна быть в той же стороне, что и нормаль треугольной грани.
Как это сделать на графическом процессоре? Большое спасибо.
«Я как-то знаю, как это сделать на процессоре» Честно говоря, я не думаю, что это достаточно хорошо. Сначала вы должны определить алгоритм. Если вы используете 'glm' для типов данных, таких как точки, это будет очень легко преобразовать в GLSL. Теоретически. Однако вычисление расстояния точки до целой сетки, вероятно, не произойдет в шейдере. Какую геометрию вы хотите выращивать на лозе? Стена, шест, дерево? Сложность этой геометрии будет влиять на то, какие части алгоритма вы можете поместить в шейдеры. –
любая нормальная сетка, после некоторого исследования я думаю, что gpu не подходит для моего дела. Спасибо. – Nowibananatzki