D3D9 vs D3D1x

来源:互联网 发布:搞笑网络剧排行榜 编辑:程序博客网 时间:2024/05/18 17:42

KlayGE 3.8.0开始正式支持D3D10和D3D11,可以在不改任何上层代码的情况下切换D3D9,D3D10,D3D11和OpenGL四个渲染插件。于 是,这给了我们一个比较性能的机会。本文着重比较了D3D9和D3D10两个插件的性能。由于目前(2009年4月)市面上还没有支持D3D11的硬 件,D3D11插件只能通过D3D11 Level 10在支持D3D10的硬件上执行的,性能也就和D3D10几乎相同,遂不必多讨论。

表1列举了KlayGE现有例子在D3D9和D3D10两插件下得到的fps数据,并由此计算出D3D10的提升。

运行的平台:Pentium Core2 2.3GHz、4GB DDR2-800、Geforce 8800GT/185.66驱动,操作系统:Vista SP1 64bit。

表1. 两插件fps对比 例子D3D9 (fps)D3D10 (fps)D3D10的提升Ascii Arts178418282.47%Cartoon9619791.87%Deferred Shading150147-2.00%Depth of Field1521520.00%Depth Peeling406350-13.79%Distance Mapping151715331.05%Fractal142514672.95%GPU Particle System57628.77%Instancing4774984.40%Model Viewer1979227114.75%Parallax306632194.99%Particle System7057344.11%Procedural Texture852113833.57%Refract7127130.14%Shadow Cubemap103310612.71%Text8639105.45%Vertex Displacement373440127.45%Video Texture724711-1.80%

从表1可以看出,在绝大部分情况下,如果算法和效果相同,D3D10的性能要高于D3D9。可见,得益于API设计的巨大进步,D3D10的runtime/driver性能优于D3D9。

由此可以看出,在Vista下使用D3D10确实有利于性能的提高。在新硬件上,D3D1x更能发挥出硬件的能力。

在未来的KlayGE中,D3D9和D3D10插件都会被抛弃,只留下D3D11一个D3D插件,通过D3D11 Level 9或D3D11 Level 10来在不支持D3D11的硬件上渲染。对于不支持D3D11的Windows XP,可以使用OpenGL插件。