« Win32编程实现的一点小功能Bmp文件的结构与基本操作(逐像素印屏版) »

遇上OpenGL,一年

一年的时间真的很短,选择每一个周年纪念来回顾总显得太“早”了呵呵。但是记忆总会在不经意的时候流走,我想趁还记得自己想说什么的时候留下一点印记。

——虽然这么说,但对本日是否真的是“周年纪念日”我已经记得不太清楚。我的记忆现在模糊其辞地告诉我,去年三月之初,我选择了这门课程,老师在那时候告诉了我们计算机图形学是些什么的,OpenGL是个怎样的“家伙”。当然开始的时候只有点点感性认识,我看到了前年暑假的《变形金刚》的图片,还有些不知道是啥米游戏的图片,还有一些虚拟出真实场景的图片.....似乎最有印象的就是这三项了。我于是归结出OpenGL能做的事:三维虚拟动画,三维电脑游戏,三维真实仿真。当然,现在看来似乎不应该只有这些,但当时投影屏幕里程序执行猛然出现的一个旋转的彩色正方体让我惊奇了:原来以为必然要很难才做到的事情(主要是动画),就是由这一点一点的代码拼凑起来的嘛。(这里说的是某NEHE框架[见
学OpenGL的第一步,不应是配置环境]自动生成的那个立方体。)

“也许,我也能做些什么.......”

每三周一次的课程作业,是在老师给出的题目中选一,完成OpenGL实现。题目,譬如是一张图片,要求实现图中效果;譬如是文字描述。例如,第一次的课程作业题目就有五个选择:雷达,凸/凹镜,小飞机,人型,饼图。其实雷达是要求一个“电波发射塔”,跟凸/凹镜差不多,就是弄个弧球什么的,老师也给出了产生一个线状弧球的代码。当然,首先我是没理解对,“私自”造了个雷达显示器。(当然,作业图片上就有个雷达显示器,我现在还记得好清楚,所以不要算理解错啦,好不?)恩,这就是我的第一次OpenGL编程。(此前的那些为求熟悉API的练习可不算哦。)对了,过年前还为欢庆(误!)专门写了篇日志的哦(心途.EPISODE1):忆我的第一次OpenGL

遇上OpenGL,一年         ---ZwqXin

其实完成这个雷达显示器过程中还是有波折的——尽管现在回想起来算是步步顺利。你看图里的扫描光线会旋转,这用glRotatef当然可以,但我还想有“一阵阵光圈在雷达内部扩散”的效果(联想龙珠雷达嘛),当然简单,但是当时没想那么清楚,只记得老师一句“TIMER是用来实现动画”的哦。所以就用了TIMER计时器来实现。当时没明白什么是MFC,只知道按老师步骤,"add windows handler",然后在合适的地方 SetTimer, OnTimer, KillTimer。(OnTimer其实就是WM_TIMER消息嘛。)但是.....居然不行?居然扫描线不动?居然光圈不动?然后糊里糊搞之后也不行,看了那黑色的教材,里面说什么“或许有的计算机不支持双缓冲”“双缓冲”实现动画平滑进行.....于是我猜想是SWAPBUFFER()的错了(误会误会),但也改不动(不懂),真是万念俱灰呀。

但是我没有放弃。在交作业期限的前一天,我按耐不住“实现不出”的痛楚,决定再“搞搞”。英明的我想到了:这个程序的代码我不是写在某NEHE框架上,而是写到了老师另外说的一个框架上的,里面有什么“文档类呀视图类呀”的(现在想起来,那是个WIN32 MFC),那么,会不会是框架问题呢?马上转移代码!哈哈哈哈哈哈哈哈哈哈。。。。成功了,动起来了,我的第一个包含TIMER计时器做动画的第一个写的OpenGL程序!

(另外一提,后来的作业里我莫名喜欢用TIMER做动画;再另外一提,虽然也许是我的当时没有设置好些什么,但是,时至今日,我仍然对含有“文档类呀视图类呀”的标准MFC有非常大的厌恶。)

恩,再说回初次失败后那段时间,我觉得总不能第一次作业就只交个没有成功的程序上去吧,于是想到多做几项作业题,反正看上去很简单——于是几乎全做了 - - 。应该说是做了四个吧,凸/凹镜那个有老师现成的代码参考,所以做来没意思,就不做了。

遇上OpenGL,一年         ---ZwqXin
雷达显示器后,第二个是小飞机,只是按照样板把一堆描绘几何体的aux函数胶合一堆移动旋转缩放函数而已。但按照静态变量和旋转函数,它能倾斜一定角度360度旋转,当然这个角度和位置我还斟酌了颇久呢!另外不加光照则是一团迷样的灰色物质口牙~。光照函数没学,我是GOOGLE出来的,只是简单的启动光源设定光源位置。

遇上OpenGL,一年         ---ZwqXin
第三个是人型,不要说了,恶趣味!今天的CAD课发现光头先生有跟我一样的恶趣味,天啊!

遇上OpenGL,一年         ---ZwqXin
背影总显得更加美好(因为模糊模糊地看上去才有个“人样”?)噢,两人携手,眼前是巨大的朝阳,以及深深的悬崖啊!

遇上OpenGL,一年         ---ZwqXin
第四个是饼图。画圆函数在雷达显示器那里就建好了。花得最长“眼力”的是翘起来那块,当时让它看起来不那么别扭还是挺花工夫的。

遇上OGL18日ZwqXin.rar

好了,今天的回忆到这里,我们下期再见吧?

本文来源于 ZwqXin (http://www.zwqxin.com/), 转载请注明
      原文地址:http://www.zwqxin.com/archives/Way/one-year-after-use-opengl.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

IE下本页面显示有问题?

→点击地址栏右侧【兼容视图】←

日历

Search

网站分类

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 100427

Copyright 2008-2013 ZwqXin. All Rights Reserved. Theme edited from ipati.