Qt OpenGL三维绘图
2014-10-26 23:27
288 查看
简介
OpenGL是为三维绘图提供的标准应用编程接口。
OpenGL处理的仅仅是三维绘图方面,而很少或是根本不提供图形用户界面编程方面的支持。OpenGL*应用程序的用户界面必须由其它工具包创建,比如在X平台下的Motif,在Windows平台下的微软基本类库(MFC)——或是在这两种平台下都能使用的Qt。
Qt的OpenGL模块使在Qt应用程序中使用OpenGL变的更加容易。它提供了一个OpenGL的部件类,这个部件类除了打开一个OpenGL显示缓冲,利用这个缓冲使用OpenGL应用编程接口来提供内容外,能像其它Qt部件那样的使用,。
Qt OpenGL模块的运作是一个与平台无关的Qt/C++的包装,这个包装则是和平台有关的GLX、WGL或AGL的C的应用编程接口。 其提供的功能则是和Mark Kilgard的GLUT库极为相似,但是Qt的OpenGL模块还有更多的非OpenGL特有的GUI机能,即它们都是Qt的应用编程接口。
当你在Windows中安装Qt时候,Qt的OpenGL模块总是被包含的。
Qt的OpenGL模块的使用没有授权给Qt专业版,如需要OpenGL支持的话,可以考虑升级为Qt企业版。
在X11上使用Mesa时请注意: Mesa 3.1之前的版本在库中使用的名为“MesaGL”和“MesaGLU”,而不是“GL”和“GLU”。如果你想使用Mesa 3.1之前的版本的话,你必须改变Makefile来使用这些库的名字。最简单的方法就是编辑config文件中的SYSCONF_LIBS_OPENGL行,将“-lGL -lGLU”改成“-lMesaGL -lMesaGLU”,然后再次运行“configure”。
QGLWidget:一个容易使用的Qt部件,它提供了OpenGL场景。
QGLContext:封装了OpenGL提供的上下文。
QGLFormat:对于一个给定的上下文,指定特定的显示模式。
QGLColormap:在GL-index中处理编入索引的colormaps。
许多应用程序仅需要高等级的QGLWidget类。其它的QGL类提供了高级特性。X11的用户可能要阅读一下overlays中的注释。
参照OpenGL实例。
QGL的文档假设你熟悉OpenGL编程。如果你在这方面是个新手的话,一个好的起点就是http://www.opengl.org/。
*OpenGL是Silicon Graphics公司在美国和其它国家的注册商标。
OpenGL是为三维绘图提供的标准应用编程接口。
OpenGL处理的仅仅是三维绘图方面,而很少或是根本不提供图形用户界面编程方面的支持。OpenGL*应用程序的用户界面必须由其它工具包创建,比如在X平台下的Motif,在Windows平台下的微软基本类库(MFC)——或是在这两种平台下都能使用的Qt。
Qt的OpenGL模块使在Qt应用程序中使用OpenGL变的更加容易。它提供了一个OpenGL的部件类,这个部件类除了打开一个OpenGL显示缓冲,利用这个缓冲使用OpenGL应用编程接口来提供内容外,能像其它Qt部件那样的使用,。
Qt OpenGL模块的运作是一个与平台无关的Qt/C++的包装,这个包装则是和平台有关的GLX、WGL或AGL的C的应用编程接口。 其提供的功能则是和Mark Kilgard的GLUT库极为相似,但是Qt的OpenGL模块还有更多的非OpenGL特有的GUI机能,即它们都是Qt的应用编程接口。
安装
当你在X11中安装Qt时候,配置脚本将会自动检测你的系统上是否已安装了OpenGL的头文件和库,如果已正确安装了,在Qt的库中就会包括Qt OpenGL模块。(如果你的OpenGL头文件或库放置在一个非标准的目录下,你需要根据你的系统而修改config文件中的SYSCONF_CXXFLAGS_OPENGL和/或 SYSCONF_LFLAGS_OPENGL)。 对于OpenGL的一些配置需要线程生效,所以如果OpenGL没有被检测到,试一下configure -thread。当你在Windows中安装Qt时候,Qt的OpenGL模块总是被包含的。
Qt的OpenGL模块的使用没有授权给Qt专业版,如需要OpenGL支持的话,可以考虑升级为Qt企业版。
在X11上使用Mesa时请注意: Mesa 3.1之前的版本在库中使用的名为“MesaGL”和“MesaGLU”,而不是“GL”和“GLU”。如果你想使用Mesa 3.1之前的版本的话,你必须改变Makefile来使用这些库的名字。最简单的方法就是编辑config文件中的SYSCONF_LIBS_OPENGL行,将“-lGL -lGLU”改成“-lMesaGL -lMesaGLU”,然后再次运行“configure”。
QGL类
在Qt中OpenGL提供支持的类为:QGLWidget:一个容易使用的Qt部件,它提供了OpenGL场景。
QGLContext:封装了OpenGL提供的上下文。
QGLFormat:对于一个给定的上下文,指定特定的显示模式。
QGLColormap:在GL-index中处理编入索引的colormaps。
许多应用程序仅需要高等级的QGLWidget类。其它的QGL类提供了高级特性。X11的用户可能要阅读一下overlays中的注释。
参照OpenGL实例。
QGL的文档假设你熟悉OpenGL编程。如果你在这方面是个新手的话,一个好的起点就是http://www.opengl.org/。
*OpenGL是Silicon Graphics公司在美国和其它国家的注册商标。
相关文章推荐
- 模仿QtOpenGL例子VowelCube时遇到的三维和Qt绘图引擎QPainter混合问题
- 实现图形Qt学习:三维绘图之OpenGL和Qt的结合
- Qt学习:三维绘图之OpenGL和Qt的结合
- 三维绘图之OpenGL和Qt的结合
- 三维绘图之OpenGL和Qt的结合
- QT与OpenGL之三维旋转
- 【Qt OpenGL】Qt Creator中的3D绘图及动画教程
- QT使用GDI和OpenGL绘图,相比QPainter绘图降低CPU占用率
- Qt中使用OpenGL进行三维场景绘制基础
- Qt5.9.4中利用QOpenGLWidget类进行opengl绘图
- Qt环境下利用OpenGL显示三维模型
- Qt+openGL学习记录(5)`加入定时器开启自动旋转,绘制三维简单对象`
- VC2005下利用OpenGL实现三维绘图
- 利用OpenGL实现三维绘图
- ubuntu+QT+ OpenGL绘图
- Qt环境下利用OpenGL显示三维模型
- 利用OpenGL实现三维绘图
- QT与OpenGL之绘图
- 现代OpenGL+Qt学习笔记之六:绘制可旋转、带光照效果的三维物体
- 在QT和SDL搭建的框架中使用OPENGL在SDL窗口上进行绘图