En los gráficos por ordenador , una tubería de gráficos por ordenador , tubería de renderizado o simplemente pipeline de gráficos , es un modelo conceptual que describe los pasos que necesita un sistema de gráficos para llevar a cabo para hacer que 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] Debido a que los pasos necesarios para esta operación dependen del software y hardware utilizados y de las características de visualización deseadas, no existe una canalización de gráficos 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 canalización de gráficos se usa generalmente en la renderización en tiempo real. A menudo, la mayoría de los pasos de la canalización se implementan en hardware, lo que permite optimizaciones especiales . El término "canalización" se utiliza en un sentido similar al de canalización en los procesadores: los pasos individuales de la canalización se ejecutan en paralelo siempre que un paso determinado tenga lo que necesita.
La canalización 3D generalmente se refiere a la forma más común de renderizado 3D por computadora llamada renderizado de polígonos 3D [ cita requerida ] , diferente del trazado de rayos y la emisión de rayos . En la emisión de rayos, 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 lo ejecuta el software en el procesador principal ( CPU ). Durante el paso de la aplicación, se realizan cambios en la escena según sea necesario, por ejemplo, mediante la interacción del usuario mediante dispositivos de entrada o durante una animación. La nueva escena con todas sus primitivas , generalmente triángulos, líneas y puntos, se pasa al siguiente paso de la tubería.
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 # , en lugar de C o C ++ [ cita requerida ] .