En gráficos por computadora , una canalización de gráficos por computadora, canalización de representación o simplemente canalización de gráficos , es un modelo conceptual que describe qué pasos debe realizar un sistema de gráficos para representar una escena 3D en una pantalla 2D. [1] Una vez que se ha creado un modelo 3D , por ejemplo, en un videojuego o cualquier otra animación 3D por computadora, la canalización de gráficos es el proceso de convertir ese modelo 3D en lo que muestra la computadora. [2] Dado que los pasos necesarios para esta operación dependen del software y el hardware utilizados y de las características de visualización deseadas, no existe una canalización gráfica universal adecuada para todos los casos. Sin embargo, las interfaces de programación de aplicaciones gráficas (API) como Direct3D y OpenGL se crearon para unificar pasos similares y controlar la canalización de gráficos de un acelerador de hardware determinado . Estas API abstraen el hardware subyacente y evitan que el programador escriba código para manipular los aceleradores de hardware de gráficos ( AMD , Intel , NVIDIA , etc.).
El modelo de la tubería de gráficos generalmente se usa en la representación en tiempo real. A menudo, la mayoría de los pasos de canalización se implementan en hardware, lo que permite optimizaciones especiales . El término "tubería" se usa en un sentido similar al de la tubería en los procesadores: los pasos individuales de la tubería se ejecutan en paralelo siempre que cada paso tenga lo que necesita.
La canalización 3D por lo general se refiere a la forma más común de renderizado 3D por computadora llamado renderizado de polígonos 3D [ cita requerida ] , distinta del trazado de rayos y el raycasting . En raycasting, un rayo se origina en el punto donde reside la cámara, y si ese rayo incide en una superficie, se calcula el color y la iluminación del punto de la superficie donde incide el rayo. En el renderizado de polígonos 3D ocurre lo contrario: se calcula el área que está a la vista de la cámara y luego se crean rayos desde cada parte de cada superficie a la vista de la cámara y se rastrean hasta la cámara. [3]
Una canalización de gráficos se puede dividir en tres partes principales: Aplicación, Geometría y Rasterización. [4]
El paso de la aplicación es ejecutado por el software en el procesador principal ( CPU ). Durante el paso de aplicación, se realizan cambios en la escena según sea necesario, por ejemplo, mediante la interacción del usuario por medio de dispositivos de entrada o durante una animación. La nueva escena con todas sus primitivas , por lo general triángulos, líneas y puntos, se pasa al siguiente paso de la canalización.
En un motor de juego moderno como Unity , el programador se ocupa casi exclusivamente del paso de la aplicación y utiliza un lenguaje de alto nivel como C# , a diferencia de C o C++ [ cita requerida ] .