工欲善其事,必先善其器:OpenGL学习之我见

“工欲善其事,必先利其器”这句出自《论语•魏灵公》中的“工欲善其事,必先利其器。居是邦也,事其大夫之贤者,友其士之仁者。”一句话,用来做本文的标题,来谈谈目前OpenGL相关图书的个人一点看法。
OpenGL领域从来都不乏好书,在图书市场极其丰富的今天,再来撰写一本关于OpenGL的图书是需要足够的胆量和理由的。
相信很多读者都和我一样,书架上早就摆满了各种OpenGL书籍。有关于基础教程、游戏编程、计算机图形学等。从总体上分为国外和国内两大阵营。其中国外图书,原理性内容讲解的比较透彻,但缺乏本土化案例;国内的图书,书中案例主要侧重于纯编程的小示例。
很多读者在掌握了OpenGL的各种功能,如绘图、投影变换、纹理操作、显示列表等,掌握了OpenGL这件“器具”,觉得也算比较锋利了,可是拿着这件“利器”却又不知道如何下手?其结果就是一旦真正做起实际系统开发时,刚刚入门的程序员就会感觉困惑,知道要做什么,但并不知道如何去做。当遇到一个新项目的时候,我们还是会晕头转向,不知从何下手,迷茫伴随左右。
越来越多的人在踏入OpenGL大门之后,开始左右彷徨,谁能引我真正进入三维实际系统开发入门?用OpenGL开发实际三维系统,难乎?魔乎?
分析下目前OpenGL图书的主要特点是,讲解到某个函数或功能,然后示例;一本书的结果就是由多个不相关的小示例组合而成;
而我们现在要做的是,一个完整的大型实例贯穿全书,以实例讲解OpenGL的相应功能和在实际系统开发中每个函数和、功能的使用方法,做到“知其然,也知其所以然”。
是该到了以新的方式来为OpenGL写一本书了,尽管显得有点自不量力,但我还是想做个尝试!通过几个月的努力全书已全部完成,书名为《实战OpenGL三维可视化系统开发与源码精解》。该书并非作为一般普遍的基础系统教程而作,而是积日常开发项目实践的所得,重在实用与提高,而非说教。以期融会贯通,学以致用。由于精力和时间仓促,很多细节并没有做到非常的完美,也许会有许多不完善,但已基本囊括了三维可视化系统实际项目开发中的要点。不奢望它是什么开发圣经或技术宝典,只希望能给学习基于OpenGL开发三维系统中的朋友有那么一点帮助,我就满足了,自己的辛劳也没有白费,也真诚的希望能与读该书的朋友一起切磋交流、学习进步、成为朋友。
最后一点,如果你确实想成为OpenGL三维开发大师,则要亲自动手实践,实践是最重要的。切记切记!

在有了这样的想法后,就想把自己做的系统所涉及的开发的各个方面写出来,包括OpenGL专业知识和道路专业等相关知识,和有兴趣的朋友一起探讨。方便更多学习OpenGL做三维系统开发的朋友快速进入这个门槛,避开自己过去所走过的各种弯路,节省学习的成本和时间。例如光学习Oracle这样庞大的数据库就得需要好几个月甚至更长的时间,书中直接讲解我们用OpenGL开发时,Oracle数据库编程方法和实际实现代码,目的只有一个,Oracle数据库的书有很多,可以慢慢学,但先把开发所用到知识和程序实现给大家,不会影响系统开发进度,有些知识是可以在开发的过程中学习的。在程序代码中尽可能的加上详细的注释,这样程序读起来和理解起来就会容易一些。通过几个月的努力全书已全部完成,书名为《实战OpenGL三维可视化系统开发与源码精解》。该书并非作为一般普遍的基础系统教程而作,而是积日常开发项目实践的所得,重在实用与提高,而非说教。以期融会贯通,学以致用。

相信很多读者都有这样一种感觉,在做系统开发最不缺少的就是讲道理、原理的文章、书籍,象这样的文章在CKNI、维普网等期刊网是不知道有多少。更不缺少那些写的非常深奥、算法说的非常优秀,最后贴了个效果图的文章,给人的感觉就是云里雾里,看了还不如不看。我们最需要的是实际实现程序代码,请先告诉我们如何编程实现,然后再告诉我们原理、方法。
9215421_200907061529091.jpg

fj.png实战OpenGL三维可视化系统开发与源码精解xiao.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9215421/viewspace-608425/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9215421/viewspace-608425/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1篇 系统开发基础   包括第1章三维图形世界、第2章OpenGL概述和第3章Oracle与 OCI技术及编程基础。   第1章 介绍了计算机三维图形技术的发展、科学计算可视化技术、三维可视化工程设计的基本概念和发展现状。   第2章 主要对OpenGL的基本概念、OpenGL编程基础和在Visual C++环境下OpenGL基本程序框架的建立进行了讲解,并给出了一个简单的旋转立方体程序示例。通过这一章,使读者对OpenGL有初步的概念和了解,对于纹理、显示列表等更深入的编程,我们将通过后续章节进行更详细的讲解和学习。   第3章 主要对Oracle数据库及其特点进行简要的介绍和说明。以Oracle 9i为例,介绍了Oracle数据库的安装步骤和Oracle支持的数据类型。在此基础上,介绍了ADO、Pro*C/C++和OCI三个主要Oracle编程接口,对它们的各自功能和特点进行了详细说明,从功能方面、性能方面、开发难度方面进行了详细分析和比较。重点介绍OCI编程基础、OCI的数据结构、OCI程序的基本结构、OCI执行的步骤,最后给出了在Visual C++6.0环境下开发OCI应用程序的示例。   第2篇 大规模地形三维可视化系统设计与实现   包括第4章地形三维可视化系统框架与OCI类模块设计、第5章地形三维可视化系统的地形渲染实现和第6章地形三维可视化系统项目管理与辅助功能设计。   第4章 在第2章的基础上,完成了基于OpenGL的地形三维可视化系统程序框架的建立,为后续的功能模块开发提供了基础平台;在第3章的基础上,设计了OCI公共类,将所有与OCI有关的数据库操作、数据读取等功能函数实现全部封装在该类中,并定义了公共类的全局变量myOci。   第5章 本章对地形三维可视化进行了基本概述,介绍了目前地形三维可视化的主要算法。主要介绍了海量地形与影像纹理数据的常用获取方法,给出了海量地形自分块与影像纹理分块原则和程序实现,以及地形与影像子块调度的程序实现,在此基础上实现了地形的三维可视化;还介绍了真三维立体的实现算法和数学模型,在此基础上给出了基于OpenGL的真三维立体的程序实现。   第6章 主要讲解了新建项目、打开项目、背景天空的绘制、绘图模式控制的实现方法和程序设计。介绍了基于OpenGL深度缓存的二维屏幕坐标向三维空间坐标的转换算法,实现了对三维空间坐标和空间距离查询,以及查询标识设置的程序设计;最后讲解了基于键盘和鼠标联合控制的三维场景照相机程序模块的实现,实现三维场景的前、后、左、右移动和任意方向的旋转。   第3篇 线路三维可视化系统设计与实现   包括第7章三维交互技术与三维线路数据结构、第8章三维线路设计实现、第9章道路整体三维建模和第10章三维漫游的实现。   第7章 主要对三维交互环境进行了介绍,详细讲解了正射投影模式的实现、正射投影模式下场景控制方法和程序设计,以及透视投影模式的实现方法;还讲解了正射投影模式和透视投影模式下三维地面坐标的获取原理、方法,在此基础上,设计了边坡数据结构、桥梁数据结构、隧道数据结构、水沟数据结构及线路数据结构,为实现三维线路设计做好了前期准备。   第8章 主要对线路方案的主要参数设计方法和程序实现、设计交点信息输入实现、线路中心线定位方法、设计方案的保存、平面方案的自动生成和程序设计、纵断面设计模块的实现、边坡模型的生成算法、线路路基三维建模方法和实现、隧道三维建模和参数控制、桥梁三维建模和参数控制的程序设计进行了详细讲解。   第9章 主要讲解了道路整体三维模型实现,对其中的线路封闭区域确定与分割算法、地形块综合数据点计算、分块TIN模型的构网实现、封闭区域内数据点的剔除、整体构网的程序实现都进行了详细说明;在纹理管理部分,详细讲解了边坡纹理、路肩纹理、桥梁护坡面纹理、隧道内墙纹理、隧道洞门纹理的程序设计和实现。   第10章 从多个方面对三维漫游的基本概念、程序实现、参数调整和控制进行了讲解,帮助读者学会在三维可视化系统中三维漫游模块的程序设计方法;对飞行路径的基本概念、设置方法、插值算法、保存和打开的程序设计,沿飞行路径实现三维漫游的程序设计,沿线路方案漫游的固定高度和相对高度两种模式的程序设计,三维漫游控制和调整的程序设计,以及三维漫游的相关计算都进行了详细的讲解,每一部分都给出了完整的程序代码。   第4篇 线路三维可视化系统辅助功能实现   包括第11章显示模式控制及实现、第12章3D模型载入与应用、第13章系统输出接口与动画录制实现和第14章系统简介与运行实例。   第11章 本章主要对双目立体方式、正射投影方式和透视投影方式的显示模型模式控制和实现、时钟指北针的程序设计和实现、缩略图的实现方法和程序设计进行了详细的讲解和说明。   第12章 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值