Qt目前已经对opengl支持很好了,大致涉及这几个类。见解如下:
数据:
-
QOpenGLBuffer,支持顶点数据(顶点坐标,顶点法向量,纹理坐标,颜色),顶点索引。可StreamDraw,即数据写死,也可DynamicDraw,即通过void write(int offset, const void *data, int count)方法更新。
-
QOpenGLTexture,纹理,常见的Target2D,Target3D,TargetCubeMap等。图像数据传入,过滤,三轴环绕。
-
QOpenGLFramebufferObject,帧缓存对象,比较der
着色器
-
QOpenGLShader,Vertex shader ,Fragment shader,指定着色器类型。
-
QOpenGLShaderProgram,着色器程序,添加着色器,编译,链接,顶点数据传入。
Ui
-
QOpenGLWidget,渲染的目标
Core
-
QOpenGLFunctions,对opengl方法的封装,保护继承即可。
-
QOpenGLContext,opengl上下文,可以理解为任务上下文。
Help
-
QVector3D系列,顶点数据,向量点乘,叉乘,单位化。
-
QMatrix4x4系列,mvp矩阵,平移,缩放,旋转,单位化。
-
math系列,三角函数,弧度角度转换