Noticias

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

Unity renderiza solo los objetos que la cámara ve?

Iniciado por xCarras, Marzo 02, 2017, 11:17:17 AM

Tema anterior - Siguiente tema
Marzo 02, 2017, 11:17:17 AM Ultima modificación: Marzo 02, 2017, 11:18:36 AM por xCarras
Hola soy nuevo y tengo unas dudas sobre como unity carga o renderiza los objetos en la escena. Creo haber leído algo de culling que renderiza los objetos que la cámara ve. Ahora viene mi duda. Estoy haciendo algo para móvil , entonces si por poner un ejemplo yo tengo un mapa gigante a lo rpg con 1.000 objetos en la escena pero que la cámara solo ve unos 10 a la vez, entonces no tendré problemas de rendimiento o si? Porque estoy trabajando en un runner isometrico pero no infinito, si no por niveles y no quiero una escena por cada nivel. Me gustaría poner todos los niveles en una misma escena para que el juego sea mas rápido y pases de un nivel a otro sin pantallas de por medio.

El Clip Range de la Cámara se encarga de no-renderizar los objetos que se encuentren más allá del valor Far.  En cuanto al Oclussion Culling, tienes los datos aquí: https://docs.unity3d.com/Manual/OcclusionCulling.html
 
Tu tarea como programador es decidir cómo te gestionas la carga y visualización de los niveles. Eso ya, a tu bola.

Entonces con esto no tendré problemas de rendimiento con lo que planeo hacer verdad?

Marzo 02, 2017, 12:46:28 PM #3 Ultima modificación: Marzo 02, 2017, 12:51:48 PM por Miguel_Angel
Esa misma estrategia la he usado yo, la de tener todos los niveles en la misma escena. simplemente haces invisibles los objetos que no quieras que se vean y los haces visibles cuando quieres que se vean. También puede usar capas y activarlas en el Culling Mask de la cámara, aunque esto tiene un limite de capas.. Debe de haber diversas formas de hacerlo.

Si tenes dudas lo mejor es realizar tus propias pruebas, agarra papel y lapiz, pone un nivel en la escena con los objetos estaticos como "static" , luego proba sin occlucion culling, el mismo con occlusion culling. Ahora mete 10 niveles, de igual forma que para un nivel testeá y chequea todo con el profiler o fijate el framerate que te dice las stats de Unity. Para agregar, si vas a hacer cosas para el movil lo recomendable es usar luz estatica (con el bake) si es que podes hacerlo. tambien usar vertex lighting en vez de pixel lighting y asi y asi.

Cita de: lightbug date=1488468212Si tenes dudas lo mejor es realizar tus propias pruebas, agarra papel y lapiz, pone un nivel en la escena con los objetos estaticos como "static" , luego proba sin occlucion culling, el mismo con occlusion culling. Ahora mete 10 niveles, de igual forma que para un nivel testeá y chequea todo con el profiler o fijate el framerate que te dice las stats de Unity. Para agregar, si vas a hacer cosas para el movil lo recomendable es usar luz estatica (con el bake) si es que podes hacerlo. tambien usar vertex lighting en vez de pixel lighting y asi y asi.
   


Gracias, probare como dices. Una duda mas que tengo. Es lo mismo renderizar por ejemplo un plano a un tamaño de 1-1-1 que el mismo plano por ejemplo 50-50-50
 
es decir, le va acostar mas trabajo renderizar el mismo objeto con los mismos poligonos cuanto mas grande sea?

Cita de: xCarras date=1488702257Gracias, probare como dices. Una duda mas que tengo. Es lo mismo renderizar por ejemplo un plano a un tamaño de 1-1-1 que el mismo plano por ejemplo 50-50-50
   
   
      es decir, le va acostar mas trabajo renderizar el mismo objeto con los mismos poligonos cuanto mas grande sea?
   


Uh me mataste, en lo referente al occlusion no cambia nada porque los volumenes que genera el bake serian mas grandes, en cuanto al proceso del render no estoy seguro, probablemente sea lo mismo (para esos valores(?)). Otra vez, si tenes dudas lo mejor es probar.
 
Un saludo

Etiquetas: