將 OpenGL ES 2.0 對應到 Direct3D 11
第一次開始將圖形架構從 OpenGL ES 2.0 移植到 Direct3D 的程序時,請熟悉 API 之間的主要差異。 本節中的主題可協助您規劃移植策略,以及將圖形處理移至 Direct3D 時必須進行的 API 變更。
主題 | 說明 |
---|---|
如果您從 iOS 或 Android 平台移植遊戲,您很可能已經在 OpenGL ES 2.0 上投入大筆資金。 準備將圖形流程程式碼庫移至 Direct3D 11 和 Windows 執行階段時,您應該先考慮一些事項。 |
|
DirectX 圖形介面 (DXGI) 和多個 Direct3D API 的作用與 EGL 相同。 本主題可協助您從 EGL 的觀點瞭解 DXGI 和 Direct3D 11。 |
|
在從 OpenGL ES 2.0 移植到 Direct3D 11 的過程中,您必須變更在應用程式和著色器程式之間傳遞資料的語法和 API 行為。 |
|
在概念上,Direct3D 11 著色器管線與 OpenGL ES 2.0 中的管線非常相似。 然而,就 API 設計而言,用於建立和管理著色器階段的主要元件是兩個主要介面 ID3D11Device1 和 ID3D11DeviceContext1 的一部分。 本主題嘗試將常見的 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 的整體概念、結構和使用方式並無不同。