|
十一年前,我们在争论究竟是256色画面好还是16位色彩深度画面好。十一年后的今天,我们争论的是超采样抗锯齿好还是多重采样抗锯齿好。十一年前,我们在争论是否可能实现32位渲染,十一年后,我们争论的是需不需要向64位浮点精度过渡(FP64)。十一年间计算机图形学以惊人的速度向前飞奔,今天3D图形和画面随处可见,你是否还记得第一次看到3D游戏时的感动?你是否知道在这越来越逼真的虚拟世界背后包含了多少智慧和努力? 第一页:从显示卡到图形卡,3D世界的雏形 十年前没有任何人知道什么是图形卡,那时候用来在屏幕上绘制画面的板卡名字叫做显示卡(Display Card或者VGA Card)。但就在2004年的夏天,3Dlabs拿出了划时代的GLINT 300SX图形芯片,从那天开始,能够在屏幕上绘制画面的板卡多了个新名字——图形卡(Graphics Card)。基于3Dlabs GLINT 300SX图形芯片的3Demon SX44/88显卡的诞生首次告诉世人3D虚拟现实世界正在快步向我们走来。 
从现在的眼光看来,3Dlabs的GLINT 300SX的特性非常幼稚——3Dlabs GLINT 300SX仅支持高洛德着色(又称高氏着色,Gouraud shading),深度缓冲(Depth buffering),抗锯齿处理(Anti-aliasing),Alpha混合(Alpha blending)。尽管这片图形卡非常“简单”,但在当时3Demon SX44/SX88图形卡的售价高的惊人。 小知识:什么是alpha混合? 3D环境中处理的象素在颜色方面他们拥有4个值——RGBA。即红、绿、蓝、Alpha通道。这样不仅方便处理(每个通道8bit,4个通道是32bit。如果b不包含Alpha通道是24bit,24bit数据对于计算机来说处理起来效率较低)。Alpha通道能够实现象素的透明度变化。而Alpha混合则能在2个物体叠加时重新计算Alpha通道值,使他们的透明度更趋向真实。 随后OpenGL API开始受到广泛的关注,PC的3D进程再次加速。OpenGL是Open Graphics Libery的缩写,它源于SGI公司为其图形工作站开发的IRIS GL ,在跨平台移植过程中发展成为OpenGL。1992年7月SGI发布了OpenGL 1.0版。OpenGL凭借崭新的理念迅速得到了业界的支持(那时候需要3D计算的大部分为科研机构)并成为事实上的标准。OpenGL由成立于 1992 年的OpenGL Architecture Review Board (ARB)组织管理。ARB成员以投票方式产生标准,并制成规范文档 (Specification) 公布,各软硬件厂商据此开发自己系统上的实现。 
OpenGL在设计初期就设计成独立于硬件和操作系统、面对专业图形处理、科学计算等高端应用领域的标准图形库。OpenGL诞生的时候Microsoft尽管也有了Direct3D,但是Direct3D当时是以系统COM接口形式提供的,除了速度梢快于OpenGL之外,一无是处。看看3D游戏界的上帝、Doom、Quake之父、id Software创始人John Carmack对Direct3D的评价你就知道那时Direct3D是多么糟糕: 
3D游戏界的上帝 John Carmack Direct-3D IM is a horribly broken API. It inflicts great pain and suffering on the programmers using it, without returning any significant advantages. I don't think there is ANY market segment that D3D is apropriate for, OpenGL seems to work just fine for everything from quake to softimage. There is no good technical reason for the existance of D3D. ——John Carmack,1996。 随后S3 VIRGE、MATROX Mystique和ATi Rage 3D加入了3D图形卡的混战。VIRGE首次支持Direct3D和DirectDraw,在3D特性和性能方面较为弱。而Rage3D则能支持更多的3D效果。至于MATROX Mystique除了价格昂贵之外在当时竟没有任何明显的缺点。为了抗击“外敌”,3Dlabs又推出的Premedia凭借极强的3D性能和上述3片显卡争夺市场。NVIDIA也在1994年由一群离开SGI的工程师所创建,并于1995年拿出了影响力甚少的NV1芯片。 NV1拥有完整的2D/3D的图形显示核心还创造性的在显示芯片内集成了声卡功能和I/O控制器,NVIDIA还满怀希望的为NV1定制了二次材质贴图技术(Quadratic Texture Maps),通过这个技术能够让NV1通过计算多边形曲线而实现3D效果。对比ATi 3D Rage的攻城拔寨,NV1称得上是厄运连连。二次材质贴图技术不仅没有多少厂商支持相应,而且也与Direct3D API不兼容而被抛弃,要不是当时Sega购买了大量NV1装在Sega游戏机上,NVIDIA恐怕早就完蛋了。 
3D图形卡群雄混战的日子在1995年11月戛然而止——一家叫做3Dfx的小公司于1995年11月推出了Voodoo 3D加速卡。这片显卡不仅支持所有主流的3D API,还能实现让人眼花缭乱的3D效果,同时Voodoo的象素填充率达到了不可思议的45M Pixels/s!除此之外,3Dfx还成功推广了自己的3D API:GLIDE。GLIDE没有OpenGL那么庞大复杂,也没有MS D3D那么难以开发。结果如你所见,GLIDE迅速得到绝大部分游戏制造商的支持,Voodoo时代来临!昔日辉煌的3dlabs、S3、Matrox在3D世界的旅程也开始进入尾声…… 
Diamond Voodoo2 为了成就霸业,3Dfx在次年推出了Voodoo2。Voodoo2在当时提出单周期双纹理的概念,在板卡上首次搭载了2个纹理映射单元。这就意味着在一个时钟周期内能获得2倍的填充率。与此同时两片Voodoo2显卡还能通过模拟的SLI连接实现协同工作,达到性能的翻倍! |