前幾天突然想起新的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應該已經普及了吧。。。