DX11与多线程渲染
来源:互联网 发布:python 股票图 编辑:程序博客网 时间:2024/06/02 13:35
前几天突然想起新的DXSDK应该早出了,去微软网站一看,好么。。。2008 Dec版早出了,这次火星了,下载完后居然发现包坏掉了,于是重下。。。还是坏掉!第三次也不行,折腾了一下午,最后放弃了,还好貌似只有Sample的最后一点点没解压开,没什么大碍。
本来只是以为自己只是火星了而已,装好一看,完。。。彻底冥王星了,DX11的Preview版出了!真是又激动又懊悔,粗略看了看,新特性真是太令人激动了,主要有以下几点:
一、SM5.0 从类C变成类C++了,有类有继承有虚函数,太夸张了。。。
二、支持Shader动态Link,DX9里面就有个FragmentLinker,不太好用,DX10直接取消了,这次变本加厉的又回来了!
三、渲染的多线程支持,我重点来谈谈这个
DX11提供了一个新的接口:ID3D11DeviceContext,取代了以前Device接口所有与渲染相关的功能,有两个类型:immediate和deferred,前者和现在的效果一样,收到渲染指令就立即执行,而后者则会将命令缓存起来,由用户决定何时执行。
在例子MultithreadedRendering11中,渲染了三面带反射的镜子和一个人物模型,Sample创建了四个Context,三个deferred用于镜子反射表面的渲染,一个immediate用于最终场景,Sample创建了三个线程,渲染帧开始时,首先并行的执行三个镜子反射的渲染,完成后,在主线程顺序执行三个Context,然后用immediate的Context渲染最终场景。
由这个例子,我们来展望一下美好的未来:所有的渲染表面都可以并行执行,比如水面、镜子、甚至ShadowMap,并行的进行场景剪裁,使得多核CPU的使用更有效率。
DX11预计在今年年底推出,于Windows7捆绑,到那时,四核CPU应该已经普及了吧。。。
本来只是以为自己只是火星了而已,装好一看,完。。。彻底冥王星了,DX11的Preview版出了!真是又激动又懊悔,粗略看了看,新特性真是太令人激动了,主要有以下几点:
一、SM5.0 从类C变成类C++了,有类有继承有虚函数,太夸张了。。。
二、支持Shader动态Link,DX9里面就有个FragmentLinker,不太好用,DX10直接取消了,这次变本加厉的又回来了!
三、渲染的多线程支持,我重点来谈谈这个
DX11提供了一个新的接口:ID3D11DeviceContext,取代了以前Device接口所有与渲染相关的功能,有两个类型:immediate和deferred,前者和现在的效果一样,收到渲染指令就立即执行,而后者则会将命令缓存起来,由用户决定何时执行。
在例子MultithreadedRendering11中,渲染了三面带反射的镜子和一个人物模型,Sample创建了四个Context,三个deferred用于镜子反射表面的渲染,一个immediate用于最终场景,Sample创建了三个线程,渲染帧开始时,首先并行的执行三个镜子反射的渲染,完成后,在主线程顺序执行三个Context,然后用immediate的Context渲染最终场景。
由这个例子,我们来展望一下美好的未来:所有的渲染表面都可以并行执行,比如水面、镜子、甚至ShadowMap,并行的进行场景剪裁,使得多核CPU的使用更有效率。
DX11预计在今年年底推出,于Windows7捆绑,到那时,四核CPU应该已经普及了吧。。。
- DX11与多线程渲染
- DX11多线程学习与思考
- DX11多线程学习与思考
- DX11渲染引擎进展
- MFC与DX11结合
- DX11渲染引擎进展(二)
- Oculus 0.7.0 SDK DX11渲染流程
- 多Pass渲染体系与多线程渲染的矛盾
- 多线程第二步:渲染与逻辑分离
- 多线程渲染
- 多线程渲染
- 3D引擎多线程:渲染与逻辑分离
- NVIDIA详细解读游戏中DX9与DX11差别
- 多线程渲染技术
- 关于多线程渲染
- 关于多线程渲染
- 关于多线程渲染-ok
- 多线程渲染-ok
- 一位软件工程师的6年总结
- 关于如何选好游戏3D引擎编程的一些经验
- 东软2012校园招聘笔试试题(B)
- 【编译原理】正则表达式
- 调用操作系统命令
- DX11与多线程渲染
- SilverLight:”无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本”的解决方案。
- ace技术内幕示例代码
- 英语词汇12
- 网游创业失败全攻略
- juery GridTree表格树
- 关于FlagshipEngine
- _beginthreadex和_endthredex实例
- 从a+b开始