Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Dudas acerca del renderizado y rendimiento

Iniciado por ftejada, Agosto 15, 2015, 02:27:47 PM

Tema anterior - Siguiente tema
Hola a todos!! hago esta pregunta aquí porque no sabia en qué seccion hacerla. Tengo la siguiente duda y el siguiente problema...La duda: Unity renderiza los objetos que no ve la camara como si los estuviese viendo??? Lo pregunto por el siguiente problema de rendimiento.... Tengo un terreno de cierta embergadura y muchas piedras en dicho terrain, aparte de los arboles.... el tema está en que la tasa de fps es bajisima, 12/15 fps... y tengo un pc muy potente. Se que me podeis decir que por muy potente que sea, si tengo muchisimos objetos en escena llega un punto en el que tambien bajarian los fps. Pero la verdad es que no se si es normal lo que me ocurre y por eso estoy preguntando e indagando.He probado a quitar todas las piedras y los Fps suben significativamente, como era logico, pero no como quisiera. Pero haciendo pruebas me he dado cuenta que aunque la camara mire hacia el cielo sigo teniendo la tasa de fps bajisimas si tengo las piedras... De aquí viene la pregunta que hice antes... Pensé que Unity solo renderizaba lo que la camara enfocaba... ¿Es cierto o lo renderiza todo aunque no lo vea? La verdad es que mi duda de que quizas esté haciendo algo mal (configuracion o algo) viene por que con mi pc muevo perfectamente juegos como Skyrim (con muchos mod graficos), The Witcher... etc que tienen mundos inmensos y llenos de detalles y no se me resienten los FPS. Sin embargo con la escena que he hecho..... pues....  como he mencionado va bastante mal.Bueno espero vuestra ayuda. Un saludo y gracias. 

LOD, Oclusion Oculling, Bajar polígonos, Optimizar Scripts, Reducir luces, Distancia de visión, Detalle de las animaciones en la distancia...

Por defecto, Unity sólo utiliza el Frustum Culling, que no envía a la tarjeta gráfica los objetos que están fuera del campo de visión de la cámara. Aún así, sigue renderizando todo lo que esté dentro de este campo de visión aunque el jugador no pueda verlo. Para solucionar esto se utiliza el Occlusion Culling(Menú Window->Occlusion Culling), el cual debe ser preprocesado para un manejo más eficiente en tiempo de ejecución.Para mejorar aún más el rendimiento, como ya te han dicho, sería recomendable rebajar la cantidad de triángulos utilizados en los objetos 3D y a ser posible, hacer uso del LOD(Level of Detail) para reemplazar objetos detallados por otros de menos resolución cuando la cámara está lejos de estos.

Y el lightning. Baked/Mixed para la luz direccional y Baked la GI. Todo lo que no se mueve, a estático. Hacer algo muy grande que se vea bien es fácil. Que se mueva con buenos frames, un arte.

bajar los draw calls es muy bueno;http://docs.unity3d.com/es/current/Manual/DrawCallBatching.htmlhttps://youtu.be/tW3Jt7quQmQ
eature=oembed" frameborder="0" allowfullscreen="true">

Bye Bye



Gracias a todos por contestar.... He estado mirando lo que habeis puesto y me parecen interesantes lo que me habeis comentado.El Oclusion culling es exactamente lo que iba buscando y la respuesta a mi pregunta inicial.... pero lo del tema de los draw call me parece algo muy a tener en cuenta y profudizaré en ello.Hay cosas por otro lado que no veo que parezcan servir.. por ejemplo lo de poner estatico los objetos. He hecho la prueba de poner todas las piedras de mi escena a estaticas y no he visto diferencia en los fps. Y si ha habido ha sido tan minima que ni me he dado cuenta... con que supongo que no es ese mi problema. Creo que anda más por el lado del oclusion culling y puede que de los draw call... asi que voy a mirarlo bien y ha hacer algunas pruebas e indicaré algo cuando lo haga... Muchas gracias por vuestra ayuda....Saludos

Etiquetas: