
一个典型的3D 芯片具有如下功能特征:
1)3D芯片的处理对象为屏幕空间的三角形或上边平行于扫描线的四边形。
2)象素采样算法可选择精确的点采样(24位寻址空间)或象素区域随机/平均采样。如每个象素区域可有16个随机/平均分布的采样点和多达4个的面片。
3)支持的象素操作包括等亮度明暗处理(flat shading);Gouraud明暗处理;Z-Buffer算法;用于透明效果等的alpha混合;纹理映射及其透视矫正;每象素可选择1个、4个(双线性插值混合)、8个(三线性插值混合)采样点的密集纹理采样;支持MIP-mapping纹理映射方法;支持多种混合模式的纹理光照效果;支持A-Buffer反走样算法。
4)可以实现芯片一级的并行操作。例如在一种隔行扫描的体系结构中可有多达32个3D芯片对同一组处理对象进行并行操作。要做到这一点芯片就必须设计成可伸缩的体系结构。
5)应提供与工作环境交互的丰富而强大的接口。它们包括用于传输处理对象数据的接口,芯片内部微处理器与外部的接口,象素缓存接口,纹理接口等。由于存储器技术,特别是面向图形应用的存储器技术在不断取得进步,因而3D芯片的接口设计必须有利于不断采用新出现的存储器技术。特别是颜色、深度、纹理存储器的接口,应在它们的访问协议相互独立的前提下,为每一个系统的特殊需求建立专用和优化的存储器系统。例如SGRAM(同步图形RAM)先进的块写特征适合深度存储器的清“0”操作,而新的WRAM(窗口RAM)的先进的Bit-BLT功能和块写功能非常有利于颜色存储器的设计。因而这些接口必须面向一类情况设计成可编程的。这样无须对芯片的设计作更改就可及时采用新的存储器技术。
6)具备调试和测试诊断功能。这些功能为3D芯片的应用开发提供手段。
上述功能具体到某个芯片时会有一些出入和不同的表述方式。而且新功能和新算法还在不断研究发展并及时反映到产品上。
1.一个简单的3D芯片
与其它多边形相比,三角形是最简单的平面多边形。沿着扫描线方向一个屏幕空间三角形内部各点颜色(r,g,b)和深度(z)的变化是线性的,即相临象素点的这些值仅相差一个固定的常数。这样就使得三角形的明暗计算非常适合于硬件实现。而其他多边形都可以通过预处理分解成三角形,因而三角形是一种最合适的图形处理基元。我们首先以一个仅完成Gouraud明暗计算功能的芯片为例,解释3D芯片的基本体系结构。一个三角形的明暗计算可分为三个步骤:初始化;沿着三角形边的插值计算;沿着三角形内扫描线段(span)的插值计算。
(1)初始化