多线程渲染技术
2011-03-12 12:01
176 查看
虽然超线程概念已经在CPU领域发展了数十年,但大多数程序员还是直到近年来多核心CPU流行之后才开始关心程序的平行化,在此之前大部分通用代码都是简单的单线程,在这些代码里寻找并挖掘多线程化带来的性能提升是非常困难的。
为了改变这一现状,DirectX 11特性还包括很重要一点:支持多线程(multi-threading)。没错,无论是DirectX 10还是DirectX 11,所有的色彩信息最终都将被光栅化并显示在电脑显示屏上(无论是通过线性的方式还是同步的),但是DirectX 11新增了对多线程技术的支持。
![](http://2c.zol-img.com.cn/product/45_500x2000/804/ceqwQJCB11pw.png)
从DirectX 10到DirectX 11的多线程变化
得益于此,应用程序可以同步创造有用资源或者管理状态,并从所有专用线程中发送提取命令,这样做无疑效率更高。DX11的这种多线程技术可能并不能加速绘图的子系统(特别是当我们的GPU资源受限时),但是这样却可以提升线程启动游戏的效率,并且可以利用台式CPU核心数量不断提高所带来的潜力。
![](http://2d.zol-img.com.cn/product/45_500x2000/817/ce5hmd***Gto.png)
多线程渲染示意图1
在DirectX 11中,微软通过将目前单一执行的Direct 3D设备被分为三个独立的接口:设备(Device)、立即执行范畴(immediate Context)和延迟执行范畴(Deferred Context)。
![](http://2e.zol-img.com.cn/product/45_500x2000/818/ceeevyDz***3JU.png)
多线程渲染示意图2
这三者都被分发到各自独立的线程,而且设备和Deferred context还可以分配多个线程,负责将等待执行的任务发送给immediate Context或渲染线程。这样的设计可以将图形生成所需的资源做预先的存取。同时,CPU还可以利用显卡的多线程处理加快DirectX的处理,减少CPU的响应时间而使游戏不再受到CPU的瓶颈限制。
为了改变这一现状,DirectX 11特性还包括很重要一点:支持多线程(multi-threading)。没错,无论是DirectX 10还是DirectX 11,所有的色彩信息最终都将被光栅化并显示在电脑显示屏上(无论是通过线性的方式还是同步的),但是DirectX 11新增了对多线程技术的支持。
![](http://2c.zol-img.com.cn/product/45_500x2000/804/ceqwQJCB11pw.png)
从DirectX 10到DirectX 11的多线程变化
得益于此,应用程序可以同步创造有用资源或者管理状态,并从所有专用线程中发送提取命令,这样做无疑效率更高。DX11的这种多线程技术可能并不能加速绘图的子系统(特别是当我们的GPU资源受限时),但是这样却可以提升线程启动游戏的效率,并且可以利用台式CPU核心数量不断提高所带来的潜力。
![](http://2d.zol-img.com.cn/product/45_500x2000/817/ce5hmd***Gto.png)
多线程渲染示意图1
在DirectX 11中,微软通过将目前单一执行的Direct 3D设备被分为三个独立的接口:设备(Device)、立即执行范畴(immediate Context)和延迟执行范畴(Deferred Context)。
![](http://2e.zol-img.com.cn/product/45_500x2000/818/ceeevyDz***3JU.png)
多线程渲染示意图2
这三者都被分发到各自独立的线程,而且设备和Deferred context还可以分配多个线程,负责将等待执行的任务发送给immediate Context或渲染线程。这样的设计可以将图形生成所需的资源做预先的存取。同时,CPU还可以利用显卡的多线程处理加快DirectX的处理,减少CPU的响应时间而使游戏不再受到CPU的瓶颈限制。
相关文章推荐
- 深度剖析OpenGL ES中的多线程和多窗口渲染技术
- 深度剖析OpenGL ES中的多线程和多窗口渲染技术
- 深度剖析OpenGL ES中的多线程和多窗口渲染技术
- 多线程渲染技术 Dx 10/11 -ok
- 从ConcurrentHashMap的演进看Java多线程核心技术
- Java多线程之this与Thread.currentThread()的区别——java多线程编程核心技术
- VR系列——Oculus最佳实践:四、渲染技术
- 关于多线程渲染-ok
- 以关键代码段为例子详细讲解多线程中的同步技术
- 认识多渲染目标(Multiple Render Targets)技术【转】
- Unity3D中的渲染优化技术
- Java进阶(六)从ConcurrentHashMap的演进看Java多线程核心技术
- 多线程渲染(Multithreaded- rendering)3D引擎实例分析 : FlagshipEngine
- 多线程渲染
- 利用Ogre的渲染到材质技术实现Ogre截屏功能
- QEMU-KVM中的多线程压缩迁移技术
- 卡通渲染及其相关技术总结
- C#学习之多线程开发技术(一)
- C#学习之多线程开发技术(四)