Compartir a través de


Asignar OpenGL ES 2.0 a Direct3D 11

Al iniciar el proceso de portabilidad de la arquitectura de gráficos de OpenGL ES 2.0 a Direct3D por primera vez, familiarícese con las principales diferencias entre las API. Los temas de esta sección le ayudarán a planear la estrategia de puerto y los cambios de API que debe realizar al mover el procesamiento de gráficos a Direct3D.

Tema Descripción

Planear el puerto desde OpenGL ES 2.0 a Direct3D

Si va a hacer la portabilidad de un juego desde las plataformas iOS o Android, probablemente haya realizado una inversión significativa en OpenGL ES 2.0. Al preparar la portabilidad del código base de canalización de gráficos a Direct3D 11 y Windows Runtime, hay algunas cosas que debe tener en cuenta antes de empezar.

Comparación del código EGL con DXGI y Direct3D

La interfaz de gráficos de DirectX (DXGI) y varias API de Direct3D tienen el mismo rol que EGL. Este tema le ayuda a comprender DXGI y Direct3D 11 desde la perspectiva de EGL.

Comparar búferes, uniformes y atributos de vértices de OpenGL ES 2.0 con Direct3D

Durante el proceso de migración a Direct3D 11 desde OpenGL ES 2.0, debe cambiar la sintaxis y el comportamiento de la API para pasar datos entre la aplicación y los programas de sombreador.

Comparación de la canalización de sombreador openGL ES 2.0 con Direct3D

Conceptualmente, la canalización de sombreador de Direct3D 11 es muy similar a la de OpenGL ES 2.0. Sin embargo, en términos de diseño de API, los componentes principales para crear y administrar las fases del sombreador son partes de dos interfaces principales, ID3D11Device1 y ID3D11DeviceContext1. En este tema se intentan asignar patrones comunes de api de canalización de sombreador de OpenGL ES 2.0 a los equivalentes de Direct3D 11 en estas interfaces.

 

Notas sobre proveedores específicos de OpenGL ES 2.0

Estos temas usan la especificación Khronos OpenGL ES 2.0 con C independiente de la plataforma. Tanto iOS como Android usan la misma especificación y el código openGL ES 2.0 desarrollado para esas plataformas es muy similar a los fragmentos de código que recorreremos, aunque normalmente se exponen como API orientadas a objetos. Además, debido a las complejidades y las diferencias de idioma de cada plataforma, puede haber pequeñas diferencias, especialmente en los tipos de parámetros de método o en la sintaxis general del lenguaje. Por ejemplo, iOS usa Objective-C. Android tiene la capacidad de usar C++; Sin embargo, algunos desarrolladores pueden haber confiado en una implementación pura de Java. Teniendo esto en cuenta, estos temas deben seguir siendo útiles, ya que los conceptos generales, la estructura y el uso de las API de OpenGL ES no difieren.