Программа рендеринга в текстуру с несколькими наборами параметров в PyOpenGL - PullRequest
0 голосов
/ 19 марта 2020

Я сейчас пытаюсь имитировать c шейдеров, написанных на GLSL, используя python. Сначала я пишу шейдер в GLSL и отрисовываю его с помощью PyOpenGL, затем пишу тот же алгоритм с помощью python и отрисовываю с помощью numpy и Pillow. Я хочу написать тесты, которые могут изменить входные параметры для моих шейдеров и сравнить вывод их изображений.

Мое текущее решение для рендеринга OpenGL в текстуру - открыть окно QOpenGLWidget, дать ему Program и сделать в FrameBuffer. Теперь это работает хорошо, если я хочу только визуализировать одно изображение. По какой-то причине Program нельзя использовать в нескольких экземплярах рендеринга, и поэтому мне приходится заново создавать мой Program, а также открывать новое окно для каждого теста. Это медленно, и мне нужно написать кучу дополнительного кода.

Мне интересно, есть ли более простой способ рендеринга GLSL-шейдера в текстуру или есть ли способ, которым я могу перестроить свое окно, чтобы остаться открой и накорми меня TextureBuffer. Я попробовал это последнее решение, но открытие окна с помощью GLSL будет блокировать любой прогресс кода, пока оно не будет закрыто: /.

Спасибо!

...