Rendering Pipeline es la secuencia de pasos que toma OpenGL al renderizar objetos. El atributo de vértice y otros datos pasan por una secuencia de pasos para generar la imagen final en la pantalla. Por lo general, hay 9 pasos en esta canalización, la mayoría de los cuales son opcionales y muchos son programables.
Secuencia de pasos tomados por openGL para generar una imagen:
- Especificación de vértices: en Especificación de vértices, enumere una lista ordenada de vértices que definen los límites de la primitiva. Junto con esto, se pueden definir otros atributos de vértice como color, coordenadas de textura, etc. Más tarde, la canalización envía y manipula estos datos.
- Vertex Shader: la especificación de vértices definida anteriormente ahora pasa a través de Vertex Shader. Vertex Shader es un programa escrito en GLSL que manipula los datos de los vértices. El objetivo final del sombreador de vértices es calcular la posición final del vértice de cada vértice. Los sombreadores de vértices se ejecutan una vez por cada vértice (en el caso de un triángulo, se ejecutará 3 veces) que procesa la GPU. Entonces, si la escena consta de un millón de vértices, el sombreador de vértices se ejecutará un millón de veces para cada vértice. El trabajo principal de un sombreador de vértices es calcular las posiciones finales de los vértices en la escena.
- Teselado: Esta es una etapa opcional. En esta etapa, las primitivas están teseladas, es decir, divididas en mallas más suaves de triángulos.
- Geometry Shader: esta etapa de sombreado también es opcional. El trabajo de Geometry Shader es tomar una primitiva de entrada y generar cero o más primitivas de salida. Si se envía una tira de triángulos como una sola primitiva, el sombreador de geometría visualizará una serie de triángulos. Geometry Shader puede eliminar primitivos o teselarlos al generar muchos primitivos para una sola entrada. Los sombreadores de geometría también pueden convertir primitivos en diferentes tipos. Por ejemplo, el punto primitivo puede convertirse en triángulos.
- Posprocesamiento de vértice: esta es una etapa de función fija, es decir, el usuario tiene un control muy limitado o nulo sobre estas etapas. La parte más importante de esta etapa es el Clipping . El recorte descarta el área de primitivas que se encuentran fuera del volumen de visualización.
- Ensamblaje de primitivas: esta etapa recopila los datos de los vértices en una secuencia ordenada de primitivas simples (líneas, puntos o triángulos).
- Rasterización: este es un paso importante en este proceso. La salida de la rasterización es un fragmento.
- Fragment Shader: aunque no es necesario un escenario requerido, se usa el 96% del tiempo. Este programa escrito por el usuario en GLSL calcula el color de cada fragmento que el usuario ve en la pantalla. El sombreador de fragmentos se ejecuta para cada fragmento de la geometría. El trabajo del sombreador de fragmentos es determinar el color final de cada fragmento.
- Operaciones por muestra: hay algunas pruebas que se realizan en función de si el usuario las ha activado o no. Algunas de estas pruebas, por ejemplo, son la prueba de propiedad de píxeles, la prueba de tijera, la prueba de plantilla, la prueba de profundidad.
Echa un vistazo a renderizar un triángulo simple usando openGL aquí .
Publicación traducida automáticamente
Artículo escrito por Jitendra Tiwari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA