3D奇兵GP-1
|
|
3D奇兵GP-1朱云1999.9(独家授权于《电脑报》) “另类”公司GigaPixel设计GP-1的GigaPixel公司自称是美国的“3D专家”,建立于1997年。从成立时开始,GigaPixel就致力于将SGI图形工作站级的3D图形质量与性能带入主流市场,因此GigaPixel在技术上只有一个选择,就是改变传统的3D硬件架构,使用创新的“另类”处理方式。 在操作方式上,GigaPixel同近年来涌现的无数电路或IC设计公司一样,采用设计同生产相分离的模式,不但不自行生产、加工芯片,而且连提供给最终用户的IC设计也不打算完成——GigaPixel的产品就是3D核心的设计,称作IP(知识产权)内核,IP也正是信息时代的电子产品的代表。现在欧美十分流行的IP操作模式是随着IC规模的不断增大、设计、生产周期的不断缩短和单芯片系统(需多个公司的技术融合)的不断增加而产生的,象GigaPixel这样专注于技术水准的提升,而把上市产品的设计、生产和市场方面的工作交给更有专长的下游公司去做,对规模较小的设计公司无疑是较好的选择,这在3D图形硬件市场上尤其重要(因为就算象Intel这样实力近乎“无敌”的公司在3D硬件方面也会遭遇挫折)。 GP-1的“另类”之处GigaPixel GP-1同现在主流的(或者说,传统的)3D加速芯片相比,有众多的不同之处。 首先,GP-1是一种3D加速芯片的IP内核,它可以被其他厂家用来设计、生产完整的2D/3D/视频芯片,甚至整合型主板芯片组。好处是由GigaPixel负责技术的发展、提供驱动软件和向软件(游戏)公司推荐其GP-1系列产品;但使用GP-1内核的公司还必须添上自己的2D部分和视频部分(尽管这也使灵活性大大增加)。 各公司在GigaPixel的帮助下可以设计出核心相同但功能市场定位各异的芯片,而且过程并不复杂,能够在较短的周期内推出和升级其最终产品。GP-1使用了先进的分块渲染、隐面去除技术。正如我们很早就已经指出,3D系统的带宽和复杂性是传统3D体系结构发展的客观障碍,这也是为什么nVidia的GeForce 256达到2倍Pentium III复杂程度(已经很难生产了)仍被责备为“填充率太低”(因为128位的显示内存接口的带宽限制了内核性能的发挥),为什么Bitboys超过1.2/1.4G texel/s的Glaze 3D系列不得不使用512位嵌入式内存作为cache,S3的Savage 2000系列同GeForce 256一样要用到高速的DDR DRAM来提升显示内存带宽;为了解决上述问题,更根本的方式就是改变体系结构,象Videologic的Power VR S1/S2两个系列、Stellar使用PixelSquirt结构的VelaTX、微软的Talisman设计(Fujitsu和Trident都试图使用过)就是这方面的先锋。 GP-1并非是第一个采用分块渲染、隐面去除技术的产品,但是更为重要的是它解决了以往产品的最大问题:同传统体系结构的兼容性。GP-1先将要渲染的场景(显示屏幕或窗口)分成若干个小块,目的是降低数据量,使内核可以直接存放当前数据而不必频繁访问显示内存和主内存,当然还因为处理的简化而使内核复杂程度减小,带来运行频繁的上升和并行处理成为可能,并行处理既补偿了逐块处理带来的速度减慢,又有可能进一步提升速度;第二步,决定当前块中哪些多边形是可见的,将不可见的多边形去除,这样GP-1就不用在那些看不见的东西上浪费哪怕一点时间;最后才是传统的渲染过程,有完整的三角形设置、明暗涂色、纹理贴图和半透明混合几个步骤。所有这些工作完全是内部硬件操作完成,从软件角度看,这一切均被封在“黑盒”中,就象在使用一个普通的3D内核一样。 GP-1结构的主要优点是它将3D图形系统的带宽需求降到了原有的1/10(最低值)和大大降低了需要处理的数据量,而相应IC的逻辑门数据量也同时大大减少。在其他方面GP-1同主流的3D加速芯片完全没有两样。比如说,GP-1使用的API是Direct 3D和OpenGL(均完全兼容),3D特性有32位真彩色渲染、三角形组成的条与块渲染、镜面高光和漫反射明暗涂色、基于顶点和查表的雾化、128位内部数据通道、支持各种类型的内存芯片和支持x86及其他类型的CPU等等;比较特殊的是GP-1还支持3dfx的T-buffer中那样的无损速度、高质量的抗锯齿功能(Anti-Aliasing),另外GP-1的Z-buffer是集成在片上的24位类型,而且可以再次读出,这样就同普通的外置在显示内存中的Z-buffer没有什么不同了。 “另类”3D大比拼这类用特殊方法进行渲染的3D加速芯片虽不多,但各有各的特点和长处,下面我们从分块渲染、隐面去除、片上Z-buffer、纹理压缩、抗锯齿功能和2D/视频等几部分功能来进行相对深入的比较。 分块渲染功能是“另类”3D芯片的主要共识:PowerVR S1系列使用软件进行分块(32x1像素的块),因此效率较差,十分依赖于CPU;PowerVR S2系列改为硬件分块引擎(32x16像素的块),速度已经不输于传统架构了;VelaTX使用的块就是单个像素点,并且是128路并行结构;Talisman设计则仅仅肯定了分块渲染的重要性,并未公开具体的实现细节;GP-1也是硬件实现分块功能,而且完全兼容现有的和将来的软件。 隐面去除功能基本都是通过图形排序来确定相互之间的遮挡关系,这里面半透明排序是个难点:PowerVR S1系列使用无限大平面来排序,用软件实现半透明排序,比较失败;PowerVR S2系列也使用无限大平面来排序,用硬件执行半透明排序;VelaTX使用的是像素点排序;Talisman未提到这个要点;GP-1用的是传统的多边形为单位的排序和硬件半透明排序,解决了以往的难题,也提高了兼容性。 片上Z-buffer功能可以大大节省带宽(约占总通信量的一半),但以往的PowerVR系列、VelaTX和Talisman都是完全取消了Z-buffer功能,这使得一些依赖Z-buffer实现的3D特效难以实现,GP-1的改进是让片上Z-buffer不但可以写入还能够读出,一举解决了这个大难题。 纹理压缩功能也是节省带宽的好举措:Talisman指出压缩效率应该有1/8~1/12 ;PowerVR S1没有纹理压缩功能;PowerVR S2使用符合DXTC标准的VQ方式可达1/8的最大压缩率;VelaTX也符合DXTC标准;GP-1在这一点上有些不足,未支持纹理压缩(可能到DXTC被广为采用时再加上也未可知)。 抗锯齿功能直到3dfx最近在Voodoo 5中采用才为大家所重视,实际上全景抗锯齿(与较简单的边缘抗锯齿不同)所要求的超大像素填充率对这些新型3D芯片来讲并不是什么难事,PowerVR S2和VelaTX早已有了(Talisman未表态),GP-1自然也轻易实现了全景抗锯齿。 2D/视频功能对于完整的显示卡系统来讲是必不可少的:PowerVR S1系列是3D附加卡,没有2D/视频部分;PowerVR S2系列有完善的2D和DVD动态补偿;Talisman本该有全面的3D/2D/视频功能,但因为一直没有被做出来,我们也无缘得见;VelaTX是用来同2D/视频芯片协同工作的纯3D芯片,另外PixelSquirt结构的IP内核也提供给其他厂家使用;GP-1最干脆,是纯3D内核,只能由其他厂家将它集成进2D/视频设计中。 “另类”结论总而言之,GigaPixel GP-1的优点是“另类”3D结构和完善的兼容性带来的高性价比产品(IP的灵活性也可部分看作优点);它的缺点是需要他人采用其IP设计(3D芯片大厂似乎大多不会这么做),还缺少2D和视频部分以及T&L几何与光照加速(尽管对于高性价芯片T&L并非必须)。 相对传统、复杂、昂贵的GeForce 256和Savage 2000,GigaPixel GP-1正是另一个极端——新颖、简洁、廉价。至于你我会不会用它,就得看市场的“自然”选择了。 |
|