Direct3D


Direct3D es una interfaz de programación de aplicaciones (API) de gráficos para Microsoft Windows . Como parte de DirectX , Direct3D se utiliza para renderizar gráficos tridimensionales en aplicaciones donde el rendimiento es importante, como los juegos. Direct3D utiliza la aceleración de hardware si está disponible en la tarjeta gráfica , lo que permite la aceleración de hardware de todo el proceso de renderizado 3D o incluso solo una aceleración parcial. Direct3D expone las capacidades gráficas avanzadas del hardware de gráficos 3D, incluido el almacenamiento en búfer Z , [1] almacenamiento en búfer W, [2] almacenamiento en búfer de plantilla , suavizado espacial, combinación alfa , combinación de colores, mipmapping , combinación de texturas, [3] [4] recorte , selección , efectos atmosféricos, mapeo de texturas con perspectiva correcta , sombreadores HLSL programables [5] y efectos. [6] La integración con otras tecnologías de DirectX permite a Direct3D ofrecer características tales como mapeo de video, renderizado 3D de hardware en planos de superposición 2D e incluso sprites , proporcionando el uso de gráficos 2D y 3D en vínculos de medios interactivos.

Direct3D contiene muchos comandos para la representación de gráficos por computadora en 3D ; sin embargo, desde la versión 8, Direct3D ha reemplazado el marco de DirectDraw y también asumió la responsabilidad de la representación de gráficos 2D . [7] Microsoft se esfuerza por actualizar Direct3D continuamente para admitir la última tecnología disponible en tarjetas gráficas 3D. Direct3D ofrece una emulación de software de vértice completa, pero no una emulación de software de píxeles para funciones que no están disponibles en el hardware. Por ejemplo, si el software programado con Direct3D requiere sombreadores de píxeles y la tarjeta de videoen la computadora del usuario no es compatible con esa función, Direct3D no la emulará, aunque computará y renderizará los polígonos y texturas de los modelos 3D, aunque con una calidad y rendimiento generalmente degradados en comparación con el hardware equivalente. La API incluye un Rasterizador de referencia (o dispositivo REF), que emula una tarjeta gráfica genérica en el software, aunque es demasiado lento para la mayoría de las aplicaciones 3D en tiempo real y, por lo general, solo se usa para depurar. Un nuevo rasterizador de software en tiempo real, WARP , diseñado para emular el conjunto completo de funciones de Direct3D 10.1, se incluye con Windows 7 y Windows Vista Service Pack 2 con la Actualización de plataforma; se dice que su rendimiento está a la par con las tarjetas 3D de gama baja en CPU multinúcleo.[8]

Como parte de DirectX , Direct3D está disponible para Windows 95 y superior, y es la base para la API de gráficos vectoriales en las diferentes versiones de los sistemas de consola Xbox . La capa de compatibilidad de Wine , una reimplementación de software gratuita de varias API de Windows, incluye una implementación de Direct3D.

El principal competidor de Direct3D es OpenGL de Khronos y su siguiente Vulkan . Fahrenheit fue un intento de Microsoft y SGI de unificar OpenGL y Direct3D en la década de 1990, pero finalmente fue cancelado.

En 1992, Servan Keondjian y Doug Rabson iniciaron una empresa llamada RenderMorphics, que desarrolló una API de gráficos 3D llamada Reality Lab , que se utilizó en software de CAD y de imágenes médicas. [12] Se lanzaron dos versiones de esta API. Microsoft compró RenderMorphics en febrero de 1995, incorporando a Keondjian para implementar un motor de gráficos 3D para Windows 95 . La primera versión de Direct3D se envió en DirectX 2.0 (2 de junio de 1996) y DirectX 3.0 (26 de septiembre de 1996).

Direct3D implementó inicialmente API 3D de " modo retenido " y " modo inmediato ". Al igual que otras API de DirectX, como DirectDraw , ambas se basaron en COM . El modo retenido fue una API de gráfico de escena que logró poca adopción. Los desarrolladores de juegos clamaban por un control más directo de las actividades del hardware que el que podía proporcionar el modo retenido de Direct3D. Solo dos juegos que vendieron un volumen significativo, Lego Island y Lego Rock Raiders , se basaron en el modo retenido de Direct3D, por lo que Microsoft no actualizó el modo retenido después de DirectX 3.0.


Capa abstracta
Dispositivo
Proceso de canalización de gráficos Direct3D 11