- ¿Cuál es la función de la etapa de canalización de OpenGL llamada sombreador de fragmentos?
- ¿Qué es un fragmento OpenGL?
- ¿Cuál es el propósito del fragment shader?
- ¿Con qué frecuencia se llama fragment shader?
- ¿Qué es la unidad de sombreado de plantilla?
- ¿Qué sucede si la prueba de la plantilla falla en OpenGL?
- ¿Cuándo pasa un fragmento la prueba del esténcil?
- ¿Por qué hay una prueba de fragmento temprana en OpenGL?
- ¿Por qué OpenGL desactiva las pruebas de profundidad tempranas?
¿Qué es la plantilla OpenGL?
Pruebas avanzadas de OpenGL/Stencil. Un búfer de plantilla (generalmente) contiene 8 bits por valor de plantilla que asciende a un total de 256 valores de plantilla diferentes por píxel. Podemos establecer estos valores de plantilla en valores de nuestro agrado y podemos descartar o conservar fragmentos siempre que un fragmento en particular tenga un determinado valor de plantilla.
¿Cuál es la función de la etapa de canalización de OpenGL llamada sombreador de fragmentos?
Un sombreador de fragmentos es la etapa de sombreado que procesará un fragmento generado por la rasterización en un conjunto de colores y un único valor de profundidad. El sombreador de fragmentos es la etapa de canalización de OpenGL después de rasterizar una primitiva. Para cada muestra de los píxeles cubiertos por una primitiva, se genera un "fragmento".
¿Qué es un fragmento OpenGL?
De la Wiki de OpenGL. Un Fragmento es una colección de valores producidos por el Rasterizador. Cada fragmento representa un segmento del tamaño de una muestra de un primitivo rasterizado.
¿Cuál es el propósito del fragment shader?
Los sombreadores de fragmentos (o texturas) definen los colores RGBA (rojo, verde, azul, alfa) para cada píxel que se procesa; se llama a un solo sombreador de fragmentos una vez por píxel. El propósito del fragment shader es configurar la variable gl_FragColor. gl_FragColor es una variable GLSL integrada como gl_Position.
¿Con qué frecuencia se llama fragment shader?
Se ejecuta un shader de fragmento para cada fragmento una vez. Un fragmento es un píxel.
¿Qué es la unidad de sombreado de plantilla?
En Unity, puede usar un búfer de plantilla para marcar píxeles y luego solo renderizar en píxeles que pasan la operación de plantilla. Ver en Glosario en la GPU. El búfer de la plantilla almacena un valor entero de 8 bits para cada píxel. El tamaño de píxel depende de la resolución de su pantalla. La iluminación de píxeles se calcula en cada píxel de la pantalla.
¿Qué sucede si la prueba de la plantilla falla en OpenGL?
glStencilFunc se puede usar para configurar ambas operaciones de cara en una sola llamada, si no desea usar GL_FRONT_AND_BACK . Si la prueba de la plantilla falla, el fragmento se descarta. Si pasa la prueba de la plantilla, es posible que otras pruebas (como la prueba de profundidad) descarten el fragmento. Normalmente, descartar un fragmento significa que no tiene efectos visibles.
¿Cuándo pasa un fragmento la prueba del esténcil?
Esto le dice a OpenGL que siempre que el valor de la plantilla de un fragmento sea igual (GL_EQUAL) al valor de referencia 1, el fragmento pasa la prueba y se dibuja; de lo contrario, se descarta. Pero glStencilFunconly describe si OpenGL debe pasar o descartar fragmentos según el contenido del búfer de la plantilla, no cómo podemos actualizar el búfer.
¿Por qué hay una prueba de fragmento temprana en OpenGL?
Las primeras pruebas de fragmentos, como optimización, existen para evitar ejecuciones innecesarias del Fragment Shader. Si un fragmento se descartará en función de la prueba de profundidad (quizás debido a que está detrás de otra geometría), ahorra rendimiento para evitar ejecutar el sombreador de fragmentos.
¿Por qué OpenGL desactiva las pruebas de profundidad tempranas?
Debido a que se trata de una optimización basada en hardware, OpenGL no tiene controles directos que le indiquen si se realizarán pruebas de profundidad tempranas. De manera similar, si el sombreador de fragmentos descarta el fragmento con la palabra clave descarte, esto casi siempre desactivará las primeras pruebas de profundidad en algún hardware.