directx 10到11有什麼變化?我已經在directx 10中編寫了一些代碼,我想將其更改爲directx 11.這僅僅是關於質量,我可以通過更改頭文件和dll文件或函數以及編碼方式進行更改來實現。 ING。如何在不同版本之間遷移?
1
A
回答
6
首先,我需要說的是,如果您只是將D3D10DoSomething()
函數更改爲D3D11DoSomething()
,則沒有任何變化。他們會做同樣的事情。沒有被動收益。您必須使用新功能明確使您的應用程序更好。那些D3D10沒有的功能:如硬件鑲嵌,計算着色器,many many other stuff.要編碼。
所以,主要問題是「你真的需要這個功能嗎」?或者,也許,「你會在以後需要這些功能嗎?」?
當你看到古老的D3D10代碼時,你的編程夥伴會笑嗎?
如果答案是肯定的:
的DirectX 10至11的移植是非常簡單的。與DirectX 9到10的移植相比,這只是一個笑話。
這裏是短的東西非詳盡清單移植D3D10到D3D11時要做到:
- 備份源
- 獲取文本查找替換工具(如Visual Studio中,或者grep的) ,找到 「D3D10」 並替換爲 「D3D11」
- 更換
#include <d3d10*>
到#include <d3d11*>
- 在連接選項替換
d3d10*.lib
到d3d11*.lib
設備和上下文創建:
- 在D3D11設備接口分裂到設備和上下文,所以device現在負責創建功能(大多數方法是
Create*()
)和context負責狀態改變功能(大多數方法是Set*()
/Get*()
)。 - 如果您使用
D3D10CreateDevice*
函數之一(現在它們已成爲D3D11CreateDevice*
)創建設備,請添加額外的ID3D11DeviceContext
參數並添加與D3D_FEATURE_LEVEL
相關的參數。 (更多有關特徵等級here) - 變化
device->ChangeState()
調用deviceContext->ChangeState()
其他的東西:
- 一些功能接受額外的參數(S)。大多數情況下,您只需通過
0
即可,直到您不需要此功能。如果您得到與參數數量有關的編譯器錯誤或「無法轉換參數..「只是覺得這個功能在DirectX 11 reference,看看你是否必須添加額外的零參數=)
着色器:
- 頂點,幾何,像素着色器大多是不變的,所以你可以放心地使用舊的
- 如果您在使用Effect10框架,事情可能更復雜,但還是移植需要的時間約1小時左右,參考Microsoft site或谷歌,當你有問題。
以下是來自Microsoft的其他提示:link,link。
嗯,主要是完成!歡迎來到D3D11世界=)
相關問題
- 1. 如何遷移odp.net版本
- 2. 遷移版本
- 3. 如何在新版本中遷移NSUserDefaults?
- 4. 在服務器之間遷移Subversion版本庫
- 5. 在不同Eclipse版本之間移動插件
- 6. mySQL版本之間的強制遷移。接收#1064錯誤
- 7. 如何從.NET1.1遷移到.NET3.5版本
- 8. 如何在安裝的不同版本的gem之間切換?
- 9. 在Rails中不同環境之間遷移模型
- 10. 在不同的持久後端之間自動遷移
- 11. 在RestEasy端點中兩個不同EntityManager之間遷移數據
- 12. 從Axis1.0版本遷移到Axis2.0版本
- 13. 如何通過遷移工具包將舊版本遷移到新版本後啓動舊版本?
- 14. 如何在不同服務器上的MySQL基礎之間遷移數據?
- 15. 石墨/ Grafana:如何從2.0.2版本遷移到版本3.1
- 16. CoreData模型版本遷移
- 17. 遷移vs版本控制
- 18. 遷移次要rails版本
- 19. GIT版本庫遷移
- 20. NDIS版本的遷移
- 21. Flyway遷移架構版本
- 22. 如何在分支之間移動文件版本
- 23. 耙DB後:遷移我的 'structure.sql' 成爲從Git版本不同
- 24. 在版本/格式之間遷移序列化的Json.NET文檔的策略
- 25. 如何在cocoapods版本之間切換?
- 26. Selenium - 新手老化版本在遷移之前工作
- 27. Flyway可重複遷移 - 在版本化之前執行?
- 28. 如何在同一軟件的不同版本之間共享設置
- 29. 不同模型之間的核心數據遷移?
- 30. 遷移不同模式之間的數據
你爲什麼要遷移? DirectX 11增加了一些新功能。你顯然不需要的功能。只通過切換DirectX版本,程序的質量不會提高。 –
我認爲不同的版本是關於技術的。更好的照明,更好的渲染和......沒有?:d – virtouso
編號照明和渲染取決於程序員。 –