Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: zupervaca en 18 de Diciembre de 2005, 11:53:38 PM

Título: Shaders Y Tamaño Del Vertice
Publicado por: zupervaca en 18 de Diciembre de 2005, 11:53:38 PM
 he estado haciendo pruebas con los shaders en dx y ogl y en los dos renders me da el mismo resultado, mientras mas valores le meta al vertice mas lento va, no se si es por que aumenta de tamaño o por otro motivo ¿alguien mas le ha pasado algo parecido?

por ejemplo: en el test aquel de hace tiempo de 800 modelos si le meto 3 floats mas (la normal del vertice) me baja unos 10fps en dx y un par de ellos mas en ogl
Título: Shaders Y Tamaño Del Vertice
Publicado por: BeRSeRKeR en 19 de Diciembre de 2005, 12:38:31 AM
 Hola.

Me imagino que el que vaya más lento será porque cuantos más elementos tenga el formato de vértice, más ancho de banda consumirá. Hace tiempo leí que era conveniente mantener el tamaño del formato de vértice múltiplo de 32 bits. De hecho lo he revisado y esto es lo que he encontrado en la web de nVidia:

Citar35. What vertex size is optimal? Should vertices in a vertex buffer be padded to a specific size?
In general, the smallest vertex size possible should be used, as this helps AGP bandwidth and your memory footprint. Padding vertices to the next multiple of 32-bytes (so, a 40 byte vertex gets padded to 64 bytes) can slightly improve performance in the case of scattered memory accesses, but roughly sequential access will provide better performance and eliminate the need to pad. In general, padding is not recommended. Note that if padding allows you to use fewer vertex buffers by coalescing VBs with differing FVFs into one larger VB, padding may improve performance by reducing VB switching.

Saludos.
Título: Shaders Y Tamaño Del Vertice
Publicado por: zupervaca en 19 de Diciembre de 2005, 01:48:01 AM
 efectivamente cuando puse 3 floats mas para la normal me esperaba un aumento de velocidad ya que tenia 3 floats para las coordenas del vertice y 2 floats para las coordenadas de textura y tenia 20bytes por vertice, ahora tengo que tengo 32 bytes es cuando ha pegado el pequeño bajon :(