最近在关注这两个图形API,因为感兴趣,也算是初学者。
以下内容仅供参考。
使用古墓丽影暗影游戏,分别对这两个进行比较,得出的结论如下图(此笔记本散热很差,更改散热应该比下图结果好些):
首先看可以很明显看出GPU拖了CPU的后腿啊~~~
DirectX11:
DirectX12:
在1920x1080情况下,DirectX11正常运行,帧数较低,在十几帧——二十几帧之间晃悠;DirectX12直接报错,游戏跳出,不能运行,原因是内存溢出。
在1366x768的分辨率下,可以看出,总起来的帧率,DirectX11依然优于DirectX12。但是,在具体场景中有很大区别。
在高山、大建筑之类的场景中,DirectX11比DirectX12有较大提升,帧率一度达到50帧以上,比DirectX12要高5~10帧。
但是在密集型场景中,比如密集的房屋、人群中,DirectX12优势体现较强,始终控制在20帧以上,而DirectX11有时跌到15帧左右,卡顿感明显。
如果仅通过本测试来看,那么DirectX11和DirectX12各有优劣。
DirectX11帧率较高,但不稳定,高的极高,低的极低;而DirectX12的最高帧率相对DirectX11要低5~10帧,但是很稳定。尤其适应密集人群的场景,帧数控制很好。并且比较两图可以发现,DirectX12比DirectX11在CPU游戏和CPU渲染中时间延迟拟合度很好。
这可能是DirectX12对内存空间要求较高,以及制作组对CPU多线程优化的结果。
古墓丽影暗影是优化非常好的游戏,可以看出制作组下了很大气力去使用DirectX12这样一个接近底层的API。
另外测试结果中有个“GPU受限”,我不太明白这是什么意思,难道受限越高越好?