没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Qt OpenGL 教程
最近一段时间除了学习 Qt,翻译 Qt 文档之外,由于工作和兴趣的原因,开始着
手看 Qt OpenGL 编程。在网上搜索了有关 OpenGL 的教程,发现 NeHe 的
OpenGL 教程的还很不错,作者是 NeHe。上面有很多种语言的实现,但是没有
Qt 和 Gtk 的,所以我就想着手写这个 Qt OpenGL 教程,每课的内容和 NeHe 是
一样的。另外,介绍 NeHe 的一个中文翻译站点 CSDN-CKer 翻译的 NeHe 的
OpenGL 教程,翻译人是 CKer,在我学习这个教程的过程中,给了我很大的帮
助。
下面就是 Qt OpenGL 教程的内容:
Qt OpenGL 的准备工作
第一课:创建一个 OpenGL 窗口
第二课:你的第一个多边形
第三课:上色
第四课:旋转
第五课:向三维进军
第六课:纹理映射
第七课:纹理滤波、光源和键盘控制
第八课:融合
第九课:在三维空间中移动位图
第十课:载入一个三维世界并在其中移动
第十一课:旗的效果(波动纹理)
第十二课:显示列表
第十三课:位图字体
第十四课:轮廓字体
第十五课:使用纹理映射的轮廓字体
第十六课:看起来很棒的雾
因为本教程是从 NeHe 的 OpenGL 教程迁移过来的,代码变为 Qt 实现的。所以
有的课程一时还没有实现成功,所以可能有些教程是跳跃的。
因本人时间有限,所以难免有错误出现,如果您发现了这些错误,或者有什么
建议,请来信指教,谢谢。
Qt OpenGL 的准备工作
因为 Qt 存在很多版本,另外它支持的平台也很多,到目前为止我只实验了几个
组合,所以就先把这些列出来吧,欢迎大家补充。
Unix/X11
Linux
Qt:自由版或者企业版都支持 OpenGL 模块,而专业版则不能。我现在使用的
是 3.1.0 自由版和企业版。
gcc:编译器。我现在使用的是 3.2。
X:Linux 下的图形环境。我现在使用的是 4.2.0。
Mesa:自由的 OpenGL。我现在使用的是 5.0。
NeHeWidget 类
这就是我们继承 QGLWidget 类得到的 OpenGL 窗口部件类。
(由 nehewidget.h 展开。)
!"#
因为 QGLWidget 类被包含在 qgl.h 头文件中,所以我们的类就需要包含这个头
文件。Q_OBJECT 是 Qt 中的一个专用的宏,具体说明请参见 Qt 的文档。
$%&'()*&%+'()**,
',-.
/$-.
&*
0*1$-.
0*$-.
0*&1$2)-.
因为 QGLWidget 类已经内置了对 OpenGL 的处理,就是通过对
initializeGL()、paintGL()和 resizeGL()这个三个函数实现的,具体情况可以参考
QGLWidget 类的文档。
因为我们的这个 Qt OpenGL 教程取材于 NeHe OpenGL 教程,所以这里就用这
个 NeHeWidget 类来继承 QGLWidget 类来使用相关 OpenGL 的功能。
initializeGL()是用来初始化这个 OpenGL 窗口部件的,可以在里面设定一些有关
选项。paintGL()就是用来绘制 OpenGL 的窗口了,只要有更新发生,这个函数
就会被调用。resizeGL()就是用来处理窗口大小变化这一事件的,width 和 height
就是新的大小状态下的宽和高了,另外 resizeGL()在处理完后会自动刷新屏幕。
0*345&!0$64!0%-.
这是 Qt 里面的鼠标按下事件处理函数。
&*
**,&.
用来保存窗口是否处于全屏状态的变量。
7.
(由 nehewidget.cpp 展开。)
828
$%&)*&%+)
**,-
$&)+-
,&',.
保存窗口是否为全屏的状态。
*+&4$()()9:():;(-.
设置窗口的位置,即左上角为(0,0)点,大小为 640*480。
"*$8<=&+2*&38-.
*2#$8<=&+2*&38-.
设置窗口的标题为“NeHe's OpenGL Framework”。
,$,&-
*2=>&$-.
如果 fullscreen 为真,那么就全屏显示这个窗口。
7
这个是构造函数,parent 就是父窗口部件的指针,name 就是这个窗口部件的名
称,fs 就是窗口是否最大化。
/$-
7
剩余63页未读,继续阅读
资源评论
- 尼尔模型来咯koe2014-07-05还行 老了 但是新手收益
- wanghan3122013-04-10基于QT4.5 OPENGL教程 学习
- lx三刀流2013-11-01这么好的资源,结合NeHe教程用QT写。
- kingwow7232013-06-09不错 可以看 说明也很详细
a1165846311
- 粉丝: 4
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功