前幾天突然想起新的DXSDK應(yīng)該早出了,去微軟網(wǎng)站一看,好么。。。2008 Dec版早出了,這次火星了,下載完后居然發(fā)現(xiàn)包壞掉了,于是重下。。。還是壞掉!第三次也不行,折騰了一下午,最后放棄了,還好貌似只有Sample的最后一點(diǎn)點(diǎn)沒解壓開,沒什么大礙。
本來只是以為自己只是火星了而已,裝好一看,完。。。徹底冥王星了,DX11的Preview版出了!真是又激動(dòng)又懊悔,粗略看了看,新特性真是太令人激動(dòng)了,主要有以下幾點(diǎn):
一、SM5.0 從類C變成類C++了,有類有繼承有虛函數(shù),太夸張了。。。
二、支持Shader動(dòng)態(tài)Link,DX9里面就有個(gè)FragmentLinker,不太好用,DX10直接取消了,這次變本加厲的又回來了!
三、渲染的多線程支持,我重點(diǎn)來談?wù)勥@個(gè)
DX11提供了一個(gè)新的接口:ID3D11DeviceContext,取代了以前Device接口所有與渲染相關(guān)的功能,有兩個(gè)類型:immediate和deferred,前者和現(xiàn)在的效果一樣,收到渲染指令就立即執(zhí)行,而后者則會(huì)將命令緩存起來,由用戶決定何時(shí)執(zhí)行。
在例子MultithreadedRendering11中,渲染了三面帶反射的鏡子和一個(gè)人物模型,Sample創(chuàng)建了四個(gè)Context,三個(gè)deferred用于鏡子反射表面的渲染,一個(gè)immediate用于最終場景,Sample創(chuàng)建了三個(gè)線程,渲染幀開始時(shí),首先并行的執(zhí)行三個(gè)鏡子反射的渲染,完成后,在主線程順序執(zhí)行三個(gè)Context,然后用immediate的Context渲染最終場景。
由這個(gè)例子,我們來展望一下美好的未來:所有的渲染表面都可以并行執(zhí)行,比如水面、鏡子、甚至ShadowMap,并行的進(jìn)行場景剪裁,使得多核CPU的使用更有效率。
DX11預(yù)計(jì)在今年年底推出,于Windows7捆綁,到那時(shí),四核CPU應(yīng)該已經(jīng)普及了吧。。。
本來只是以為自己只是火星了而已,裝好一看,完。。。徹底冥王星了,DX11的Preview版出了!真是又激動(dòng)又懊悔,粗略看了看,新特性真是太令人激動(dòng)了,主要有以下幾點(diǎn):
一、SM5.0 從類C變成類C++了,有類有繼承有虛函數(shù),太夸張了。。。
二、支持Shader動(dòng)態(tài)Link,DX9里面就有個(gè)FragmentLinker,不太好用,DX10直接取消了,這次變本加厲的又回來了!
三、渲染的多線程支持,我重點(diǎn)來談?wù)勥@個(gè)
DX11提供了一個(gè)新的接口:ID3D11DeviceContext,取代了以前Device接口所有與渲染相關(guān)的功能,有兩個(gè)類型:immediate和deferred,前者和現(xiàn)在的效果一樣,收到渲染指令就立即執(zhí)行,而后者則會(huì)將命令緩存起來,由用戶決定何時(shí)執(zhí)行。
在例子MultithreadedRendering11中,渲染了三面帶反射的鏡子和一個(gè)人物模型,Sample創(chuàng)建了四個(gè)Context,三個(gè)deferred用于鏡子反射表面的渲染,一個(gè)immediate用于最終場景,Sample創(chuàng)建了三個(gè)線程,渲染幀開始時(shí),首先并行的執(zhí)行三個(gè)鏡子反射的渲染,完成后,在主線程順序執(zhí)行三個(gè)Context,然后用immediate的Context渲染最終場景。
由這個(gè)例子,我們來展望一下美好的未來:所有的渲染表面都可以并行執(zhí)行,比如水面、鏡子、甚至ShadowMap,并行的進(jìn)行場景剪裁,使得多核CPU的使用更有效率。
DX11預(yù)計(jì)在今年年底推出,于Windows7捆綁,到那時(shí),四核CPU應(yīng)該已經(jīng)普及了吧。。。