共用方式為


將 OpenGL ES 2.0 對應到 Direct3D 11

第一次開始將圖形架構從 OpenGL ES 2.0 移植到 Direct3D 的程序時,請熟悉 API 之間的主要差異。 本節中的主題可協助您規劃移植策略,以及將圖形處理移至 Direct3D 時必須進行的 API 變更。

主題 說明

計劃從 OpenGL ES 2.0 移植到 Direct3D

如果您從 iOS 或 Android 平台移植遊戲,您很可能已經在 OpenGL ES 2.0 上投入大筆資金。 準備將圖形流程程式碼庫移至 Direct3D 11 和 Windows 執行階段時,您應該先考慮一些事項。

將 EGL 程式碼與 DXGI 和 Direct3D 進行比較

DirectX 圖形介面 (DXGI) 和多個 Direct3D API 的作用與 EGL 相同。 本主題可協助您從 EGL 的觀點瞭解 DXGI 和 Direct3D 11。

將 OpenGL ES 2.0 緩衝區、統一和頂點屬性與 Direct3 進行比較

在從 OpenGL ES 2.0 移植到 Direct3D 11 的過程中,您必須變更在應用程式和著色器程式之間傳遞資料的語法和 API 行為。

將 OpenGL ES 2.0 著色器管線與 Direct3D 進行比較

在概念上,Direct3D 11 著色器管線與 OpenGL ES 2.0 中的管線非常相似。 然而,就 API 設計而言,用於建立和管理著色器階段的主要元件是兩個主要介面 ID3D11Device1ID3D11DeviceContext1 的一部分。 本主題嘗試將常見的 OpenGL ES 2.0 著色器管線 API 模式對應到這些介面中的 Direct3D 11 等效項。

 

特定 OpenGL ES 2.0 提供者的備註事項

這些主題使用 Khronos OpenGL ES 2.0 規格和與平台無關的 C。iOS 和 Android 都使用相同的規格,並且為這些平台開發的 OpenGL ES 2.0 程式碼與我們將要介紹的程式碼片段非常相似,儘管它們通常公開為面向物件的 API。 此外,由於每個平台的複雜性和語言差異,可能存在細微差別,特別是在方法參數類型或通用語言語法方面。 例如,iOS 使用 Objective-C。 Android 具備使用 C++ 的功能;不過,有些開發人員可能依賴純 Java 實作。 考慮到這一點,這些主題仍然應該很有用,因為 OpenGL ES API 的整體概念、結構和使用方式並無不同。