3D正式成為REDirectUI的渲染選項

2021-05-23 08:48:19 字數 887 閱讀 7519

終於在redirectui中新增了d3d渲染方式,這只是底層渲染方式,僅作為第一步。啟動渲染引擎時並不要求一定要使用d3d,只在顯式指定使用d3d且機器具備硬體加速能力的情況下才使用d3d,否則僅使用ddraw。

由於這只是ui引擎,並非為遊戲而設計,因此更多的cpu時間用來處理標準視窗訊息,而不是迴圈render frame。遊戲的目的是處理大量的渲染細節,因此通常都是貼圖再貼圖,遊戲程式設計師通常不考慮gdi,但redirectui非得考慮gdi不可,因為作為乙個ui引擎,必須支援普通的子視窗和大量的activex控制項,這些東東都是以gdi為基礎的。好在redirectui已經完美解決了gdi和d3d的結合問題,通過使用gdi橋(從未使用sprite和d3dxfont),解決了用sprite字型效果遠不如gdi字型效果豐富的困惑,並且gdi橋的效能已經過極大優化。

* 選擇d3d9的原因是,d3d9是最穩定最基礎的版本,沒有過多的高階封裝。頂點著色器將在xml描述中支援,未來還將增加d2d在d10平台上提高效能。

* 大量使用mmx/sse/sse2/3dnow指令,用於解決gdi和d3d之間的快速溝通,測試效能良好,處理一張1024*768大小的32位位圖所耗費的時間平均僅幾毫秒。

* 在3d特性啟動的情況下,ui元素的渲染是非同步佇列化執行的,任何ui元素隨用隨畫,無需考慮是否放到wm_paint中完成。

* 除了某些矩陣變換api和靜態紋理載入工具,所有其它d3dx的高階介面和封裝工具都不使用,包括d3dxsprite和d3dxfont。

目前完成的只是3d最基礎的渲染部分,用指令碼控制3d場景和3d物件的工作尚未開始,3d-dom還未構造,一旦這個特性完成,使用純js指令碼就可以設計一套不錯的3d遊戲。

還是一句老話:redirectui必須是小巧而高效能的。這也是選擇d3d9中最基礎部分的原因。

特此留存,以備查詢。

不要為3d而3d

和以前的幾個朋友聊天,也有做game的。發現大家對3d技術都非常熱衷,但是這種熱衷顯得刻意的 為3d而3d,就有點捨本逐末。1 遊戲最重要的是策劃,需要具體的滿足人心底的某種需求,2 3d需要 好顯示卡的支援,這樣就將一部分使用者排斥在外面了。3 現在3d engine已經 很成熟了,通過這些上面的...

3D電視與3D眼鏡的工作原理

1 先說3d成像原理 在 3d 裡面的 d 是英文單詞dimension 線度 維 的首字母,3d指的就是三維空間。與普通2d畫面顯示相比,3d技術可以使畫面變得立體逼真,影象不再侷限於螢幕的平面上,彷彿能夠走出螢幕外面,讓觀眾有身臨其境的感覺。儘管3d顯示技術分類繁多,不過最基本的原理是相似的,就...

3d列印 路徑規劃 金屬3D列印系統

當前,3d列印在中國智造的規劃中占有非常重要的地位,金屬材料的3d列印裝置以其技術門檻高,應用範圍廣泛的特點而備受重視。多年來,大族雷射智慧型裝備集團堅持對3d列印工藝和功能部件開展系統而深入的研究,在實驗室狀態下進行了大量實踐,機械人 三維五軸無限旋轉雷射加工頭等技術不斷取得突破,實現了送粉式 鋪...