Contador de triángulos

Desde hace un tiempo tenía pensado incluir un contador de triángulos para observar el comportamiento de los modelos en el juego, así podía ir con una idea más precisa a la hora de establecer el número máximo de polígonos en las mallas. Obtener el conteo es fácil: window->getTriangleCount().
Los modelos que más polígonos tienen son los árboles, tres de ellos juntos alcanzan los 300k triángulos y los cuadros por segundo bajan a 100 o menos (en una Geforce 9500). Lo cual me hace pensar que podemos fijar el límite en esa cantidad, no más de 200k polígonos visibles para lograr unos 60 cuadros por segundo en una Geforce 9500/HD2000 con todas las opciones de calidad al máximo. Lo cual se consigue organizando adecuadamente el escenario, para no cargar demasiado toda el área o alguna parte en especial.
Y tengo que decir que me he quedado muy sorprendido, al parecer Ogre están muy bien optimizado, pues con menos que eso apenas alcanzo 20 cuadros en Regnum Online. Aún me faltaría hacer alguna prueba con las sombras activadas, pero eso será más adelante.

Comentarios

  1. Las sombras siempre te destrozan. Pero oye, me parece que esos árboles suenan demasiado complejos! Cada hojita tiene sus propios polígonos? Siempre quise probar hacer árboles con ramilletes de hojas en un solo "billboard", y el modelo del árbol solo con el tronco y ramas. Es complicado creo (shaders para apuntar los billboards a la camara y unos especiales para producir la sombra de las hojas) pero te puede reducir la cuenta un montón. Me pica la curiosidad. Me dejas darle un vistazo a tu modelo?

    ResponderEliminar
  2. Pues no, este tiene las hojas falsas, o sea que un solo polígono tiene varias hojas hechas de una sola textura con transparencia. De lejos no se nota, epro de cerca el efecto es pésimo y ni hablar de las sombras, Ogre se hace un lío con los alpha y las sombras o yo estoy configurando muy mal el material.
    Si no ando muy errado, puedes ver los modelos aquí: http://yorik.uncreated.net/greenhouse.html
    Concretamente estoy usando beech y elm, pero el elm (olmo en español, supongo) está mejor optimizado, como verás en unas imágenes que voy a postear hoy mismo, si me dan un chance aquí en la oficina.

    ResponderEliminar
  3. Que memorias, yo había estado ahí buscando árboles para mi demito el año pasado. Las hojas estan bien, tienes razon. En el Olmo el tronco tiene demasiadas subdivisiones. Si le quitas un nivel, ya eso es la mitad de las caras (20k->10k). Un sistema de ramitas tiene 5k caras y apenas se ve escondido entre las hojas. El otro tiene casi 10 mil caras en ramitas flacas. Ambos tienen objetos y materiales multiples. Estan hermosos para un render, pero la verdad yo creo que esta muy pesado para un juego. Digo, yo soy muy "old-skool" para esas cosas. Yo creo que contenido tan detallado es mejor sacrificarlo para poder hacer un juego mejor, sobretodo gente como tu y yo sin tiempo y sin 500 artistas para jugar con estas cosas. Si te interesa ir por ese lado quizás yo puedo jugar con eso. Sería mi oportunidad de contribuir finalmente :)

    ResponderEliminar
  4. Vaya, 10 mil caras es el límite que le he puesto a mi artista para los edificios sin importancia. Eso es demasiado, no me extraña que me den error con las sombras (algo acerca de que los índices de 16 bits se exceden). Si pudieras arreglarlo pues estaría muy bien, de veras necesito un poco de vegetación en los mapas!

    ResponderEliminar
  5. Pues bien, voy a ver que puedo hacer. Es oportuno porque estoy de cabeza aprendiendo Blender en estos dias. Oye, y has probado ya el PagedGeometry plugin para Ogre3D? Eso fue lo que yo usé para poner 10 mil arboles en mi mapa en el demo. Unos arboles de baja cuenta de triángulos, claro está. Pero para una laptop con intel integrado no estaba mal.

    ResponderEliminar
  6. Sí, barajé esa opción, pero después pensé que no valía la pena, porque al cambiar al modo isométrico no me servía para nada. Así que decidí implementar alguna optimización básica basada en instancias de las geometrías, que funciona para la vista en tercera persona y también para la isométrica. Pero eso será más adelante.

    ResponderEliminar

Publicar un comentario