| | | [文章导读] | | | 经过漫长一个月的等待后,ATi在5月4日正式推出了他们的新一代图形芯片R420。 | |
| | [文章信息] | | | 作者: | 姑苏飘雪 | | 时间: | 2004-05-09 | | 出处: | 天极Myhard | | 责编: | 寒冬 | |
| |
| | | |
|
|
|
|
|
|
|
 在处理被送达的多边形时,HyperZ HD首先将它分成8x8像素块,每个8x8像素Z-buffer块的都有的标记位。这个标记包含了它代表的数据块中最低的Z-value(Z-值)—64个像素。来自三角设置引擎的像素的Z-value将和它要写入的像素块的Z-flag相比较,如果像素的Z-value比标志值大,这个像素就会被丢弃,这个数据块将被忽略、不用从Z-buffer读入缓存。
如果像素的Z-value比标志值小的话,那这个数据块就会从Z-buffer中读入缓存。如果在8x8像素块的最小Z-value值比先前存入在块Z-value值小,而这些像素块属于全部或部分可见的。在这种情况下,这意味着每块8X8像素块将再被分割成4块4X4的子像素块,每块4X4子像素块的最低Z-value值为16像素。
值得注意的是,这些4X4子像素块的Z-value值并不是储存到“regular”Z-buffer,而是储存到另一个“low-resolution”Z-buffer中。如果4x4子像素块的最小的Z-value值比先前储存的Z-value值高,那么这些子像素块将再次被忽略。
最后,如果这些4x4 像素块是完全或部分显示的,那么Hyper ZD会结束以上这种“块与块”的对比剔除方法,改用“classical”处理,对每个独立像素的Z-value值进行校验并与先进储存入“regular”Z-buffer的value值进行比较(这个过程也称为“Early Z测试”)。
可以说,Hyper ZD使用的Hierarchical Z 使用更小的画面像素分块进行计算,这样可以节省更多的像素计算量,而且是在Z-Buffer里面就进行处理,使得看不见的像素部分不被渲染,大大降低了显存带宽的占用率。在处理速度上ATi宣称Hierarchical Z可以达到每时钟周期256个像素,是前一代的两倍。
在完成Hierarchical Z 和Early Z后,HyperZ HD将进入第二步骤--- Z/Stencil Cache。这个处理步骤是HyperZ HD新增加的功能。Z/Stencil Cache,在判断物体阴影锥时需要Stencil Buffer的帮助,它的原理同蜡染工艺中的模板类似,遮罩住屏幕上产生阴影的区域,因此Stencil Cache对于游戏中阴影的处理速度是最直接的。
R420通过缩小Z-buffer存取潜伏周期、增大内部缓存容量以及优化算法两个方面来提升Stencil Cache的性能。尽管ATi和nVIDIA都表示他们的最新产品可以在一个时钟周期处理32个Z轴数据或是模板处理,不过两者实现的条件就大不相同了。
NV40可以在没有色彩数据需要处理的情况下在每个渲染管线完成2个Z/Stencil处理,而R420则是可以在开启抗锯齿的情况下实现,1个Z/Stencil处理由像素管线完成,1个由多重取样抗锯齿单元完成)。两个不同的实现条件决定了R420在非抗锯齿渲染中只能完成16个,而nVIDIA则需要在不考虑抗锯齿的情况下才能达到32个,而实际应用中也差不多是16个。当然,实际使用中的性能将取决于编程人员以及用户的选择。
|
|
|
|
|
|