graphics - essential - ¿Qué son los sombreadores de vértices y vértices?
essential graphics premiere download free (5)
DirectX 10 y OpenGL 3 introdujeron el Geometry Shader como un tercer tipo.
En la prestación de orden de tubería -
Vertex Shader - Toma un solo punto y puede ajustarlo. Puede usarse para calcular cálculos de iluminación de vértices complejos ** como configuración para la siguiente etapa y / o deformar los puntos alrededor (bamboleo, escala, etc.).
cada primitiva resultante se pasa a la
Geometry Shader : toma cada primitiva transformada (triángulo, etc.) y puede realizar cálculos en ella. Esto puede agregar nuevos puntos, quitarlos o moverlos según sea necesario. Esto se puede usar para agregar o eliminar niveles de detalle dinámicamente de una sola malla de base, crear mallas matemáticas basadas en un punto (para sistemas de partículas complejas) y otras tareas similares.
cada primitiva resultante se convierte en la línea de exploración y cada píxel que cubre el tramo se pasa a través de la
Pixel Shader (Fragment Shader en OpenGL): calcula el color de un píxel en la pantalla según lo que pasa el vértice sombreado, las texturas encuadernadas y los datos agregados por el usuario. Esto no puede leer la pantalla actual en absoluto, simplemente averiguar qué color / transparencia debe tener ese píxel para la primitiva actual.
esos píxeles se colocan en el búfer de dibujo actual (pantalla, backbuffer, render-to-texture, lo que sea)
Todos los sombreadores pueden acceder a datos globales, como la matriz de la vista del mundo, y el desarrollador puede pasar variables sencillas para que utilicen para iluminación o cualquier otro propósito. Los sombreadores se procesan en un lenguaje similar a un ensamblador, pero las versiones modernas de DirectX y OpenGL se han construido en compiladores de lenguaje de alto nivel tipo C integrados en HLSL y GLSL respectivamente. NVidia también tiene un compilador de sombreado llamado CG que funciona en ambas API.
[editado para reflejar el orden incorrecto que tenía antes (Geometría-> Vértice-> Píxel) como se indica en un comentario.]
Ahora hay 3 nuevos sombreadores utilizados en DirectX 11 para la teselación. El nuevo orden completo de sombreado es Vértice-> Casco-> Teselación-> Dominio-> Geometría-> Pixel. No he usado estos nuevos aún, así que no me sienta calificado para describirlos con precisión.
¿Qué son los sombreadores de vértices y vértices?
¿Cuál es la diferencia entre ellos? ¿Cuál es el mejor?
En términos de desarrollo, un píxel de sombreado es un pequeño programa que opera en cada píxel individualmente, de manera similar, un vértice de sombra opera en cada vértice individualmente.
Se pueden utilizar para crear efectos especiales, sombras, iluminación, etc.
Dado que cada Pixel / Vertex se opera individualmente, estos sombreadores se prestan a la arquitectura altamente paralela de los procesadores gráficos modernos.
Los sombreadores de vértices y píxeles proporcionan diferentes funciones dentro de la línea de gráficos. Los sombreadores de vértices toman y procesan datos relacionados con vértices (posiciones, normales, texcoords).
Los sombreadores de píxeles (o más precisamente, fragmentos) toman valores interpolados de los procesados en el sombreador de vértices y generan fragmentos de píxeles. La mayoría de las cosas "geniales" se hacen en sombreadores de píxeles. Aquí es donde ocurren cosas como la búsqueda de texturas y la iluminación.
Un Pixel Shader es un componente de GPU (unidad de procesamiento gráfico) que se puede programar para que funcione por píxel y se encargue de cosas como la iluminación y el mapeo de relieve.
Un Vertex Shader también es un componente de GPU y también se programa utilizando un lenguaje específico similar a un ensamblaje, como sombreadores de píxeles, pero está orientado a la geometría de la escena y puede hacer cosas como agregar bordes de dibujos animados a objetos, etc.
Ninguno es mejor que el otro, cada uno tiene sus usos específicos. La mayoría de las tarjetas gráficas modernas que soportan DirectX 9 o mejor incluyen estas capacidades.
Hay múltiples recursos en la web para obtener una mejor comprensión de cómo usar estas cosas. NVidia y ATI son especialmente buenos recursos para documentos sobre este tema.
DirectX específico:
Shader:
Conjunto de programas que implementa características gráficas de adición a los objetos que no están definidos en la tubería de representación fija. Debido a esto, podemos tener nuestros propios efectos gráficos de acuerdo con nuestras necesidades, es decir, ya no estamos limitados a operaciones "fijas" predefinidas.
HLSL: (Lenguaje de sombreado de alto nivel):
HLSL es un lenguaje de programación como C ++ que se utiliza para implementar sombreadores (Pixel Shaders / Vertex Shaders).
Sombreadores de vértices:
Un sombreador de vértice es un programa ejecutado en la GPU de la tarjeta gráfica que opera en cada vértice individualmente. Esto facilita que podamos escribir nuestro propio algoritmo personalizado para trabajar con los vértices.
Sombreadores de píxeles:
Un sombreador de píxeles es un programa ejecutado en la GPU de la tarjeta gráfica durante el proceso de rasterización de cada píxel. Nos da una facilidad para acceder / manipular píxeles individuales directamente. Este acceso directo a los píxeles nos permite lograr una variedad de efectos especiales, como la multitextura, la iluminación por píxeles, la profundidad de campo, la simulación de nubes, la simulación de incendios y las sofisticadas técnicas de sombreado.
Nota: tanto Vertex Shaders como Pixel Shaders (programas) deben compilarse usando una versión específica del compilador antes de usar. La compilación se puede hacer como llamar a una API con los parámetros requeridos, como el nombre del archivo, la función de entrada principal, etc.