Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 20 de 28

Tema: Stream y Shaders Processors (G80/R600)

  1. #1
    Colaborador at-large

    Avatar de DarkGhostHunter
    Fecha de ingreso
    21 Jan, 05
    Ubicación
    En Puerto Varas
    Mensajes
    15,528

    Stream y Shaders Processors (G80/R600)

    Estaba leyendo la última papita de Fud. Les cito de Fudzilla.

    We were right all along with G80 has 160 stream processors. You can read it here.
    ¿Se acuerdan del profesor que dijo que la G80 tenía 160 Stream P.? Bueno, estaban en lo correcto.

    There is a big difference between Unified Shaders (US) and Stream Processor (SP). Geforce G80 GTX, according to Nvidia, has 128 Shader processors, but in every cluster Nvidia has 4 more SFUs (Special function Units), so in fact G80 GTX has 160 Stream Processors. It all depends how you define Stream processor. SFU is however a crucial part of the pipeline unit so we should not count them as the external part so we should stick to the 128 Shader units number.
    Hay una gran diferencia entre los Unified Shaders (US), Shaders unificados, y los Stream Processors (SP). La GeForce G80 GTX, según NVIDIA, tiene 128 Shaders Processors, pero en cada "cluster" NVIDIA tiene 4 SFUs (Unidades de Función Especial) más.

    Entonces, la G80GTX tiene 160 Stream Processors. Todo depende de cómo definas un Stream Processor. SFU, por otra parte, es un elemento crucial del pipeline, por lo que no deberíamos contarlos como parte externa, así que deberíamos apegarnos al número de 128 Shader Units.

    Como pueden ver. La diferencia radica en que los Unified Shaders o Shaders Processors son simplemente eso, pero los Stream Processors son básicamente todos los procesadores que información dentro del pipeline.

    La G80 tiene 128 Shaders Processors, sin embargo, en cada clúster de 32 tiene 4 SFU. Si hacemos la matemática, (32 Shader Processors + 4 SGU's) * 4 nos da 160 Stream Processors, de los cuales 32 son SFU's.

    The R600 has 64 Unified Shader but they are vec5 (4v+1skalar), so the R600 has 320 Stream processors or lets call it just multiply-accumulate units. These 64 us are divided in 4 blocks. 320 stream processors are actually 64 4D + 64 1D. If you do the match 64*4+64 will give you the 320 number.
    El R600 tiene 64 Unified Shaders (o sea, la mitad de la G80 GTX) pero estos son vec5 (4v + 1skalar), así que el R600 tiene 320 Stream Processors, o mejor dejémoslo en "Unidades Multiplica y Acumula".

    Estos 64 están divididos en 4 bloques. 320 Stream Processors son actualmente 64 4D + 64 1D. Si haces la matemática 64*4+64 te dará el número 320.

    O sea, el R600 tiene 256 4v y tiene 64 Scalars

    Veamos las dudas que hay que despejar.

    Vemos que menciona VEC5, sin embargo, en todo el resto del artículo habla de VEC4. Lo tomaré cono un error de redacción.

    Vec4 means that you can process a Shader with forth dimensional data e.g. X,Y,Z,W or R,G,B,A dimension of data + one more scalar instruction. So if the game has Shaders that needs Vec4 instruction all the time and one additional scalar instruction then ATI have a great GPU and can score twice better than Nvidia. In best case scenario ATI can process 320 streams while Nvidia can do only 160. Well, life is not about best case scenarios.
    Vec4 significa que puedes procesar un Shader con 4 datos dimensionales, como por ejemplo: X, Y, Z, W (espacio) o bien R, G, B, A (instrucción) más una instrucción escalar.

    Así que si el juego tiene Shaders que necesitan instrucciones Vec4 todo el tiempo, y una instrucción escalar, entonces ATI tendrá una excelente GPU porque puede procesar 320 Stream Processors mientras que por el lado de NVIDIA puede hacer sólo 160. Bueno, la vida no se trata sobre los mejores escenarios.

    Como vemos, los shaders son instrucciones de dimensión o instrucción. En el caso de ATI, aprovechar un Shader Processor sería genial usando Vec4, porque así le "alcanza justo". Por la contraparte, la G80 quedaría corta de potencia gráfica.

    Dato aparte:

    X, Y, Z, W dicen dimensión. Si me preguntan porqué de la W, es simple: W0 indica que las coordenadas son vectores (dirección), W1 indica que son puntos (posición)

    R, G, B, A indican color a grandes rasgos: Red, Green, Blue y Alpha (transparencia). Podríamos tirar un ejemplo: R255, G255, B255, A50 va a dar un blanco transparente en un 50%.

    Ahora veremos como se ennegrece la sopa.


    Nvidia has a big advantage as its Stream processors work at 1.35 GHz and this really goes well versus the 320 Stream processors or Multiply-accumulate units at 800 MHz. R6xx GPUs can easily be faster in future games like Crysis or Unreal Tournament 2007. This might only happen if these companies decides to go for the complex Shaders all the time. So far no one made such a Shader.
    La principal ventaja de NVIDIA es que sus Stream Processors trabajan a 1.35 Mhz y esto va muy bien frente a los 320 Stream Processors (o "Unidades Multiplica-Acumula") que trabajan a 800Mhz.

    Las GPUs R6xx can fácilmente ser más rápidas en un futuro con juegos como Crysis o Unreal Tournament 2007. Esto puede suceder sólo si estas compañías deciden ir por Shaders Complejos todo el tiempo, pero hasta ahora nadie ha hecho semejante Shader.

    Al parecer, ATI quizo apuntar al un futuro, mientras que NVIDIA lo ha hecho sólo para aprovechar el momento. Básicamente, a la G80 le convienen shaders simples para así aprovechar con 1.35Mhz de velocidad. De esta forma, terminaría en cierta ventaja porque sería capaz de hacer más shaders simples y en menos tiempo.


    Nvidia's G80 can process more simple Shaders as its stream processor can process a single instruction or dimension. Nvidia G80 hardware can be seen as 128/4 or 32 4D VEC4 Shaders but each of these 32 units can work parallel. That is how you end up with 128 Stream processors all the time. Nvidia's Shaders are so flexible so Nvidia can take as much units it wants and calculate as many dimensions in vector as you like. It can always do 128 stream processor instructions per clock while ATI in the worst case scenario does 64 and in the best case it can do even 320.
    La G80 de NVIDIA puede procesar más Shaders simples y sus Stream Processors pueden procesar instrucciones o dimensiones simples.

    El hardware de la G80 puede ser visto como 128/4 o bien 32 4D VEC4 Shaders, pero cada una de estas 32 unidades pueden trabajar en paralelo. Así es como terminas con 128 Stream Processors todo el tiempo.

    Los shaders de NVIDIA son tan flexibles que NVIDIA puede tomar tantas unidades quieran y calcular tantas dimensiones en vectores quieras. Siempre podrá hacer 128 instrucciones Stream Processors per clock (por reloj). Mientras que ATI, en el peor escenario haría 64 y en el mejor 320.

    En pocas palabras, afirman lo que ya dije sobre los shaders simples.

    Menciona que cada bloque de 32 unidades + 4 SFU es tan flexible que pueden trabajar en paralelo, así se tendrá siempre 160 stream processors trabajando.

    Ahora mismo hay el ejemplo para ver porqué sucede esto:

    We will show a two examples
    Let's add two 4D vectors and two 1D scalar information. ATI will do this in a single clock because it has one 4D and one 1D unit to spend. Nvidia will do this in a single clock but it will take 5 units from 128 possible while ATI used only 2 from 128 possible (64 4D + 64 1D).
    Veremos 2 ejemplos:

    Agreguemos dos datos 4D vectors y dos datos 1D scalar.

    Tenemos:
    2 4Dv
    2 1Ds


    Recordemos:
    ATI = 64 4Dv + 64 1Ds, divididos en 4Dv + 1Ds = 64 (Shaders)
    NVIDIA = 128 4Dv + 32 1Ds, divididos en 32Dv + 4Ds = 128 (Shaders)

    ATI lo haría en un sólo reloj porque tiene 4D y 1D para gastar

    NVIDIA lo haría en un sólo reloj pero gastaría tiene 5 Unidades de las 128 posibles, mientras que ATI lo hizo con 2 unidades de las 128 posibles (64 4D + 64 1D)

    Vemos que a ATI le alcanza justo el shader VEC4 para este tipo de datos. No se esfuerza y ocupa dos clúster de 4Dv y 1Ds.

    NVIDIA, sin embargo, debe ocupar dos clústers, y a cada uno se le van 5 unidades. O sea, de un clúster de 32Dv y 4Ds ocupa 8Dv y 2Ds.


    No me creerán pero estuve 15 minutos varado en este apartado tratando de entender...

    ATI is theoretically faster, but Nvidia has Shaders that run at 1.35 GHz or some 60 percent faster than ATI's that run at 800 MHz. This makes the situation much better for Nvidia. This example is very rare in real games. Shaders very rarely use the operations with 4D vectors. Shaders usually work with 3D data such as 3D coordinates, 3D normals and 3D RGB channels without alpha. In some cases Shaders use 2D functions only e.g. 2D coordinate in texture or even 1D.
    ATI teóricamente est más rápida, pero NVIDIA tiene Shaders que pueden correr a 1.35 Ghz, o un 60% más rápido que ATI que corre a 800Mhz. Esto hace que la situación se haga más beneficiosa para NVIDIA. Este ejemplo es muy raro en juegos reales.

    Shaders raramente usan operaciones con vectores 4D. Shaders usualmente trabajan con datos 3D como coordenadas 3D, normas 3D y canales 3D RBG sin Alpha. En algunos casos los Shaders usan sólo funciones 2D , como por ejemplo coordenadas 2D en texturas o incluso 1D.

    En pocas palabras, en el ejemplo anterior es sólo un caso teórico. Vamos con el otro ejemplo.

    Example 2:

    Let's add two 3D vectors, two 2D Vectors and one 1 D scalar. Nvidia again needs 5 Shaders or 2+2+1 units while ATI can not make this in a single clock. ATI needs a single clock to add two 3D vectors and at the same clock it can add the 1D scalar. However it needs a second clock to add 2 2D vectors. This means that ATI used 1+1 units in first and a single unit in second clocks, together it used three units in two clocks. As R600 Shaders are 60 percent slower than Nvidia's it means that R600 is two times slower than G80 in this particular example.
    Ejemplo 2:

    Vamos a agregar dos 3D vectors, dos 2D vectors y 1D scalar.

    Tenemos:
    2 3Dv
    2 2Dv
    1 1Ds


    Nvidia nuevamente necesita 5 Shaders o más bien 2+2+1 unidades mientras que ATI no puede hacer esto en un reloj simple.

    ATI necesita un reloj simple para agregar 2 3Dv y en el mismo reloj necesita 1Ds. Sin embargo, necesita un segundo reloj para agregar los 2 2Dv restantes. Esto significa que ATI usó primero 1+1 unidades en un segundo sólo usó 1 unidad. Como los shaders del R600 son 60% más lentos que la solución de Nvidia, esto quiere decir que el R600 es dos veces más lento que la G80 en este ejemplo en particular.

    ¿No entendieron? Se los explico en los relojes

    NVIDIA: Usa 5 unidades nuevamente
    CLUSTER 1 (32Dv+4Ds) = 2 3Dv + 2 2Dv +1Ds

    Total, en el clúster le queda sobrando.. pero en ATI el caso es otro

    ATI: Usa 2 clústers
    CLUSTER 1 (4Dv+1Dv) = 1 3Dv + 1Ds
    CLUSTER 2 (4Dv+1Dv) = 1 3Dv + 0Ds

    No puede meter 2 3Dv (6Dv) en un mismo clúster porque no caben, así que usa 1+1 (Dos clúster). Ahora faltan los 2 2Dv restantes, y lo hace en la otra pasada de clocks.

    CLUSTER 1 (4Dv+1Dv) = 2 2Dv + 0Ds

    Lo que no puedo explicarme aún, es porqué en ATI no se pudo poner en el reloj 1, en el clúster 3, los 2 2Dv restantes. Al parecer, he de ahí porqué Fudo dijo que Nvidia puede hacer trabajar esos shaders en paralelo, mientras que ATI no puede: simplemente no pueden ponerser Dimensiones Vectoriales diferentes en un mismo clock.

    If you decide to make a Shader that will add eight 1D vectors Nvidia can take 8 units in a single clocks and ATI has to do in four clocks as it can use 1 4D and 1 1D unit per clock to finish this operation. In this case Nvidia can be four times faster and still finishes the calculation faster.
    Si decides hacer un Shader que agregará 8 1Dv, NVIDIA puede tomar 8 unidades 4D en un clock simple, mientras que ATI tiene que hacer 4 clocks ya que sólo puede ocupar 1 4Dv y sólo 1 1Ds por clock para terminar la operación.

    En esta caso, NVIDIA puede ser 4 veces más rápido y puede terminar el cálculo más rápido.

    Nos dicen que al ejemplo anterior le ponemos 8 1Dv más. Todo quedaría así:

    Tenemos:
    2 3Dv
    2 2Dv
    8 1Dv
    1 1Ds

    Entonces, ahora entendí. NVIDIA puede hacer trabajar sus shaders paralelamente, razón por la cual puede poner 8 1Dv en cada unidad, y hacerlo todo en un reloj. O sea, en el mismo reloj, usa 8 unidades más a las que ya usó en el ejemplo y walá.

    Sin embargo, ATI no puede hacerlo, sus unidades no pueden trabajar en paralelo, y por lo tanto, debe ocupar ya no 2 clocks sino que 4 clocks. Si adivinaron cómo, es porque ya entendieron. Si no, seleccionen el texto

    Sino, les explico: toma los 8 1Dv, los agrupa en 2 4Dv y los mete en cada unidad, son dos clocks más, porque no trabajan en paralelo.

    Even if it looks really bad for ATI there is still some hope for the R600. You have to take into consideration that Microsoft HLSL (Higher Level Shader Language) compiler will do its small miracle and will try to optimize the Shader code. Compiler will try to "glue" a few scalars in a single VEC4 unit.
    Aunque paresca realmente malo para ATI, aún hay un poco de esperanza para el R600. Tendrías que tomar en consideración que Microsoft y su compilador HLSL hará un milagro y tratará de optimizar el código del Shader, o sea, tratará de "pegar" algunos scalars en una simple unidad VEC4 (4Dv+1Ds).

    Gracias Fudo por la cuota de fé. La esperanza es lo último que se pierde. Ahora explica porqué:

    Compiler

    We have two scalar informations, the first one called Fudo and second ona called JenHsun. The compiler will glue these two scalar values in a single 2D vector called "FudoJenHsun" and it will access Fudo scalar part as the FudoJenHsun.X and JenHsun part as FudoJenHsun.Y. The good part is that all possible operations with a new variable 2D vector FudoJenHsun will run parallel as one 2D vector. This wont help Nvidia at all, but it will really mean a lot for ATI. Nvidia still has an advantage of having full flexible scalar units, while ATI doesn’t, at least not that we or any of our sources knows of.
    Compilador:

    Tenemos 2 1Ds. El primero se llama "Fudo" y el segundo se llama "JenHsun". El compilador tratará de pegar esos 2 1Ds en un simple 2D Vector llamado "FudoJenHsun" y se accederán por medio de dos partes escalares: Fudo será "FudoJenHsun.X" y la parte JenHsun será "FudoJenHsun.Y".

    La parte buena es que eso que todas las posibles operaciones con una nueva variable 2Dv FudoJenHsun correrán en paralelo como un 2Dv. Esto no ayudará a NVIDIA sobre todo, pero será un alivio para ATI. NVIDIA todavía tiene una ventaja de tener unidades escalares (Ds) totalmente flexibles, mientras que ATI no, por lo menos no en la manera en que las fuentes actuales saben.


    We know it is a complicated part but we could not simplify things much more than this. We apologise for the complexity of the part but it just doesn’t go easier than that. We simplified it as much as we could.
    Ojalá toda esta wea fuera más simple

    Besitos.
    Última edición por DarkGhostHunter; 29/04/2007 a las 18:46

  2. #2
    Spirit Crusher
    Avatar de Barb
    Fecha de ingreso
    09 Apr, 07
    Ubicación
    Niñita de la Reina :D
    Mensajes
    217
    MUCHO peor sería... no saber nada de Inglés.



  3. #3
    Colaborador at-large

    Avatar de DarkGhostHunter
    Fecha de ingreso
    21 Jan, 05
    Ubicación
    En Puerto Varas
    Mensajes
    15,528
    Por eso quize traducir el texto. Tbon ilumíname plis.

  4. #4
    MOD

    Avatar de Bob Arquitecto
    Fecha de ingreso
    17 Jan, 04
    Mensajes
    2,912
    entendi un 95% hay cosas ke me confunden.
    Última edición por Bob Arquitecto; 29/04/2007 a las 18:36

  5. #5
    Nehalem
    Avatar de DAG_XT
    Fecha de ingreso
    01 Nov, 06
    Ubicación
    Lima-Perú
    Mensajes
    4,047
    Siii, ojalá fuera más simple... en algunar partes tuve que releer.
    Nehalem

  6. #6
    Colaborador at-large

    Avatar de DarkGhostHunter
    Fecha de ingreso
    21 Jan, 05
    Ubicación
    En Puerto Varas
    Mensajes
    15,528
    Úpale.. por favor algún iluminado!
    ----
    Última edición por DarkGhostHunter; 29/04/2007 a las 21:00 Razón: Post unidos

  7. #7
    MOD

    Avatar de Bob Arquitecto
    Fecha de ingreso
    17 Jan, 04
    Mensajes
    2,912
    Vi ke leyo Tbon, JF.. y ninguno de los dos "Aperro" a decir algo..

  8. #8
    Colaborador at-large

    Avatar de DarkGhostHunter
    Fecha de ingreso
    21 Jan, 05
    Ubicación
    En Puerto Varas
    Mensajes
    15,528
    Si caché

    Ahora le escribí a Fudo y me lo explicó en una manzana, es más fácil de lo que yo pensaba.

    Me guardo la solución

  9. #9
    Motociclista
    Avatar de Rick_Hunter
    Fecha de ingreso
    18 Jan, 04
    Ubicación
    Stgo
    Mensajes
    6,035
    Cita Iniciado por DarkGhostHunter Ver mensaje
    Si caché

    Ahora le escribí a Fudo y me lo explicó en una manzana, es más fácil de lo que yo pensaba.

    Me guardo la solución
    Si claro


    Voy a leer la version en ingles pq no confio en tu traduccion..

  10. #10
    Enajenado

    Avatar de Ratonator
    Fecha de ingreso
    15 Oct, 04
    Ubicación
    netbookland
    Mensajes
    13,307
    antes todo era mas facil, quiero los pipelines de vuelta

  11. #11
    Colaborador at-large

    Avatar de DarkGhostHunter
    Fecha de ingreso
    21 Jan, 05
    Ubicación
    En Puerto Varas
    Mensajes
    15,528
    Cita Iniciado por Rick_Hunter Ver mensaje
    Si claro


    Voy a leer la version en ingles pq no confio en tu traduccion..
    Si podís entender algo

  12. #12
    Hincha Weas

    Avatar de Detonator
    Fecha de ingreso
    16 May, 05
    Mensajes
    7,850
    Mm cual es la parte complicada?



  13. #13
    Motociclista
    Avatar de Rick_Hunter
    Fecha de ingreso
    18 Jan, 04
    Ubicación
    Stgo
    Mensajes
    6,035
    Cita Iniciado por DarkGhostHunter Ver mensaje
    Si podís entender algo
    Acabo de terminar de leerlo y no le encuentro la parte sconf.. es cosa de leerlo con calma pero para ti de seguro es mucho

    En resumen todo depende del juego. ATI por su parte tendria buena ventaja a la hora de procesar graficas muy complejas puesto que sus 64 shaders unificados pueden calcular un vector de 4 dimensiones (VEC4) mas un escalar por clock (64 4D + 64 1D = 320 stream processors). Esto se daria en juegos potentes que se vienen como Crysis o UT2007 pero la realidad es que la mayoria de los juegos no usan instrucciones VEC5 por ahora.

    La ventaja de G80 radica en que sus 128 stream processors corren a 1.35ghz (R600 320@800mhz) y son mas flexibles. Siempre pueden procesar las dimensiones requeridas en un clock, osea que nunca va a bajar 128 calculos por clock a diferencia de R600 que en el peor escenario posible puede terminar calculando 64 como tambien puede llegar a 320.

    Igual es interesante la ultima parte donde habla de Microsoft. Si es cierto lo de "FudoJenHsun" la desventaja de R600 no seria tanta al lado del calculo de escalares de G80
    Última edición por Rick_Hunter; 29/04/2007 a las 23:57

  14. #14
    Colaborador at-large

    Avatar de DarkGhostHunter
    Fecha de ingreso
    21 Jan, 05
    Ubicación
    En Puerto Varas
    Mensajes
    15,528
    Cita Iniciado por Rick_Hunter Ver mensaje
    Acabo de terminar de leerlo y no le encuentro la parte sconf.. es cosa de leerlo con calma pero para ti de seguro es mucho

    En resumen todo depende del juego. ATI por su parte tendria buena ventaja a la hora de procesar graficas muy complejas puesto que sus 64 shaders unificados pueden calcular un vector de 4 dimensiones (VEC4) mas un escalar por clock (64 4D + 64 1D = 320 stream processors). Esto se daria en juegos potentes que se vienen como Crysis o UT2007 pero la realidad es que la mayoria de los juegos no usan instrucciones VEC4 por ahora.

    La ventaja de G80 radica en que sus 128 stream processors corren a 1.35ghz (R600 320@800mhz) y son mas flexibles. Siempre pueden procesar las dimensiones requeridas en un clock, osea que nunca va a bajar 128 calculos por clock a diferencia de R600 que en el peor escenario posible puede terminar calculando 64 como puede llegar a 320.

    O sea, lo que acabo de escribir sólo que de manera más general... Gracias por el resumen.

  15. #15
    Motociclista
    Avatar de Rick_Hunter
    Fecha de ingreso
    18 Jan, 04
    Ubicación
    Stgo
    Mensajes
    6,035
    Cita Iniciado por DarkGhostHunter Ver mensaje
    O sea, lo que acabo de escribir sólo que de manera más general... Gracias por el resumen.
    Tu acabas de traducir textualmente, y claramente dijiste que no entendias.. y ahora te las das de pro , pobre diablo

  16. #16
    Pajarito Nuevo

    Fecha de ingreso
    11 Aug, 05
    Mensajes
    110
    Cita Iniciado por Rick_Hunter Ver mensaje
    Esto se daria en juegos potentes que se vienen como Crysis o UT2007 pero la realidad es que la mayoria de los juegos no usan instrucciones VEC4 por ahora.
    Falso, es wea de ver como estan implementados muchos efectos, un puro ejemplo, convolucion (Codigo abajo), Blending, Phong Lighting, HDR, etc.

    Código:
    void main()
    {
            int i;
            vec4 sum = vec4(0.0);
            vec2 coord = -gl_TexCoord[0].st;
    
            for(i = 0; i < kernelSize; i++) {
                    sum += texture2D(image, coord + offsets[i]) * kernel[i];
            }
    
            gl_FragColor = sum / kernelFactor;
    }

  17. #17
    Motociclista
    Avatar de Rick_Hunter
    Fecha de ingreso
    18 Jan, 04
    Ubicación
    Stgo
    Mensajes
    6,035
    Cita Iniciado por hunts Ver mensaje
    Falso, es wea de ver como estan implementados muchos efectos, un puro ejemplo, convolucion (Codigo abajo), Blending, Phong Lighting, HDR, etc.

    Código:
    void main()
    {
            int i;
            vec4 sum = vec4(0.0);
            vec2 coord = -gl_TexCoord[0].st;
    
            for(i = 0; i < kernelSize; i++) {
                    sum += texture2D(image, coord + offsets[i]) * kernel[i];
            }
    
            gl_FragColor = sum / kernelFactor;
    }
    Que parte de "la mayoria" no cachaste? algun otro ejemplo de VEC4?

    edit: era VEC5
    Última edición por Rick_Hunter; 30/04/2007 a las 00:00

  18. #18
    Colaborador at-large

    Avatar de DarkGhostHunter
    Fecha de ingreso
    21 Jan, 05
    Ubicación
    En Puerto Varas
    Mensajes
    15,528
    Cita Iniciado por Rick_Hunter Ver mensaje
    Tu acabas de traducir textualmente, y claramente dijiste que no entendias.. y ahora te las das de pro , pobre diablo
    Obvio, finalmente entendí
    ----
    Cita Iniciado por hunts Ver mensaje
    Falso, es wea de ver como estan implementados muchos efectos, un puro ejemplo, convolucion (Codigo abajo), Blending, Phong Lighting, HDR, etc.

    Código:
    void main()
    {
            int i;
            vec4 sum = vec4(0.0);
            vec2 coord = -gl_TexCoord[0].st;
    
            for(i = 0; i < kernelSize; i++) {
                    sum += texture2D(image, coord + offsets[i]) * kernel[i];
            }
    
            gl_FragColor = sum / kernelFactor;
    }

    Dices que, por ejemplo, HDR, o Blending son VEC4. Entonces, ¿ya en la mayoría de los juegos se usan? ¿por lo tanto la mayoría de juegos son Vec4?
    Última edición por DarkGhostHunter; 29/04/2007 a las 23:12 Razón: Post unidos

  19. #19
    Motociclista
    Avatar de Rick_Hunter
    Fecha de ingreso
    18 Jan, 04
    Ubicación
    Stgo
    Mensajes
    6,035
    Cita Iniciado por hunts Ver mensaje
    Falso, es wea de ver como estan implementados muchos efectos, un puro ejemplo, convolucion (Codigo abajo), Blending, Phong Lighting, HDR, etc.

    Código:
    void main()
    {
            int i;
            vec4 sum = vec4(0.0);
            vec2 coord = -gl_TexCoord[0].st;
    
            for(i = 0; i < kernelSize; i++) {
                    sum += texture2D(image, coord + offsets[i]) * kernel[i];
            }
    
            gl_FragColor = sum / kernelFactor;
    }
    Ahora que busque mas es interesante ver que efectivamente se ve harto el uso de VEC4.. no se entonces a que se refiere el articulo de fudo al decir que no se usa mucho

  20. #20
    Colaborador at-large

    Avatar de DarkGhostHunter
    Fecha de ingreso
    21 Jan, 05
    Ubicación
    En Puerto Varas
    Mensajes
    15,528
    Cita Iniciado por Rick_Hunter Ver mensaje
    Ahora que busque mas es interesante ver que efectivamente se ve harto el uso de VEC4.. no se entonces a que se refiere el articulo de fudo al decir que no se usa mucho
    Seguramente se refiere al modo de implementación en los juegos.

    Me explico. Dentro de toda la programación de la aplicación en términos gráficos, sólo se usan muy pocas instrucciones VEC4 en comparación al resto de instrucciones que son 3D, 2D o por lo menos 1D.

    Si andamos con dudas, entonces despejemos en realidad VEC4 y VEC5. Si te das cuenta, habla de VEC5 al referirse a 4Dv+1Ds. Pero si sigues leyendo, empieza a hablar de VEC4 como si fuese VEC5.

    Entonces al final, si desglosamos un poco, resulta que la G80 es VEC4 y el R600 es VEC5.

    Me dirán porqué. Fácil. El R600 en un clúster hace 4Dv+1Ds que es VEC5, y todos los clústers son así. En proporciones, 4Dv+1Ds te da 64 4Dv + 64 1Ds.

    El G80 no tiene VEC5, porque en cada clúster no puede hacer 4Dv+1Ds. Tiene 32 4Dv (128 "Shaders") VEC4, porque sólo son vectoriales, y los "escalares" están "aparte" como 32 más, aunque en realidad son más que escalares ya que son SFU y según fudo resultan más flexibles que VEC5 a la hora de instrucciones simples.

    A lo mejor por eso son un poco más "mejores" que sus compatriotas en DirectX 9, ya que las instrucciones simples abundan. Sin embardo, cada vez siento el fantasma de las GeForce FX cerca. Puede que observemos pocos fps a la hora de poner juegos DirectX 10 chancheros. (Léase Crysis, UT2007, Lost Planet, etc.)
    Última edición por DarkGhostHunter; 29/04/2007 a las 23:30

Página 1 de 2 12 ÚltimoÚltimo

Temas similares

  1. 8600gt = Stream Processor v/s Pixel pipelines
    Por pattor en el foro Cotizaciones de Tarjetas de Video
    Respuestas: 17
    Último mensaje: 12/09/2007, 22:57
  2. Shaders 3.0 vs Shaders 4.0 Ayuda !!
    Por Flavio en el foro Tarjetas de Video
    Respuestas: 9
    Último mensaje: 03/01/2007, 14:33

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
*