複製鏈接
請複製以下鏈接發送給好友

Direct2D

鎖定
Direct2D 是一種硬件加速的即時模式二維圖形 API,可為二維幾何對象、位圖和文本提供高性能、高質量的呈現。Direct2D API 可與使用 GDI、GDI+ 或 Direct3D 的現有代碼進行交互。
外文名
Direct2D
所屬產品
電子、設備類

Direct2D使用目的

在 Microsoft Windows 中開發出新二維圖形 API 的主要目的包括:
  • 緊跟 Windows 用户所習慣的不斷提高的豐富視覺體驗。
  • 使開發人員能夠編寫出可隨着運行代碼的 PC 的圖形處理硬件直接擴展的二維呈現代碼。
  • 使開發人員能夠編寫出可在服務上下文中運行的二維圖形呈現代碼。
近年來,最終用户開始希望數字體驗具備更好的視覺保真度。這種趨勢在消費電子產品中得到反映。GPS 設備、媒體播放設備、移動電話和數碼相機年復一年地不斷實現更加豐富的體驗。電影、電視、視頻遊戲和網站中各種各樣的圖形內容也反映了這種趨勢。為了跟上這些變化,開發人員需要不斷豐富現有 Windows 應用程序的視覺效果。
視頻遊戲圖形和各種 Windows 體驗(如 Windows Media Center 和 Aero)的發展,推動現代 Windows PC 中的圖形處理器也得到了穩定的發展。有些 Windows 應用程序可以通過 Microsoft Direct3D 和 Windows Presentation Foundation (WPF) 來利用現代 GPU。儘管 Direct3D 可用於開發高端三維圖形應用程序,WPF 可滿足 .NET 開發人員的需要,但對於擁有基於 GDI 和 GDI+ 的呈現代碼所構成的大型現有代碼庫的開發人員或要在其基於 Direct3D 的應用程序中加入高質量二維圖形的開發人員而言,仍無法滿足其要求。
最後,對於進行企業方案和網站開發方案的開發人員而言,需要可在服務中使用的圖形 API。現有的呈現 API 側重於單個用户會話中的客户端呈現。在服務上下文中使用時,它們無法滿足穩定性和可伸縮性的要求。因此,需要新的 API 來解決這些問題。 [1] 

Direct2D開發人員受眾

Direct2D 主要供以下幾類開發人員使用:
  • 大型企業級本機應用程序開發人員。
  • 創建供下游開發人員使用的控件工具包和庫的開發人員。
  • 需要對二維圖形進行服務器端呈現的開發人員。
  • 使用 Direct3D 圖形,並且需要在菜單、用户界面 (UI) 元素和抬頭顯示器 (HUD) 中使用高性能的簡單二維和文本呈現的開發人員。

Direct2D運行時要求

  • Windows7 或 WindowsVista with Service Pack2 (SP2) 和 Platform Update for Windows Vista
  • Windows Server2008R2 或 Windows Server2008 with Service Pack 2 (SP2) 和 Platform Update for Windows Server 2008

Direct2D視覺質量

與使用 GDI 的應用程序相比,使用 Direct2D 處理圖形的應用程序可實現更高的視覺質量。Direct2D 使用每基元抗鋸齒功能,在呈現的內容中實現外觀更為平滑的曲線和直線。在呈現二維基元時,也完全支持透明度和 Alpha 混合。圖1對使用 GDI 呈現的鋸齒內容(左)和 Direct2D 呈現的抗鋸齒內容(右)進行了比較。
圖1 GDI和Direct2D呈現的鋸齒及抗鋸齒進行比較 圖1 GDI和Direct2D呈現的鋸齒及抗鋸齒進行比較
在需要的情況下,開發人員可以指定矢量圖形的鋸齒呈現。這些情況包括需要與硬像素邊界(如指針或標尺等 UI 元素)對齊、必須匹配輸出的 GDI 樣式或者將在呈現過程的下游通過多重採樣抗鋸齒或其他一些機制執行抗鋸齒。

Direct2D互操作性

通過 GDI 與 Direct3D 的圖面級互操作性,開發人員可以更方便地集成基於 Direct2D 的呈現。主要通過 GDI、GDI+ 或 Direct3D 呈現內容的應用程序可以先使用 Direct2D 呈現其應用程序的特定區域,經過一段時間再改用這樣一種模型,即 Direct2D 主要用於執行呈現,GDI 主要用於插件或傳統可擴展性。
通過 Direct2D,還可以方便地使用DirectWrite這一新的文本 API 以及Microsoft Windows 圖像處理組件 (WIC)(可能為英文網頁)的高級圖像處理功能。
有關 Direct2D 互操作性的詳細信息,請參閲 Direct2D SDK 的互操作性部分。

Direct2D小結

使用 Microsoft Direct2D,開發人員可在應用程序中構建二維圖形功能,從而實現優於 GDI 的視覺質量和可隨現代 GPU 擴展的性能特徵。通過 Direct2D 互操作性模型,開發人員可以在進行基於 GDI、GDI+ 或 Direct3D 的呈現時有選擇地遷移部分應用程序。
參考資料