Tema: Optimizar Unity o engines en general

Mensajes

  • blade75

    23 Abr 2014 18:05

    Mensajes: 311

    blade75 » 11 AGO 2014  14:12

    Hola

     

    Estoy interesado en hacer cosas con unity y con RV y una de las cosas que más echo de menos es la optimización del motor. He visto vídeos y leído foros y artículos sobre como crear/empezar un videojuego con esta herramienta. Me gustaría abrir este hilo para hablar de la forma de optimizar Unity o cualquier otro engine. Es decir, que mejoras/trucos se pueden hacer o tener en cuenta a la hora de afrontar el proyecto de un videojuego sobre cualquiera de sus aspectos: código, modelado, luces, renderizado, etc... Se que hay muchos expertos aquí y quizás con su experiencia (de cualquier campo) se podría aglutinar todos sus conocimientos y tener una buena base a la hora de empezar correctamente este tipo de proyectos.
    Si me lo permitís y para empezar, me gustaría saber si cuando se empieza a crear un nivel/scene tienes que tener el cuenta el tamaño de este. Se que el propio motor se encarga de cargar los objetos por ti , dibujarlos y ocultar los polígonos que no puedes ver, pero , como optimizas esto? como haces para que no poner demasiados objetos en pantalla y la distancia sea la optima? ensaño o error??¿ Siempre me he preguntado cuando las desarrolladoras hablan de: "...el juego esta en beta..pero queda optimizarlo.". Al final se trata de ir quitando objetos/polígonos hasta dar con el resultado? Supongo que habrá alguna buenas prácticas imprescindibles en la creación de videojuegos que todos debieran tener para que sea un buen software, que al fin y al cabo es lo que es.

     

    Gracias y saludos!

    Mi PC: I5 4790K OC 4GHz. Gigabyte G1 Gaming GTX970. 16 Gb RAM

    0 0
  • knack

    28 Jul 2014 21:01

    Mensajes: 1762

    knack » 20 AGO 2014  17:55

    Seria un hilo interesante y necesario.

     

    Aunque todo es optimizar, para mi optimizar es quitar cosas innecesarias por ejemplo los ojos de caracter pueden provocar una sombra y el calculo de esta y es innecesario con el cuerpo llega, y la sombra es indeferente. En el rift de momento para mi no es optimizar lo que hay que hacer es pasar por la piedra todo. Aunque ciertamente destrozarlo para que vaya bien en el hardware mínimo compatible también es optimizar.

     

    Sobre el tema de las distancia hay la distancia de visionado como todos sabéis que es hasta donde va renderizar lo que tenemos en frente y tambien puedes configurar el LOD para cada mesh o por grupos que es el nivel de detalle que tambien se puede configurar determinando la distancia, otra vez utilizando los ojos de un hipotetico caracter seguramente salvo que lo tengas a 1 metro de ti lo puedes configurar para que muestren pocos poligonos y a medida que lo tengas más cerca y necesites más definición tenga más detalle + poligonos.

     

    Si quieres algo de eso tienes que irte a caracteres modulares, y otros objetos igual si son complejos y cierto tamaño y hay partes que a distancia consideras que a cierta distancia tendria que verse bastante bien pero hay otras partes de ese objeto que tiene muchos poligonos y no necesitas que los represente salvo que estes cerca, vamos no necesitan definicion pues puedes separarlo, por ejemplo una casa que quieras que sea bien, pero tienes unos marcos de las ventanas currados y muy bonitos con cierta cantidad de poligonos pues no hagas la casa un objeto unico, trocealo así puedes cambiar el LOD a ciertas partes.

     

    Y un largo etc.

     

    De todas formas lo que más acribilla el rendimiento en stereo son la mayoria de efectos no el tema poligonos, para mi lo más putada por que a todos nos gusta estar sumergidos y tener efectos a nuestro alrededor y es lo que más me repatea de todo esto, cualquier efecto medianamente complejo hay que cepillarselo y los otros poco más que contar el numero de particulas las sombras todas precocinadas y todo lo que provoque calculos de luz fuera, son calculos que consumen mucho y stereo lo hacen para cada ojo, tesallation que se lo imagine el jugardor, el antialing lo justo y si no vas forzado se puede aumentar.

     

    así por encima, es tema muy complejo.

     

    (no soy un dev pro por cierto)

    0 0
  • NoxWings

    22 Mar 2014 12:26

    Mensajes: 1009

    Visores

    HTC Vive
    Valve Index
    NoxWings » 20 AGO 2014  19:11
    "knack"Seria un hilo interesante y necesario.

    Aunque todo es optimizar, para mi optimizar es quitar cosas innecesarias por ejemplo los ojos de caracter pueden provocar una sombra y el calculo de esta y es innecesario con el cuerpo llega, y la sombra es indeferente. En el rift de momento para mi no es optimizar lo que hay que hacer es pasar por la piedra todo. Aunque ciertamente destrozarlo para que vaya bien en el hardware mínimo compatible también es optimizar.

    Sobre el tema de las distancia hay la distancia de visionado como todos sabéis que es hasta donde va renderizar lo que tenemos en frente y tambien puedes configurar el LOD para cada mesh o por grupos que es el nivel de detalle que tambien se puede configurar determinando la distancia, otra vez utilizando los ojos de un hipotetico caracter seguramente salvo que lo tengas a 1 metro de ti lo puedes configurar para que muestren pocos poligonos y a medida que lo tengas más cerca y necesites más definición tenga más detalle + poligonos.

    Si quieres algo de eso tienes que irte a caracteres modulares, y otros objetos igual si son complejos y cierto tamaño y hay partes que a distancia consideras que a cierta distancia tendria que verse bastante bien pero hay otras partes de ese objeto que tiene muchos poligonos y no necesitas que los represente salvo que estes cerca, vamos no necesitan definicion pues puedes separarlo, por ejemplo una casa que quieras que sea bien, pero tienes unos marcos de las ventanas currados y muy bonitos con cierta cantidad de poligonos pues no hagas la casa un objeto unico, trocealo así puedes cambiar el LOD a ciertas partes.

    Y un largo etc.

    De todas formas lo que más acribilla el rendimiento en stereo son la mayoria de efectos no el tema poligonos, para mi lo más putada por que a todos nos gusta estar sumergidos y tener efectos a nuestro alrededor y es lo que más me repatea de todo esto, cualquier efecto medianamente complejo hay que cepillarselo y los otros poco más que contar el numero de particulas las sombras todas precocinadas y todo lo que provoque calculos de luz fuera, son calculos que consumen mucho y stereo lo hacen para cada ojo, tesallation que se lo imagine el jugardor, el antialing lo justo y si no vas forzado se puede aumentar.

    así por encima, es tema muy complejo.

    (no soy un dev pro por cierto)

     

    Sip, es un tema que da para bastante. Hay muchas cosas que puedes optimizar.
    A ragos generales LOD como bien has dicho y Mipmapping (el mismo concepto de LOD pero para texturas). Añado otro par de idea/conceptos ya conocidos en la industria:

     

    Al intentar usar las menores sombras dinamicas posibles si el motor que usas tiene la opción, igual compensa usar el path de "forward rendering" en lugar de "deferred rendering" ya que utiliza menos recursos de base si hay pocas luces dinámicas, como poco merece la pena probarlo a ver. Deferred rendering es optimo para soportar mas complejidad de luz ya que la degradación de rendimiento por luz es menor que con el forward, sin embargo al no utilizar ninguna o solo una o dos probablemente funcione mejor "forward".

     

    Por otro lado, siempre esta bien ajustar el "level streaming" para descarge zonas de un mapa que serían imposible ver desde ciertos sitios. Por lo menos así le quitas de un plumazo una sección del nivel al proceso de culling y eso para RV vendrá bien la verdad.

    I7 6700K / MSI 1070 Gaming X / MSI Z170 Gaming M5 /  16GB RAM DDR4 3000Mhz / Aerocool X-Strike 800W Gold

    0 0
  • albertopina1

    17 Nov 2013 19:40

    Mensajes: 3244

    Visores

    Valve Index
    albertopina1 » 21 AGO 2014  21:16

    De hacer juegos a campo abierto mejor olvidarse, al menos los indies, ni follaje, ni arboles, ni nada de eso, las texturas ponerle el tamaño adecuado, para un modelo pequeño no hace falta que tenga texturas de 4 mb, utilizar pocos materiales, y shaders muy básicos, para desarrolladores de a pie es mejor empezar con habitaciones y pasillos, y darle a las cámaras poca visión, en habitaciones con una vision de 50m nos sobra. No hace falta caer en el LowPoly pero si tener muy en cuenta la cantidad de poligonos de los modelos, hacer atlas a las texturas, combinar Meshes, un buen occluder static...

    Su pérgola en Murcia y Alicante al mejor precio en www.pergomur.com

    0 0
  • blade75

    23 Abr 2014 18:05

    Mensajes: 311

    blade75 » 26 ENE 2015  9:31

    Hola

     

    Reabro este hilo a ver si seguimos aportando más cosas interesantes :).

     

    Por lo expuesto podría resumirse:

     

    - Usar diferentes acabados de mesh para los objetos dependiendo de la distancia a la cámara (mas lejos menos polígonos). Lo mismo para texturas (Mipmapping )
    - Usar objetos modulares (objetos que pueden tener diferentes partes con diferentes acabados) en vez de un objeto con muchos polígonos a distancias largas.
    - Quitar objetos innecesarios
    - Tener claro que efecto usar ya que algunos  consumen mucho (sobre todo los que afectan a la luz)
    - Dependiendo del número de sombras dinámicas usar forward  rendering en vez de deferred rendering ya que utiliza menos recursos de base.
    - Ajustar el level streaming para que no se cargue zonas (objetos) que no se veran. Supongo que si estas en una casa grande y entras en una habitación: descargar el resto de la casa que no ves y volver a cargarla cuando salgas (la parte que visible).
    - Ademas de todo esto están las pruebas ensayo-error que son a última instancia las que habrá que hacer para ir ajustando cada una de las cosas que se han expuesto aquí.

     

    La verdad es que hay algunos conceptos nuevos para mi así que me toca investigar más a fondo.

     

    Cualquier cosa que se añada sería bienvenida.

     

    Muchas gracias a todos, me van quedando las cosas más claras

    Mi PC: I5 4790K OC 4GHz. Gigabyte G1 Gaming GTX970. 16 Gb RAM

    0 0

Usuarios navegando por este foro:

2 Anónimo