Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Compresión De Vértices Con Demo

Iniciado por Haddd, 08 de Junio de 2004, 08:06:10 PM

« anterior - próximo »

Haddd

 Bueno, estoy haciendo pruebas y la verdad es que me sorprende un poco lo que veo. Ahora mismo puedo renderizar el terreno de 3 formas diferentes:

1.Fuerza bruta:todo de golpe
2.A cachitos:todo de golpe por cachos
3. QuadTree

Evidentemente la mejor es la 3, pero es curioso que la 1 no gane a la 2...pero eso ya es agua pasada

Pues lo siguiente que he hecho ha sido comprimir los vértices. Así paso de:

Posicion: float x,y,z = 12 bytes
Textura:  float u,v   = 8 bytes

A

Posicion: udec3 = 4 bytes
Textura:  short2n   = 4 bytes

Es decir, que paso de 20 bytes por vértice a 8.

Pues se gana, y yo creía que no tanto. En mis pruebas, ejecutando el programa y sólo pulsando F1 y F2, obtengo estos FPS:

Sin comprimir
91 FPS

Comprimido
140 FPS

En fin, que hay veces que nos matamos por ganar FPS y fíjate por aquí podemos ganar bastante.

Bueno, deciros que necesitais una tarjeta que soporte shaders 2.0 y que en la demo vereis que al pasar del modo normal al comprimido, los vértices se mueven un poco y dan un efecto muy feo. Esto es culpa mía, porque podría hacer que las posiciones fueran números enteros pero no lo he hecho por pereza.

Ese enlace

Feliz demo.

Por cierto, dejad ya ese post que todos sabemos!!

fiero

 ¿Qué es eso de udec3? No lo encuentro en la ayuda.

Si va más rápido con los vertices comprimidos, es que se almacenan en ram normal y al llamar a DrawPrimitive se pasan a ram de video. Por eso tambien va más rápido al enviar la geometria a cachos. No hay otra explicación.

un saludo
www.videopanoramas.com Videopanoramas 3D player

BeRSeRKeR

 Da el siguiente error en el log:

No encuentro tierra
No encuentro hierva
No encuentro nieve


Seguramente es que no encuentra las texturas. Aunque en realidad sí están, en el directorio "graf". He probado a meter las texturas en el directorio raiz, donde está el ejecutable pero sigue dando el error.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Haddd

 perdón por el error :(

Ya está corregido en el mismo link.

Fiero, que los vértices están en ram de vídeo, puesto que los he creado POOL_MANAGED. Además si estuvieran en vídeo, el modo a cachos iría más lento, pq haría:

copiar el cacho de vértices de ram a vídeo
dibujar
esperar a que termine porque tiene que acceder a la memoria de vídeo para poder copiar
copiar el cacho de vértices de ram a vídeo
dibujar
esperar a que termine porque tiene que acceder a la memoria de vídeo para poder copiar
...

Acabo de hacer la prueba con SYSTEMMEM y me da 5 FPS!!! Así que está PROBADO que los vértices están en memoria de vídeo.

No creo que el driver le permita copiar en memoria de vídeo si el hard está trabajando.

TheAzazel

 Lo he probado y el mas rapido el es 3º metodo... como era logico, y si, no hay diferencia entre el 1º y 2º..de hecho me baja unos pocos frames (pero vamos...3 de 160 como q da igual) lo q no cambia muso es usando la compresion descompresion... debe ser q en mi sistema de video(es una 9700pro) el cuello de botella anda por otro lado no?

DraKKaR

 ¿Porqué iba a ser más rápido enviarlo todo de golpe que enviarlo a cachitos? Creo que esto ya se comentó en otros posts, y la conclusión era que la tarjeta se atreganta con paquetes de un número demasiado elevado de vértices (como imagino que será ese terreno) y que la mejor forma es enviarlo en batches de 200 a 2000? tris?

BeRSeRKeR

 Resultados:

Enviar de golpe todo sin compresión: 157fps
Enviar en batches sin compresión: 196fps
Octree sin compresión: 313fps

Enviar de golpe todo con compresión: 208fps
Enviar en batches con compresión: 200fps
Octree con compresión: 323fps

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.