Foros - Stratos

Stratos => XNA => Mensaje iniciado por: blau en 23 de Noviembre de 2010, 04:57:38 PM

Título: Test de stress
Publicado por: blau en 23 de Noviembre de 2010, 04:57:38 PM
Bueno, tenia ganas de probar a hacer algo similar a un juego que probé hace mucho tiempo, en el que habían tropecientas navecitas pequeñas hechas de forma vectorial a base de lineas.

Esto no se mueve tan bien como el original, porque en tres dias no da para pulir pero no queda mal tampoco.

Video: http://www.youtube.com/watch?v=X2-7Y2oQ2P0

El caso es que optimizando, optimizando pase de las 15000 naves iniciales en mi super pc de casa,  a las 45000 a 60 fps, y aquí en la oficina en una integrada consigue las 15000.  

He pasado todos los cálculos que he podido al shader, y aun así estoy seguro que se puede optimizar mas, porque sigo pasando todos los vértices en cada frame con demasiada informacion.

He estado viendo funciones del tipo setfrequency, setfrequencyindex, y setfrequencyindexofinstancedata pero todavía no pillo como funcionan... aunque si tengo claro que no valen para la xbox donde parece ser que hay que usar vfetch.

¿Alguien sabe de algún tutorial o articulo al respecto a ser posible en castellano?


Un saludo

Título: Re: Test de stress
Publicado por: WaaghMan en 23 de Noviembre de 2010, 06:33:11 PM
http://create.msdn.com/en-US/education/catalog/sample/mesh_instancing

Cuando yo lo miré era para la 3.1, aunque creo que el instancing no ha cambiado apenas entre la 3.1 y la 4.0.

Sí, los setfrequency se usan en para instancing en Windows y el vfetch para Xbox. Yo, por facilitar la compatibilidad, tiré por el instancing por shader también en windows, creo recordar.

Si ya lo haces todo en un solo drawprimitives, no creo que el instancing te reporte beneficios, pero si no es así el incremento de rendimiento es brutal.