软件开发技术名词的解密篇(6)-OpenGL,DirectDraw&D3D,UML,RTTI

OpenGL
  OpenGL至今颇有一点英雄落寞的味道,这一套标准是实现得如此之好,以至于曾经一度成为游戏界面华丽的标准。它的低落也是一个必然,毕竟在微软的强力打压下鲜有不挫败的。但它曾经能够给微软带来如此的压力,至今也依然在工业界被广泛使用,大多数游戏/显卡依然保留着对它的支持(CS里我喜欢的还是OpenGL)。而它的性能在某些方面与D3D比较,依然占着上风。不幸的是DirectX在不停地向前发展,而它,几乎止步不前了,前景并不光明。OpenGL目前在工业领域应用较为广泛,它的优秀的矢量图的操作性能,华丽的色彩,在专业的图形图像处理领域表现突出。游戏中使用相对以前而言则是越来越少。新近听说微软的最新操作系统Vista对OpenGL进行了极大的打压,不但性能上折扣,支持的版本也只到1.4(最新版本好像是2.0),不知道最后如何收场,拭目以待。

  DirectDraw & D3D
  大凡像样的2维Windows游戏,几乎都是采用此技术来实现显示的。DirectDraw有两种模式:全屏和窗口。其中全屏应用更多一些。在全屏下,DirectDraw有一个十分著名的“换页”技术,即在两个显示页面之间用“交换”来实现显示刷新,这个速度十分地快,只是一个显存内一个指针的交换,比你用BitBlt复制一屏的像素快太多太多,游戏的高效的动画效果大多源于此技术。
  DirectDraw主要用于娱乐领域和一些实时显示要求较高的场合,如医疗图像。D3D是目前大多三维游戏的标准采用,我没钻研过,不敢多言。它的效果嘛,玩玩游戏就知道了:)

  UML:Unified Modeling Language,多译为统一建模语言
  这个语言是一种图形语言,主要是作为设计时建模的一种标准的图形模型,便于程序员与程序员、程序员与客户、设计员与代码员之间的沟通,同时它也帮助设计人员将头脑中的基于程序代码的对程序功能的理解形成文档,便于理清头绪,进行下一步编码的工作。换言之,设计过程的产品,可以表现为一些文本文档,或者一些框架代码,或者一些伪代码,但比较标准通用的,是表现为一堆UML图。UML包括动态图和静态图两大类,其中静态图中的类图最为常用。很多人初学时不知道该怎么做设计,写小软件时常常没有设计过程,其实很简单,把软件的类图画出来就好了。学做设计时未必要找一个像Together或者Rational Rose一样的巨无霸。用一些简单的可以做UML图的工具就好,专门用来画UML图的小工具很多,网上容易找。补充一点:画UML图不要面面俱到,不要什么都画,突出重点方便理解就好,甚至使用不规范的记号也不要紧(当UML的功能是草稿的时候)。

  RTTI: Runtime Type Information 运行时类型信息
  在程序中,当我们得到某一个对象的实例或者指针时,大多数时候并不能直接肯定它的类型(都是继承以及类型转换惹的祸),这个时候,依靠VC4.0或更高版本的编译器提供的RTTI支持,调用库函数typeid()即可在运行时获取这个对象的“类型信息”,在一些动态处理中“类型信息”很重要,获取了类型信息以后,你就可以有十分把握地调用该类型的相关操作,或者类型转换,或动态生成。因其重要性,在JAVA和.net库中借助单根继承和“虚拟机”对此有了更优雅的做法,每一个自object继承的类天然就有了表述自己类型信息的能力(继承的好处),并且容易扩展,现在你需要类型信息的时候,大可直接ask那个对象:tell me, what type are you?它就会告诉你答案。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值