¿Qué es un fragmento en la programación de gráficos 3D?


37

¿Qué es un fragmento en un sombreador de fragmentos? Wikipedia dice que:

En general, un fragmento puede considerarse como los datos necesarios para sombrear el píxel, más los datos necesarios para probar si el fragmento sobrevive para convertirse en un píxel (profundidad, alfa, plantilla, tijera, ID de ventana, etc.)

Entonces, ¿son texturas, vértices u otra cosa?

Respuestas:


31

En gráficos de computadora, un fragmento es la información necesaria para generar un solo píxel de una primitiva de dibujo en el búfer de cuadros.

Estos datos pueden incluir, entre otros:

  • posición de trama
  • profundidad
  • atributos interpolados (color, coordenadas de textura, etc.)
  • plantilla
  • alfa
  • ID de ventana

A medida que se dibuja una escena, las primitivas de dibujo se rasterizan en fragmentos que se texturizan y se combinan con el búfer de cuadro existente. La forma en que se combina un fragmento con los datos que ya están en el búfer de trama depende de varias configuraciones. En un caso típico, un fragmento puede descartarse si está más lejos que el píxel que ya está en esa ubicación (de acuerdo con el búfer de profundidad). Si está más cerca que el píxel existente, puede reemplazar lo que ya está allí o, si se usa la mezcla alfa, el color del píxel puede reemplazarse con una mezcla del color del fragmento y el color existente del píxel, como en el caso de dibujando un objeto translúcido.

En general, un fragmento puede considerarse como los datos necesarios para sombrear el píxel, más los datos necesarios para probar si el fragmento sobrevive para convertirse en un píxel (profundidad, alfa, plantilla, tijera, ID de ventana, etc.)

De wikipedia


6

Un fragmento es simplemente los datos que se obtienen de la contribución de los 3 vértices alrededor del píxel que está sombreando.

En el sombreador de vértices, genera algunos datos por vértice (color, coordenadas de textura, ...). Luego, en el Fragment Shader, para cada píxel obtienes un promedio ponderado de esos valores, que luego usas para construir los colores finales del píxel.


El píxel y todos los demás datos en búferes invisibles como se mencionó anteriormente.
StarWeaver


4

¿Qué es un fragmento en un sombreador de fragmentos?

Lo único que se puede decir con precisión es definir las entradas y salidas del sombreador de fragmentos.

Como se ha hecho / es demasiado amplio, me centraré en el lado visual intuitivo.

Un fragmento es la salida ráster

El wiki de OpenGL dice:

Un Fragmento es una colección de valores producidos por el Rasterizador.

Lo cual tiene sentido ya que el sombreador de fragmentos viene después del rasterizador que produce su entrada.

Y esta es la representación visual de la salida del rasterizador:

Fuente de la imagen .

La entrada del rasterizador es un triángulo 3D y un punto de vista, y la salida, es un conjunto de píxeles que pueden aparecer en la pantalla (si otros no los bloquean).

Cada uno de esos pequeños cuadrados (que están codificados como un solo plixel), es una pieza del triángulo, y el fragmento es solo otro nombre para la pieza.


Votantes, por favor explique para que pueda aprender y mejorar el contenido ;-)
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

La información en la respuesta superior mezclada con tus explicaciones visuales sería la mejor.
StarWeaver
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.