Que son los Vertex Shaders y los Pixel Shaders??


  • 0

    La pregunta es esa, q son realmente los Vertex Shaders y los Pixel Shaders?? alguien puede explicarmelo?? Gracias.ay diferecia entre 2.x y los 3.0?? en q se nota??

    Agura!!



  • 1

    @Hamann:

    La pregunta es esa, q son realmente los Vertex Shaders y los Pixel Shaders?? alguien puede explicarmelo?? Gracias.ay diferecia entre 2.x y los 3.0?? en q se nota??

    Agura!!

    Los Píxel shaders son entidades extremadamente complejas, pero lo que hacen básicamente es sencillo de entender.

    Bien, pues cuando todas las operaciones han sido hechas sobre los polígonos que componen algún objeto y están listos para mostrarse en pantalla, estos están formados por un conjunto de píxels individuales. Con el Píxel Shader, los desarrolladores pueden controlar totalmente cómo quiere que se vea cada pixel por pantalla.

    Si mirás algun analisis antiguo de la GeForce2 GTS verás que también aparecia la funcionalidad de Píxel Shaders, pues bien, ese chip podía realizar 7 operaciones en una pasada sobre un píxel, mientras que el GeForce3 puede efectuar 36 y además programables, no fijas de una lista de efectos existentes.

    Algunas de sus aplicaciones pueden ser: Propiedades de Materiales especiales (seda, piel, cuero), cabellos en tiempo real, sombras suaves, reflexiones y refracciones perfectas, bump mapping por píxel con corrección Z, superficies extremadamente detalladas….

    Un vertex shader es una función de procesamiento gráfico que es capaz de manipular datos sobre vertex en un espacio de coordenadas tridimensional X,Y y Z,a través de operaciones matemáticas aplicadas a un determinado objeto. Las variaciones que puede manejar un vertex shader residen en diferencias de color, coordenadas de texturas, orientación en el espacio, niebla y perspectiva.

    Mayor info:
    http://www.geocities.com/arne9184/articlestutorials/Introduction_on_vertex_and_pixel_shaders.htm



  • 2

    A ver, con pixel y vertex shaders te puedes referir a varias cosas diferentes. La traducción al español sería algo así como sombreado de píxeles y vértices, y se aplica tanto a los programas que se aplican a los píxeles y vértices para modificarlos, como a las unidades funcionales dentro de las tarjetas gráficas que ejecutan estos programas y realizan estos efectos. Cuando se acompaña con un número, indica las especificaciones que permite. Al ser programables, tienes que definir unos límites tanto de precisión numérica (el formato de los datos con los que trabajas), de número de registros necesarios…

    ¿Por qué se utilizan? Las arquitecturas gráficas 3D fueron evolucionando. Desde las primeras voodoo que solo consistían en aplicar texturas sobre los polígonos que pasaba el procesador del sistema, pasamos a las GeForce que calculaban la transformación e iluminación de los polígonos por hardware (T&L por hardware, que fué una revolución en su momento por quitar carga al procesador ya que no tenía que preocuparse en calcular la geometría de la imagen) a las GeForce3 que fueron las primeras en introducir los efectos programables, que son los shaders.

    Hasta las GeForce2 (vamos a contar la historia desde el punto de vista de nVidia porque es la evolución más conocida) los efectos consistían en diferentes capas de texturas que se aplicaban sobre los polígonos para producir imágenes realistas. Una textura base que se va modificando con texturas semitransparentes que realizan pequeñas modificaciones. Ésta es una forma relativamente sencilla de realizar efectos, pero te limita mucho en tanto que no permite modificar las texturas en tiempo real, con lo que tienes muchas limitaciones al simular reflejos, iluminación... Los resultados no son muy realistas con este método, y tiene un consumo tanto de ancho de banda de memoria, como de tasa de relleno como de memoria RAM para almacenar las texturas muy alto.

    A partir de las GeForce3 las tarjetas gráficas empezaron a parecerse cada vez más a procesadores "normales" al permitir cálculos matemáticos mucho más complejos que permitían realizar efectos en tiempo real. De la multitextura con muchas capas, pasamos a una textura base, sobre la que pueden ir capas de texturas semitransparentes o no, y modificaciones de brillo y color en función del pixel shader que se aplique. Hoy en día si se eliminaran los shaders de un juego moderno con algún programa como el 3DAnalyze, la imagen quedaría en muchos casos con colores planos en los polígonos, sin reflejos... Los vertex shaders permiten modificaciones a las mallas de polígonos como deformaciones, rotaciones...

    El número que acompaña indica la versión que acepta como máximo. Las versiones 1.x trabajaban con enteros (creo) y a partir de las 2.x trabajan con coma flotante. Mayor precisión te permite evitar errores de redondeo, mayores cuanto más cálculos tenga que realizar el shader (la evolución es a shaders cada vez más complejos, para realizar efectos más vistosos) La 2.x exige como precisión 24 bits, mientras que la 3.0 exige 32 bits. Esta diferencia de precisión no se va a notar visualmente en la gran mayoría de los casos (dudo mucho que ningún juego de aquí a dos-tres años muestre diferencias de calidad visual debidas a la precisión, otra cosa es los efectos que sean diferentes)

    La diferencia principal entre 2.x y 3.0 es la facilidad a la hora de programar. Si, tiene algunas características nuevas, pero lo fundamental es que se ha introducido dentro del juego de instrucciones la posibilidad de realizar bucles y comparativas. Cualquier persona que sepa programación sabrá la importancia que tiene, ya que evita muchos quebraderos de cabeza a la hora de diseñar un código.

    En calidad visual no debería haber diferencias, ya que como reconoció nVidia, todo lo que se puede hacer con 3.0 se puede hacer con 2.x, lo que pasa es que es probable que algunos desarrolladores, sobre todo los que tienen acuerdos con nVidia, realicen juegos que aprovechen 3.0 con algunos efectos "en exclusiva" como cuestión de márketing.

    PD: Las GeForce2 no tienen unidades de shaders.



  • 3

    Vaya… pues muchas gracias a los dos por responder, me ago una idea, teneis q haber leido... :muerto: ;) En serio, gracias, ya se q no notare diferencia asiq no me preocupo mucho por tener 2.x o 3.0.

    Agura!!



  • 4

    con gente como vosotros me siento cada dia mas realizado , en serio ,jajaja.

    pos yo no tenia ni idea , y ya voy pillando algo.

    auuu!!



  • 5

    @Hamann:

    Vaya… pues muchas gracias a los dos por responder, me ago una idea, teneis q haber leido... :muerto: ;) En serio, gracias, ya se q no notare diferencia asiq no me preocupo mucho por tener 2.x o 3.0.

    Agura!!

    No sabría decirte tan seguro eso, ya que puedes encontrarte que diseñadores de juegos pasan de 2.x… si las encuentras por un precio parecido, pilla la nVidia, si la diferencia de precio es respetable, pilla la ATI.



  • 6

    Bien, yo prefiero la 6800GT, siempre me a gustado mas nVidia, asiq como pueda… ;) aver si salen ya la siere 7xxx y bajan los precios...

    Agura!!



  • 7

    Pues, de momento hay pocos juegos de esos q tienen efectos exclusivos pa las nvidia. Ten en cuenta q del Doom III t aburrirás en 2 dias (te aseguro q muxo antes de terminarlo) y entonces te preguntarás si han merecido la pena esos 90 € de diferencia entre la 6800gt y la X800XL :rollani:

    Aunque tengo yo también la duda de si las gforce tienen movidas nuevas para opengl :rollani:





Has perdido la conexión. Reconectando a Hardlimit.