Eseguire il mapping di OpenGL ES 2.0 a Direct3D 11
Quando si avvia il processo di conversione dell'architettura grafica da OpenGL ES 2.0 a Direct3D per la prima volta, acquisire familiarità con le differenze principali tra le API. Gli argomenti di questa sezione consentono di pianificare la strategia delle porte e le modifiche all'API che è necessario apportare quando si sposta l'elaborazione grafica in Direct3D.
Argomento | Descrizione |
---|---|
Se si sta eseguendo la conversione di un gioco dalle piattaforme iOS o Android, probabilmente si è anche fatto un significativo investimento in OpenGL ES 2.0. Quando si prepara lo spostamento del codebase della pipeline grafica in Direct3D 11 e Windows Runtime, è necessario prendere in considerazione alcuni aspetti prima di iniziare. |
|
DirectX Graphics Interface (DXGI) e diverse API Direct3D svolgono lo stesso ruolo di EGL. Questo argomento consente di comprendere DXGI e Direct3D 11 dal punto di vista di EGL. |
|
Confrontare buffer, uniformi e attributi dei vertici OpenGL ES 2.0 con Direct3D |
Durante il processo di conversione in Direct3D 11 da OpenGL ES 2.0, è necessario modificare la sintassi e il comportamento dell'API per passare i dati tra l'app e i programmi shader. |
Confrontare la pipeline di shader OpenGL ES 2.0 con Direct3D |
Concettualmente, la pipeline dello shader Direct3D 11 è molto simile a quella di OpenGL ES 2.0. In termini di progettazione API, tuttavia, i componenti principali per la creazione e la gestione delle fasi dello shader sono parti di due interfacce principali, ID3D11Device1 e ID3D11DeviceContext1. Questo argomento tenta di eseguire il mapping dei modelli API della pipeline di shader OpenGL ES 2.0 comuni agli equivalenti Direct3D 11 in queste interfacce. |
Note su specifici provider OpenGL ES 2.0
Questi argomenti usano la specifica Khronos OpenGL ES 2.0 con C indipendente dalla piattaforma. Sia iOS che Android usano la stessa specifica e il codice OpenGL ES 2.0 sviluppato per tali piattaforme è molto simile ai frammenti di codice che verranno sottoposti a procedura dettagliata, anche se in genere vengono esposti come API orientate agli oggetti. Inoltre, a causa delle complessità e delle differenze di linguaggio di ogni piattaforma, possono verificarsi differenze minime, soprattutto nei tipi di parametri del metodo o nella sintassi generale del linguaggio. iOS, ad esempio, usa Objective-C. Android ha la possibilità di usare C++; Tuttavia, alcuni sviluppatori potrebbero aver fatto affidamento su un'implementazione Java pura. Tenendo presente questo aspetto, questi argomenti devono essere comunque utili come i concetti generali, la struttura e l'utilizzo delle API OpenGL ES non differiscono.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per