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.htmlY 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).
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.
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.
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.
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.
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
Lamento contradecirte, Lord Trancos, pero las GF4 MX si aceleran los vertex shaders. Lo que no hacen son los pixel shaders :(
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.
En un caso normal, o va mád rápido en GPU o van igual... y así liberas la CPU para física, IA....
:lol: y si no quiero ni fisica ni IA ?
entonces tira de cpu, xqe es lo qe mas tirara normalmente.
en un mundo ideal, deberias permitir ambos casos.
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 :)
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
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?
Hola.
Si no recuerdo mal, la GeForce4 MX soporta vertex shaders 1.1
Saludos.
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=4CitarThere 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.
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.
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.
¡¡Efectivamenteeeeee. So la pregunta de Lord Trancos ha sido contestada pues!! (ole)
Saludos.