Как реализовать алгоритм подразделения Catmull Clark в OpenGL ES Shader - PullRequest
0 голосов
/ 18 марта 2011

Я реализовал простой алгоритм подразделения Catmull Clark для запуска на сетке.Но он работает на процессоре, и после нескольких итераций становится слишком интенсивным.Я решил, что один из способов решения этой проблемы - переписать его на языке шейдеров, а затем запустить на графическом процессоре.

Есть ли примеры того же самого?

Ответы [ 2 ]

2 голосов
/ 14 октября 2011

AFAIK, вам понадобятся функции геометрического шейдера (тесселяции) на вашем графическом процессоре для того, чтобы - создавать / создавать новые вершины.OpenGL ES, на данный момент способный на это.

0 голосов
/ 18 сентября 2018

Catmull – Clark выполняется до того, как лица будут разбиты на примитивы (точки, линии, треугольники).Например, на странице Википедии Catmull – Clark показано, что куб превращается в сферу, если сделать ее с гранями в форме треугольника вместо квадрата, полученная форма не будет сферой.Это может быть возможно в Vulkan с помощью патчей, но я не понимаю, как.Чтобы сделать лица Catmull – Clark (в отличие от патчей), нужно иметь общие вершины, и я не вижу, как определить это отношение.Кроме того, чтобы искать равные вершины, тем самым сводит на нет любое повышение производительности.

...