OpenGL上下文

对于一般的应用来说,这一部分内容比较Low-Level,但是对于需要优化的应用来说十分有用。

当使用window = pyglet.window.Window()创建一个Window对象时,就已经创建了一个OpenGL上下文,这个上下文可以通过window.context来访问。对于上下文的相关配置都存储在上下文的.config属性中。

对于上下文的配置可以在创建Window对象之前通过config = pyglet.gl.Config()建立需要的配置组合,并使用window = pyglet.window.Window(config=config)来使用自定义配置创建Window对象以及OpenGL上下文。

常用的配置项有以下这些:

  • buffer_size,采样缓冲区位数大小,通常可以取24或者32,表示每个颜色使用8位。
  • sample_buffer,结合samples配置多重采样的配置,取值0或者1。
  • samples,多重采样的数量,取值从0到4,数字越大,显示质量越好,但设备负载越大。
  • stereo,对于将立体影像的左右通道分离。
  • double_buffer,设置是否打开双重缓冲,关闭双重缓冲会使屏幕重绘立刻进行,容易导致画面撕裂,默认打开。
  • depth_size,设置3D渲染时的深度缓冲大小,默认为24。
  • major_version,使用OpenGL的主要版本号,可以选择OpenGL 3.x或者OpenGL 4.x。
  • forward_compatible,设置是否向前兼容。