Как эффективно отображать много line_strips с помощью ModernGLPython

Программы на Python
Ответить
Anonymous
 Как эффективно отображать много line_strips с помощью ModernGL

Сообщение Anonymous »

Мне нужно отобразить много (много) 3D-траекторий с помощью ModernGL.

На данный момент я соединяю траектории и создаю только два массива (один для всех вершин и один для их цветов), которые я передаю в качестве параметров context.vertex_array. См. код ниже:

Код: Выделить всё

vao = ctx.vertex_array(prog,
[(ctx.buffer(all_vertices.tobytes(), "3f", "in_vert"),
(ctx.buffer(all_colors.tobytes(), "4f", "in_color")]
)
vao.render(mode=mGL.LINE_STRIP_ADJACENCY)
Чтобы избежать появления «линий цветового градиента» между каждой траекторией, я удваиваю последнюю и первую точку каждой траектории и придаю этим новым точкам прозрачный цвет. Я также борюсь со специальным шейдером, чтобы придать этим точкам большую z-глубину.

Интересно, существует ли другое решение, более эффективное, без потери fps? Например, предоставление одного vertex_array и нескольких индексных буферов?
Заранее спасибо за ответы!!

Подробнее здесь: https://stackoverflow.com/questions/798 ... h-moderngl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»