наскоро се опитвам да внедря алгоритъм за генериране на лоза в реално време. Донякъде знам как да го направя на процесора, но искам да използвам GPU, за да постигна това. Мислех за геометричен шейдър, но изглежда, че геометричният шейдър се изпълнява в примитивен мащаб, което означава, че ще изпълнява точно същата функционалност на всеки примитивен елемент, което не е това, което очаквам.
Ето концептуално как работи моят алгоритъм за отглеждане на лози. изберете произволна точка от мрежата на обекта като основна точка, алгоритъмът за отглеждане на лозата генерира серия от точки (представляващи лозата) според предишните произведени точки. Позициите на точките се влияят от такива фактори като гравитация, адхезия и разстояние до стените на триъгълника. Всяка точка трябва да е от една и съща страна като нормалата на лице на триъгълник.
Как мога да направя това на GPU? Благодаря много.
glm
за типове данни като точки, ще бъде много лесно да го конвертирате в GLSL. Теоретично. Въпреки това, изчисляването на разстоянието от точка до цяла мрежа вероятно няма да се случи в шейдър. На каква геометрия искате да расте лозата? Стена, стълб, дърво? Сложността на тази геометрия ще повлияе кои части от алгоритъма можете да поставите в шейдъри. - person Andreas Haferburg   schedule 23.06.2013