小弟最近在搞linux下的opengl,师兄说还要用qt来些opengl程序,纠结了好些天。
虽说,现在已经能在qt creator下跑 提供交互功能、涵盖opengl 接口的程序了,但还是有些观点不太清楚。以下是小弟的拙见,真诚希望高人能给予指正!
1、OpenGL全称为 open Graphcis Library开放的图形(设备)接口,这些库在计算机的底层,显卡要绘制一些三维、二维图形的时候,需要调用对应的 底层opengl库的相关函数;(这些函数很复杂,大概说只有有120来个,它们之间组合后可以完成很多绘制二维、三维图形的功能)
2、为了让编程人员能够更好地识别代码,gl.h、glu.h(及其对应的库文件)对底层的opengl进行了封装,提供了一些程序员易使用的API接口。
3、OpenGL一般只负责处理图形的绘制、变换等功能,很少提供与用户交互的接口,与当下的GUI设计不匹配,因此针对不同的运行平台,又进一步封装了诸如 glut、glx等opengl库文件包。而在qt库中,同样为opengl库提供了类似于glut的Qt Opengl模块,它封装了很多类库,诸如QGLWidget类。
4、glut、glx都要使用到glu、gl库,qt的Qt OpenGL 模块同样要在含有gl、glu库的基础上使用。在Qt的安装过程中,如果安装时没有检测到系统中已安装有glu、gl库,那么Qt将认为该用户不会使用到QtOpenGL库,QtOpenGL将不被安装。也就是说,如果要用Qt中的Qt OpenGL模块来进行opengl编程,那么在安装Qt库之前,就应该把opengl库(使得要含有glu\gl文件在usr/include目录下)给安装好。查阅qt手册,原话: When you install Qt for X11, the configure script will autodetect if OpenGL headers and libraries are installed on your system, and if so, it will include the QtOpenGL module in the Qt library. (If your OpenGL headers or libraries are placed in a non-standard directory, you may need to change the QMAKE_INCDIR_OPENGL and/or QMAKE_LIBDIR_OPENGL in the config file for your system).