Buenas, como siempre cuando tengo una duda acudo a los gurús a que me la resuelvan
Estoy usando un engine isometrico que me esta dando problemas (es una mierda de engine) cuando tiene que renderizar todos los elementos del escenario.
En el escenario tengo objetos de los cuales conozco su posicion (x y z) y su tamaño (alto ancho largo). Pues con estos parametros tengo que arreglar la clase del engine de mierda que hace la tarea de superponer objetos uno encima del otro.
Aquí un ejemplo de lo que he leido:
http://gamedev.stackexchange.com/questions/25982/how-do-i-determine-the-draw-order-in-an-isometric-view-flash-game
Esta imagen ilustra bien como hacerlo de forma facil:
http://i.imgur.com/919bb.png
Pero no vale cuando la posicion de tus objetos es variable en los tres ejes. Ahí ya entra el tamaño y la posicion para ordenarlos.
Imaginaros que tengo un tablero de ajedrez de 100x100 casillas. Con lo cual tenemos 100x100=10000 Objetos.
Tal y como lo hace el engine hace un bucle de esos 10000 mas otro bucle anidado para ordenar. Con lo cual los bucles suponen: 10000x99999 = 999990000.
Casi cien millones de comprobaciones cada vez que mueves un objeto. Imaginaros una pelota moviendose por el escenario, peta.
Esto no es optimo para nada. Me gustaría saber si alguien conoce algun algoritmo para esto. Algun genio habra tenido que hacerlo no?
Saludos.