正文内容 评论(0)
[DirectX 11架构优势介绍(二)]
DirectX Compute Shader
前面已经提到,无论是对DirectX 11还是AMD来说DirectX Compute Shader都是非常重要的一点,因为它是微软为GPU运算应用程序编程接口(API),与OpenCL一样,为开发人员提供了并行计算的API。
ComputeShaders11 在游戏应用中主要包括:图像处理和过滤、透明重叠物体演算(OIT)、阴影渲染、物理运算、人工智能、光线追踪等!通过AMD的Steam架构实现,无缝集成DirectX 11的图形代码,并且通过微软WHQL硬件兼容性认证。
与DirectCompute 10相比,DirectCompute 11在技术上拥有众多的领先优势:在线程调度上,DirectCompute 10是2D模式,而DirectCompute 11则可以通过一个3D阵列代替多个2D阵列,节省硬件开销。其次在线程数量上,DirectCompute 10支持768个,而DirectCompute 11可达1024个。线程共享内存DirectCompute 10 16KB,DirectCompute 11是前者的两倍,为32KB,内容共享访问方面,DirectCompute 10只能支持256字节写入,DirectCompute 11则支持全32Bit读取和写入,更为有效的共享内存I/O。
对游戏开发者来说,通过ComputeShaders11可以应用更加复杂数据结构,并在这些数据结构中运行更多的通用算法。与其他完整的可编程的DX10和DX11管线阶段一样,CS将会共享一套着色处理器。
正式由于DirectX 11的这种灵活性,目前已经有多家大型游戏公司开始研发对应的游戏,通过上图可以看出,用不到2010年,我们至少会有三款DirectX 11大作供我们娱乐,而在2010年第2季度之前则会有5-6款甚至可能更多游戏与我们见面。
多线程的支持
对于DirectX 11来说支持多线程(multi-threading)是处理性能大幅度提升的一个关键点。DirectX 10时代,所有的色彩信息被光栅化显示到屏幕上都是通过了同步方式,虽然工作状态和渲染流水线足够稳定,但是效率却非常低,制约了效果的进一步提升。而多线程的支持无疑可以大大加快处理效率。例如,要处理器场景中的人像和三个镜像,DX11会启动四个单独线程进行并行处理,效率自然要比现在DirectX 10依次进行的做法高很多。
另外还有一个好消息就是DirectX10/10.1同样可以实现对多线程技术的支持,无论是AMD还NVIDIA,只要在显卡驱动中引入DirectX 11的多线程技术即可,这就是说即使采用DirectX 10显卡玩DirectX 11游戏也同样可以进行多线程渲染,可以大幅度提高画面的处理速度。
DirectX 11中,Direct 3D设备被分为三个独立的接口:Device、immediate Context(立即执行)和Deferred Context(延迟执行),这三者都被是各自独立的线程,而且Device和Deferred Context还可以继续拆分多线程,将等待执行的数据传给immediate Context或渲染线程。同时,CPU也可以利用GPU多线程加快DirectX处理时间,减少CPU瓶颈。
本文收录在
#快讯
- 热门文章
- 换一波
- 好物推荐
- 换一波
- 关注我们
-
微博:快科技官方
快科技官方微博 -
今日头条:快科技
带来硬件软件、手机数码最快资讯! -
抖音:kkjcn
科技快讯、手机开箱、产品体验、应用推荐...