DX11而生 3DMark 11测试工具全面解读
泡泡网显卡频道9月8日 昨日Futuremark官方正式发布了旗下最新PC性能测试工具3DMark 11的白皮书和指南,产品专门定位DirectX 11图形测试,在早期有很大一部分用户并没有能够及时赶上这一测试工具,不过随着DirectX 11显卡的大量普及,3DMark 11逐渐成为一项PC测试的基本工具,而为了照顾中文用户的需要,产品也提供了中文版白皮书。
3DMark 11自发布以来,官方并没有做过多的介绍,对于测试中具体的运行细节和成绩分成,玩家知之甚少,为了让用户更好的使用上这个全世界范围内被广泛接受的PC性能测试工具,Futuremark将软件测试细节和使用说明都做了详细的解读。
作为DirectX 11而生的测试工具,3DMark 11支持众多DirectX 11渲染引擎,这包括多线程(Multithreading)、曲面细分(Tessellation)、照明(Lighting)、景深(Depth of Field)、辉光(Bloom)、镜头反射(Lens Reflections)等。
作为DirectX 11的重点推荐,3DMark 11全面支持多线程(Multithreading)、曲面细分(Tessellation)等新的DirectX 11特性,新的DirectX 11支持使得显卡具备更加灵活的线程调用方式,而置换贴图的曲面细分技术,使得贴图渲染更加有效和精细。
● 多线程(Multithreading)
多线程模型基于DirectX 11 设备环境和命令表。引擎在图形测试中每个可用物理CPU 内核使用一个线程,而在物理测试和综合测试中每个可用本地CPU 内核也使用一个线程,每一个线程都被看作是主线程,同时使用即时设备环境和延迟设备环境,其它线程为辅助线程,只使用延迟设备环境。
渲染工作量通过将渲染场景中的项目分配到各个线程的方式分布于各线程之间,每个线种都被分配了大致等量的场景项目。在渲染一帧时,每个线程都做与分配给该线程的项目有关的工作,例如:它可以包括变换矩阵层次的计算、可见性剔除、着色器参数(包括缓冲区的内容和动态顶点数据)计算、和DX API调用至命令表的记录。当主线程完成与其自己的项目相关的任务时,就会执行由辅助线程记录的命令表。
● 曲面细分(Tessellation)
3DMark 11 使用两种类型的曲面细分:基于置换贴图的精细曲面细分,以及置换贴图可选的冯氏(Phong)曲面细分。在精细曲面细分中,曲面细分器生成的顶点按照置换贴图来定位,置换按照平滑的几何法线方向进行。在冯氏(Phong)曲面细分中,各顶点在置换前就被放在一个近似的曲面上,曲面近似度,则是通过三角形顶点的位置和法线算得。
曲面细分因子是根据投影至屏幕空间的每个输入三角形边长算得。这就是说,细分因子会适应与摄像头的距离,保持输出三角形的尺寸大致与输入三角形的距离变化相等,期望的三角形边长(以屏幕像素为单位)由设计人员控制。三角形以内的曲面线分因子被确定为各边算得的最小因子,这可以避免产生亚
像素三角形,最后,曲面细分因子被锁定到一个给定的最大值。
顶点法线背向观察者的输入三角形在外壳着色器中进行剔除,所有与观察矢量相对的顶点法线的角度超过给定的阈值时,要进行剔除,输入三角形按照视景体的左面、右面、底面和顶面进行剔除。
虽然无法直接看到所产生的细节,但正对观察者的输入三角形的曲面因子没有减小。移动目标各表面上的视差效应和屏幕空间的环境遮挡效应揭示了对这些三角形产生的细节。
在生成阴影贴图时,使用的曲面细分因子与渲染屏幕图像时的相同,它提供了良好的自阴影(self shadow)质量,从低级到高级曲面细分精细度都非常有效,使内容的缩放非常方便。当目标处于曲面细分不会产生任何可见细节的距离时,曲面细分功能就会关闭。
我们知道3DMark 11总计包含了六项测试,其中图形性能包含了4项,这也说明了消费群体的一种图形倾斜趋势。
六个测试项目内容如下:
● 图形测试1
渲染具有大量投影和非投影聚光源,和非投影光源的场景,该场景使用带噪声调节光密度的分级照明。场景中不包含曲面细分的几何图形。
● 图形测试2
渲染具有中等数量投影和非投影聚光源和非投影光源的场景,该场景使用带噪声调节光密度的分级照明。场景中包含曲面细分的几何图形。
● 图形测试3
渲染具有一个投影方向性光源和一个中等数量非投影点光源的场景。分级照明只在投影方向性光源的情况下启用,投影方向性光源使用的分级照明,光密度因空间高度不同而异。场景中包含曲面细分的几何图形。
● 图形测试4
渲染具有一个投影方向性光源和几个投影点光源的场景。该场景使用分级照明,光密度因空间高度不同而异。大多数渲染工作量来自于向阴影贴图和G‐缓冲区(G‐buffer)中绘制曲面细分的几何图形。
● 物理测试
模拟和渲染具有大量刚体(rigid body)的场景。渲染通过轻量级技术进行,刚体互相碰撞时,其中有些是与关节连接,将模拟空间分成几个独立的区域,模拟分为多个线程进行。使用Bullet 开源物理函数库的C++路径作为本测试的物理SDK,并在开发时静态编译和链接为测试二进制。
● 综合测试
模拟和渲染具有大量刚体(rigid body)和软体(soft body)的场景。刚体互相碰撞时,其中有些是与关节连接,将模拟空间分成几个独立的区域,模拟分为多个线程进行,而软体模拟通过DirectX 计算着色器计算。使用Bullet 开源物理函数库作为本测试的物理SDK,并在开发时静态编译和链接为测试二进制,除了物理工作量,测试还包含相当大的图形工作量,包含了一些曲面细分、分级照明和后期处理效果。
而在3DMark 11中提供了3个快速的基准测试模式,以此作为行业的标准,而用户可以通过自己的需求,定制不同的测试项目和测试规格参数等。
3个快速的基准测试模式分别为低级别(Entry)、性能(Performance)和极端(Extreme)。
三组测试基准配置表
● 低级别预置(E)
此预置设计用于为显卡上的低级别负载提供基准。此基准以1024 x 600分辨率运行,使其适合大多数可运行DirectX 11的系统,包括笔记本和上网本。
● 性能预置(P)
此预置设计用于为显卡上的中等级别负载提供基准。此基准以1280 x 720(720p)分辨率运行,使其适合大多数可运行 DirectX 11的游戏计算机。
● 极端预置(X)
此预置设计用于为显卡上的高负载提供基准。此基准以1920 x 1080(1080p)分辨率运行,使其适合高端游戏计算机。
而作为一个测试工具,通常会给出参考成绩的具体数据,以实现不同产品的可比性,由于参测的项目多达6相,就会有不同的加成算法,另外在不同的模式下加成算法也不同。
3DMark 11个模式加权值
在图形测试中共有四组测试成绩,当然这些成绩会被加成为一项,而物理分数和综合分数各单独为一项。
具体算法如下:
● 图形测试分数
每个图形测试场景都产生一个以FPS 帧率为单位的结果Fgt1、Fgt2、Fgt3、Fgt4,分别求倒数、相加、被四除、乘以调整系数Cgraphics 就得到图形测试的分数Sgraphics。
● 物理测试分数
物理测试产生成一个以FPS帧率为单位的结果Fphysics,乘以调整系数Cphysics 就得到物理测试的分数Sphysics。
● 综合测试分数
综合测试生成一个以FPS帧率为单位的结果Fcombined,乘以调整系数Ccombined就得到综合测试的分数Scombined。
■<