|
3DMark06推出刚几天,已经看到了关于其产品质量有重大问题的消息。
3DMark06是Futuremark公司在继3DMark05之后推出的新一代Benchmark软件,拥有HDR、SM3以及众多新特性。但专业评估认为3DMark06拥有一些致命缺陷,并不能客观的反映出现有显卡在现在或以后游戏中的性能表现。
比如,DFC(动态流控制:Dinamic Flows Control)是SM3.0所带来的一个突破,同时也是一个支持SM3.0显卡的必备特性,然而Futuremark公司在3DMark06中将这部分的使用减少到最少范围,DFC仅小规模的应用在Benchmark中,每个SM3.0测试仅包含了非常少量的DFC。
同时,3DMark06不能使用最新的HDR+AA,也就是说,在3DMark06测试中,测试人员如果打开了HDR,那么全凭抗锯齿功能将是不可用的。而这是最新游戏设计者热衷于追求的东西。
更让人不能理解的是: Futuremark放着这些最重要特性不去支持,却更热衷采用某些SM3.0中可选的特性,例如24b surfaces,而且还在3DMark06的阴影着色中大量采用。
另外,3DMark06中让SM3.0的显卡直接运行SM2.0的测试是非常不合理的,因为SM3.0及SM2.0在设计构架上有所不同。另一个违背对游戏性能的评估的是3DMark06对SM2.0显卡及SM3.0显卡的记分。现在已经确认的是SM3.0不能提供比SM2.0更好的画质改善,只是在性能上有所提高(例如,通过使用动态的分歧预测机制)。然而在3DMark06中最新的高端SM2.0显卡得分会比最新的中端SM3.0显卡要低(例如,X850显卡比X1600显卡得分低),但这在实际游戏测试中这是不可能发生的情况。在3DMark06还有的问题是:鉴定显卡SM3.0性能的测试项目并非测试SM3.0。其中的“Perlin Noise Shader Model3”测试项目实际上就是一个长的SM2.0渲染。该项目能被现在任何一家显卡厂商的SM2.0硬件运行。
Futuremark公司也明白游戏开发者会为不同厂商的显卡使用不同的代码,软件的开发者不可能把为一个平台写的渲染程序原封不动的搬到另一套平台上,因为这是不可能运行的。正确的方法应该是为不同厂商的显卡使用不同的代码以求最好的工作效益。一个例子是顶点纹理拾取(VTF)功能和使用顶点缓存,这都是对同一个问题的很好的解决方案,只是工作在不同的方式下而已。两者都不是SM3.0核心规范的一部分。如果把只针对一种方法而写程序包简单的加上一些代码封装就让它工作在另一套平台,这是非常不明智的。即使能运行,那性能也必然大打折扣。在3DMark06有几个地方就是这么做的,这有可能是因为3DMark06的开发周期很紧导致的偷工减料。
3DMark06中使用的阴影运算是以某家显卡厂商的模本开发而来,而此厂家使用的24b depth-stencil纹理还不能支持他们自己早期的DX9芯片。相反16b surfaces支持所有显卡厂商的每一代DX9显卡,而且使用16b surfaces还不会降低画质。事实上,在游戏开发者的回馈中指出他们更愿意采用16 surfaces和应用一些特别的存储机构去存储提高分辨率后的depth-stencil纹理数据。
3DMark06的最终得分是在显卡和CPU测试分数中取得一个中值,然后再在这个中值的基础上应用复杂的算法取得最后评估得分,所以3DMark06在测试最后都必须经过一些绚丽、繁重的熔补处理。但这些算法并不能反映显卡的实际效能,例如 ATi X850XT在实际游戏中效能比ATi X1600要高很多,但在3DMark06中得分却少于X1600。Futuremark设法把NVidia 6200划分为SM2.0显卡,并不是因为6200不具备SM3.0的处理能力,而仅是因为6200缺乏某个可选的SM3.0特性,Futuremark就武断的做出该决定。这样一来被定义为SM2.0的6200在得分评估时就不用经过一些深奥的SM3.0特性运算,这样的做法是非常武断没有任何逻辑性的。微软在符不符合SM3.0上有详细的定义,Futuremark被建议应该去详细阅读。
总之,3DMark06并非是基于现有或将来的游戏去规格设计,这对于一款游戏性能评估软件来说并不是什么好事。这样的设计是否真的存在问题,3DMark06对于检验显卡游戏性能是否真的有指导意义,相信在对这款测试软件的了解和应用不断加深,读者和媒体会逐渐得出正确的答案。 |