:GM8:
hola ando haciendo mi juego 3d y ya he visto varios juegos en 3d (hechos en gm) en que los objetos a distancia del jugador no aparecen hasta que te acercas a ellos.
segun he sabido esto es para que un juego no se haga lento y que solo dibuje los objetos cercanos que si se van a usar o interactuar
habra un codigo en GML o un consejo para poder hacer esto y que mi juego no vaya lento (por que mi juego lo quiero hacer con demasiados objetos)
gracias.
En el evento Draw, antes de dibujar, coloca el distance to object :D .
if(distance_to_object(obj_Camara) < 512)
{
d3d_model_draw(PinoModelo,x,y,0,sprite_get_texture(spr_PinoTextura,0))
}
En el ejemplo estoy dibujando un modelo, pero tambien funciona si estas dibujando cualquier otra cosa 8) .
Recorda poner al objeto que funciona como camara, o el objeto que funcione como el jugador. La distancia va a variar dependiendo de que escalas uses en el mundo :P
Si probas con otras distancias, podes usar LODS de modo que ha cierta distancia podes poner un nuevo modelo con menos cantidad de vertices.
if(distance_to_object(obj_Camara) < 512)
{
d3d_model_draw(PinoModelo,x,y,0,sprite_get_texture(spr_PinoTextura,0))
}
else
{
d3d_model_draw(PinoModeloLOD,x,y,0,sprite_get_texture(spr_PinoTextura,0))
}
Espero que te sirva ;D !
________
EDITO: Para hacerlo aun mas exacto, esta este sctipt creado por Tristiano77, d3d_point_distance(x1,y1,z1,x2,y2,z2), detecta la cercania a?adiendo el eje Z
Link: http://gmc.yoyogames.com/index.php?showtopic=344960