DX11与多线程渲染

1649 篇文章 11 订阅
1623 篇文章 22 订阅
   前几天突然想起新的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应该已经普及了吧。。。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值