Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Lord Trancos 2 en 12 de Abril de 2004, 02:30:10 PM

Título: Vertex Programs
Publicado por: Lord Trancos 2 en 12 de Abril de 2004, 02:30:10 PM
 Estaba probando una demo de cel-shading que usa vertex programs (usando las extensiones ARB_vertex_program y NV_vertex_program) que ademas tambien puede hacer el shading "a mano".

http://www.paulsprojects.net/opengl/celsha...celshading.html

Y me ha llamado la atencion ver que va mas rapido por CPU!! O_O;
(P4 2.4GHz 512Mb GF4MX440 128Mb)

En la demo ARB:

Unos 330fps a mano
y unos 270fps por HW.

En la demo NV:

Unos 135fps a mano
y unos 36fps por HW.

....

tal vez sea cosa de la demo que tiene algo mal, o tal vez sea pq la CPU no tiene nada mejor que hacer mientras que la GPU esta ocupada,.....

Me preguntaba si alguien mas ha hecho pruebas en este sentido y ha obtenido los mismos resultados (mas rapido por CPU).
Título: Vertex Programs
Publicado por: seryu en 12 de Abril de 2004, 03:01:18 PM
 con una gf4mx440 que quieres..

aun asi, lo normal es ganar bastante framerate usando vertex program.

otra ultima consideracion son los drivers de nvidia, que ultimamente en opengl dan pena.
Título: Vertex Programs
Publicado por: BeRSeRKeR en 12 de Abril de 2004, 04:11:57 PM
 A mí me va igual en las dos versiones. Las dos rondan los 1000 fps en un P4 3Ghz, 1GB de RAM y Radeon 9600 Pro (256MB).

Saludos.
Título: Vertex Programs
Publicado por: Zaelsius en 12 de Abril de 2004, 04:31:36 PM
 La velocidad de los vertex programs/shaders depende de la CPU. En mi Athlon XP 1600+, los VS por CPU van más rápidos que con una GeForce 2 MX,  en cambio son más lentos que con una GeForce 4 MX.

Aun así, exceptuando extremos como CPU 3ghz + Castaña GPU, lo mejor es usar procesamiento por hardware, porque hay que tener en cuenta que la CPU que ahorramos la podemos usar en IA, físicas, cálculo de sombras, etc. mejorando el rendimiento global.
Título: Vertex Programs
Publicado por: DraKKaR en 12 de Abril de 2004, 05:30:34 PM
 Lord Trancos, la GeForce4 MX no soporta Vertex Shaders por hardware. Tengo entendido que el driver los emula por software. De ahí que te vaya más rápido la versión por CPU.
Título: Vertex Programs
Publicado por: Lord Trancos 2 en 12 de Abril de 2004, 06:07:27 PM
 
Cita de: DraKKaRLord Trancos, la GeForce4 MX no soporta Vertex Shaders por hardware. Tengo entendido que el driver los emula por software. De ahí que te vaya más rápido la versión por CPU.
:-mmm eso lo explicaria todo... probare en la radeon9600 pro de mi hermano mayor
Título: Vertex Programs
Publicado por: AK47 en 12 de Abril de 2004, 06:22:50 PM
 Lamento contradecirte, Lord Trancos, pero las GF4 MX si aceleran los vertex shaders. Lo que no hacen son los pixel shaders :(
Título: Vertex Programs
Publicado por: _Grey en 12 de Abril de 2004, 06:41:30 PM
 No te preocupes por esos resultados, utiliza la aceleracion por Hard.

La explicacion es sencilla, tienes una buena CPU, pero la grafica es muy normalita, por eso, en determinados casos la CPU puede dar mas rendimiento.

Pero utiliza la aceleracion de todas formas, recuerda que en un programa puedes necesitar hacer muchas otras cosas, como actualizar movimientos de objetos, calcular la visibilidad de estos y demas... si utilizas la GPU en paralelo a la CPU optimizaras el rendimiento. Esa CPU merece mas grafica.

Saludos.
Título: Vertex Programs
Publicado por: Grugnorr en 12 de Abril de 2004, 07:14:07 PM
 En un caso normal, o va mád rápido en GPU o van igual... y así liberas la CPU para física, IA....
Título: Vertex Programs
Publicado por: Lord Trancos 2 en 12 de Abril de 2004, 07:20:40 PM
  :lol: y si no quiero ni fisica ni IA ?
Título: Vertex Programs
Publicado por: seryu en 13 de Abril de 2004, 12:11:18 AM
 entonces tira de cpu, xqe es lo qe mas tirara normalmente.

en un mundo ideal, deberias permitir ambos casos.
Título: Vertex Programs
Publicado por: Aureal en 19 de Abril de 2004, 04:05:02 PM
 Buenas y saludos a todos ;)

una cosa que queria decir es que si os fijais en la web, usa compiled vertex array para pasar la geometria, esa extension es buena pero no en todas las tj va = de rapida :)

Por otra parte yo k tengo una gf 440 MX tb he visto k por nv vp va como el culo (6 fps k vergüenza y eso k es una extension de nv especifica para tjs de Nv xD) y por software va a 70 fps pero ara te digo k yo tengo un amd k6-2 a 500 mhz con bus de placa a 100 mhz (por ahora xD).

A una gf4 mx no le pidas efectos, baja un mogollon el rendimiento, si es cuestion de dibujar cosas simples si gana a una gf fx 5200 (y con creces, dibujando cosas simples mi pc es capaz de dibujar 8.5 millones de poligonos por segundo aceptablemente mientras k un 3 gh con una gf fx 5200 no pasa de los 3.5 millones y puedo demostrarlo xD)

Pero en cuanto empiezas a  usar efectos, sobre todo blending la gf4 mx se va literalmente al pedo. En estos casos si k le gana una FX 5200.

Penoso ¿verdad? xD

PD: Esos datos k he dado de millones de poligonos los he obtenido del programa OGLBench k seguramente mas de uno conocera y habra probado :)
Título: Vertex Programs
Publicado por: TheAzazel en 19 de Abril de 2004, 06:17:06 PM
 Yo si he notado una pequeña diferencia...
usando ARB: manual 1260fps y vertex 1330fps
usando NV: manual 1224fps y vertex no tira pq es una ATI

lo q puedes hacer es hacer un minibenchmark q dure muy poco y escoja automaticamente el modo mas rapido... como veo q lo kieres tan solo por rapidez (has dicho q no kerias ni ia ni na de na ) pues yo haria esto..asi siempre cogeras lo mas rapido y te kitas q el usuario tenga q andar haciendo predicciones del tipo..q es mas rapido? mi cpu o mi gpu?
jaja
pos na, saludos
Título: Vertex Programs
Publicado por: Thenend en 19 de Abril de 2004, 09:57:37 PM
 
CitarLamento contradecirte, Lord Trancos, pero las GF4 MX si aceleran los vertex shaders. Lo que no hacen son los pixel shaders 

En honor a la verdad tengo que decir que las GF4 MX no soportan ni pixel ni vertex shaders. Otra cosa es que los vertex shaders se puedan emular por software (de forma transparente) a buena velocidad y los pixel shaders no, ya que es lentísimo, con el rasterizador de referencia se puede comprobar.

Si usas vertex shaders y la tarjeta no los soporta, el driver se encarga de emularlos por software de una forma genérica. Pero si haces las operaciones por tu parte utilizando extensiones es normal que funcione mas rápido sin tener que emular nada ¿no?

¿Me equivoco?
Título: Vertex Programs
Publicado por: BeRSeRKeR en 19 de Abril de 2004, 10:15:54 PM
 Hola.

Si no recuerdo mal, la GeForce4 MX soporta vertex shaders 1.1

Saludos.
Título: Vertex Programs
Publicado por: Thenend en 19 de Abril de 2004, 10:31:12 PM
 Aqui no dice eso:

http://www.mikhailtech.com/articles/video/.../gainwardmx440/

CitarSo what's the deal with the GF4 MX ? It is a version of GeForce4 without pixel and vertex shader support, that's all.

ni aqui:

http://tech-report.com/etc/2002q1/geforce4...e4/index.x?pg=4

CitarThere aren't any pixel or vertex shaders in sight (unless you count the GeForce2's register combiners as primitive pixel shaders, I suppose).

CitarIt's possible NVIDIA might try to implement a software vertex shader. DirectX 8 has its own set of routines to handle vertex shader programs on the CPU if no vertex unit is present. NVIDIA might choose to write its own, highly optimized software vertex shader—perhaps making some use of the GF4 MX's fixed-function T&L unit—to help improve performance. However, the fact remains: the GeForce4 MX lacks a vertex shader.

Título: Vertex Programs
Publicado por: BeRSeRKeR en 19 de Abril de 2004, 10:49:33 PM
 Hola.

Esta es la respuesta de Brian Burke de nVidia a la pregunta:

Q: Digit-life is reporting that the Geforce4 MX Supports vertex Shader version 1.1. Does the 4 MX support Vertex Shaders through software emulation?

A:GeForce4 MX accelerates vertex shaders, and can run vertex programs, but with less overall performance than GeForce4 Ti. Some functions are executed on CPU, some on the GPU - a hybrid model.

Brian Burke
NVIDIA Corp.

Vamos que la GeForce4 MX  soporta vertex shaders pero con un set limitado. De ahí que su rendimiento no sea muy bueno.

Saludos.
Título: Vertex Programs
Publicado por: Thenend en 20 de Abril de 2004, 01:26:31 AM
 Ahí está el truco.

No tiene unidad de vertex shader pero ya sea DirectX o los drivers de nvidia intentan ejecutar los "vertex programs" lo mejor que pueden, usando la aceleración hardware siempre que es posible, claro.

Y como dices, el rendimiento no es muy bueno, por lo que en este caso el código que hace el cell shading "a mano" resulta más rápido que el que usa los VS  híbridos, emulados o lo que séa, de la GF4 MX.
Título: Vertex Programs
Publicado por: BeRSeRKeR en 20 de Abril de 2004, 01:57:53 AM
 ¡¡Efectivamenteeeeee. So la pregunta de Lord Trancos ha sido contestada pues!! (ole)

Saludos.