QOpenGL中的几个类

QOpenGLBuffer类

在使用前,构造函数处可指定Buffer类型。默认为VertexBuffer。

在使用之前先要create(),之后bind到当前的OpenGL context上。

使用allocate()分配存储空间,同时可以用某个数据来初始化分配的空间。

QOpenGLShader类

可以在构造函数的地方选择shader的类型。

一个程序包含两个shader,包括vertex shader(顶点着色)和fragment shader(片段着色)。两个shader都可以通过声明一个uniform的变量来接受应用程序传递过来的自定义的参数。Vertex shader可以通过attribute属性的变量来得到和每个顶点关联的信息。从vertex shader传递到fragment shader的信息则通过varying属性指定的变量,varying属性的变量在一对vertex shader和fragment shader之间的定义必须匹配(注:即在vertex shader定义了一个,则在fragment shader里也必须有一个)。处在vertex shader和fragment shader之间的固定功能管道将对varying变量进行插值。当一个fragment shader读取一个 varying变量的时候,它得到的值是已经插值过的。

QOpenGLShaderProgram类

可以直接从文件、源码之类的添加Shader,也可以使用addShader添加现有的Shader。

需要调用link()将添加到这个program的shader连接起来。之后调用bind()使该program成为当前唯一绑定到OpenGL Context上的,其它program被释放(release)掉。

之后使用enableAttributeArray来激活相应的顶点属性数组。

展开阅读全文

没有更多推荐了,返回首页