【发布时间】:2018-06-23 03:17:33
【问题描述】:
假设我有一个名为
的变量current_color
分配给 current_color 的字符串是不断变化的。
另外我在 PyOpenGl.py 中有一个立方体
为了分配立方体的颜色,我使用了
glColor3fv((0, 1, 0))
有没有办法(参考颜色库)有
glColor3fv((current_color))
并且每次该变量更新时,它都会改变立方体的颜色?据我了解,OpenGL 是一个状态机,所以我需要重绘场景或立方体。你对如何做到这一点有什么建议吗?
【问题讨论】:
-
每次更改数据(如颜色)时,都需要再次使用
glColorxxx。为避免再次发生此类所有数据传输,您最好使用现代 OpenGL(版本 >= 3.2)并仅传递 uniform。 -
@Ripi2 PyOpenGL 我相信只有 3.1
-
glColorxxx 是 OpenGL 1.1 的命令。如果您创建旧的 gl-context 或 向前兼容性 配置文件上下文,它仍然有效。
-
Pyopengl 包版本不等于 OpenGL 版本,后者取决于你的显卡。对于您使用这些“固定功能”命令显示的方法,您只需要清除并重绘场景。否则,如果您决定稍后使用基于着色器的方法,您应该按照@Ripi2 的建议进行操作。
-
我刚刚找到了 ModernGL
标签: python-3.x opengl pyopengl