OpenGL织梦之旅
文章平均质量分 61
plusplus7
萌系大学生一枚。。。。
展开
-
OpenGL织梦之旅【第一章】使用glut工具包配置OpenGL环境
第1章.使用glut工具包配置OpenGL环境 GLUT是一个方便实用的opengl工具包,它可以帮助你快捷地建立窗口,接受键盘鼠标响应,并且不受平台限制。对于我们初学者来说,使用这个包可以帮助我们很快地入门。当我们对程序有更高的需求时,我们再学习怎么样搭建基于windows应用程序的opengl程序框架。 下面以VC6.0为例,说明安装glut的步骤:原创 2012-11-19 16:45:41 · 1774 阅读 · 1 评论 -
OpenGL织梦之旅【第四章】第1节.设置视点函数gluLookAt
在做所有的事情之前,我们必须要了解怎么在3D的世界中绘图。这也是为了帮助我们调整视点,不然调来调去都是黑框... 3D世界中的坐标系也是笛卡尔坐标系,y轴就像是现实世界中的“高低”,而x和z像是地面的坐标。 我们写一个DrawBox函数,这函数负责绘制一个正方体。 void DrawBox() { glBegin(GL_POLYGON);原创 2013-03-01 00:04:45 · 4343 阅读 · 1 评论 -
OpenGL织梦之旅【第四章】编写一个自己的小剧场
先来解释一下这个标题,在这一章我们要掌握一些OpenGL 3D的基本要点。在这一章中,我们进入3D世界,制作一些简单的3D动画,然后实现可以自由调节位置和视角,类似于在剧场中观看动画的感觉。 在现实生活中,我们通过眼睛观察事物,然而也有可能我们是歪着头在看这件事物。如果把现实世界坐标化,我们的眼睛有个坐标eyeX,eyeY,eyeZ,我们观察的事物有个坐标viewX,viewY,原创 2013-02-28 23:53:26 · 847 阅读 · 0 评论 -
OpenGL织梦之旅【第四章】第2节.简单的3D动画
上一小节中,我们已经成功地搭建好了一个“小剧场”,“观众席”已经设置好了,但是“演员”还没有到位。所以这一小节,我们就来请一些“演员”,让他们做一些“动作”。 还记得读取纹理那章的内容吧~2D纹理在这里同样是可以使用的。为了方便,我把LoadBitmap函数放到了"bmpLoader.h"中,这样方便调用。 在bmpLoader.h中: #include #原创 2013-03-04 15:36:03 · 1439 阅读 · 0 评论 -
OpenGL织梦之旅【第三章】第3节.实现截图功能
对于上一章的纹理贴图,不少朋友给我说,有些图片可以成功读取,但是显示不正常。 例如这只猪: 解决方案是这样的。造成这个问题的原因是因为像素在bmp图片中保存格式为BGR,gluBuild2Dmipmaps函数会要求你提供颜色的组成类型(GL_RGB),而某些OpenGL版本的中并没有GL_BGR或GL_BGR_EXT,所以在LoadTexture函数中,原创 2012-12-24 21:06:10 · 854 阅读 · 0 评论 -
OpenGL织梦之旅【第三章】第4节.glut键盘鼠标响应
对于一个游戏来说,能够和玩家进行交互是很重要的。通过键盘、鼠标和手柄,游戏 程序接受玩家的各项指令,从而做出反应。在控制台程序中,我们可以使用kbhit()函数来判断玩家是否有输入,如果有,再调用getch函数就可以接受到玩家的输入信息。 如: if (kbhit() != 0) //按下一个键 {原创 2013-01-13 13:02:07 · 2398 阅读 · 4 评论 -
OpenGL织梦之旅【第三章】第2节.循环显示图片
这节我们将读取几个图片,生成一个纹理集,然后让程序循环显示图片。 为了方便,我直接把图片的数量和每个图片的名字保存在一个txt文档里面,方便程序地读取。 如: 在init函数中,打开data.txt,读取图片的数量和图片的名字,然后调用LoadBitmap函数,把所生成的纹理保存在一个容器vector中,然后在Update函数中,控制显示的原创 2012-12-16 20:25:35 · 1056 阅读 · 0 评论 -
OpenGL织梦之旅【第三章】第1节.纹理贴图
在了解纹理贴图之前,我们先要对BMP位图文件要有一定的了解。在Windows中,BMP格式是一个很常见的图像文件储存格式。位图文件由4个部分构成:位图文件头,位图信息头,彩色表以及定义位图的字节列阵。24位的真彩色图像不使用彩色表,所以可以暂时不用管它。 我们写个函数 int LoadBitmap(constchar *file) 图像bmp文件的地址是file,返原创 2012-12-07 21:17:28 · 1588 阅读 · 3 评论 -
OpenGL织梦之旅【第三章】编写一个显示图片的程序
在前两章的学习里面,我们掌握了在GLUT函数库的帮助下,创建窗口和绘制一些简单的几何图形,然后又调用glutIdleFunc注册了一个回调函数,最终使得画面动了起来。在大多数游戏中,游戏的画面并不是这些简单的图形,而是一些精美的图片。比如,砖墙,草地等。如果我们需要绘制一面砖墙,就要画几千个矩形并且着色。纹理贴图可以帮助我们把一张砖墙的图片映射到一个多边形上。于是,在纹理贴图的帮助下,我们便能很轻原创 2012-12-07 21:03:48 · 796 阅读 · 0 评论 -
OpenGL织梦之旅【第二章】第1节.绘制基本的几何图形
第2章.编写一个的钟表程序 第一节.绘制基本的几何图形 矩形、三角形、圆形等这些都是经典的几何图形,他们都由线构成的(圆形看成是有很多根短线收尾相连围成的),而线都是点构成的。想起了某一年狗血的高考题=。=....而在OpenGL中画线很简单,你指定线两端的顶点即可。 指定顶点的函数如下: glVertex2d原创 2012-11-20 17:38:23 · 1354 阅读 · 0 评论 -
OpenGL织梦之旅【第二章】编写一个的钟表程序
第2章.编写一个的钟表程序 在配置好了glut环境以后,运行了第一个opengl程序以后,我们现在就来尝试编写一个实用一点的程序——时钟程序。 如图: 制作这样一个程序,对于初学者来说,感觉上或许很难,但是只要我们一步一步地慢慢来,总会有熟练掌握的那一天。“包子要一口一口地吃”,韩顺平老师经常这样说。 所以大家不要急,咱们这一章分为3原创 2012-11-20 17:43:52 · 1025 阅读 · 0 评论 -
OpenGL织梦之旅【第0章】前言
第0章.前言 从世界上第一款电脑游戏《TennisForTwo》诞生起,游戏便逐渐变成了人们的一种新的娱乐方式。 而如今,游戏已经发展成为了一个很庞大的产业。相信大多数人和笔者一样,小时候接触了FC红白机起,便被那花花绿绿的游戏场景,充满传奇色彩的游戏故事,以及性格特点鲜明的游戏人物所吸引。 电子游戏给笔者的童年留下了大片大片美好的回忆。FC平台原创 2012-11-19 14:03:51 · 863 阅读 · 0 评论 -
OpenGL织梦之旅【第二章】第3节.指定颜色以及定义视口
第三节.指定颜色以及定义视口 在这一节中,我们将对时钟程序进行一个完善工作。 1.这个时钟整体都是白色的,怎么样给它上色呢? 2.当尝试改变窗口大小,窗口的宽和高不相等时,时钟也相应地变成了椭圆,怎么样固定一下时钟的大小呢? 在计算机屏幕上,屏幕上的每一个像素会发射不同数量的红,绿,蓝光(RGB)。在OpenGL中R,G,B三个值原创 2012-11-27 15:15:30 · 970 阅读 · 6 评论 -
OpenGL织梦之旅【第二章】第2节.实现动画
在上一节中,我们知道了怎么在OpenGL程序里,画一些基本的图形,并且画了一个钟表出来。然而,这个钟的时间是我们事先给它的,所以它只能显示一个固定的时间。所以,这一节我们将来学习怎么让画面动起来! 我希望这个表能够获取系统时间,并且随着系统时间的改变,指针的读数也会改变。 在实现动画这一块,OpenGL给我们提供了双缓冲。当A缓冲区显示时,B缓冲区正在绘制图形。当B原创 2012-11-25 21:33:09 · 2338 阅读 · 4 评论 -
【博客搬家】本博客已全面停止更新,新博客地址 plusplus7.com
新博客地址:http://www.plusplus7.com原创 2013-11-23 21:24:40 · 1380 阅读 · 0 评论