Enero 19, 2014, 02:48:14 PM Ultima modificación: Enero 19, 2014, 05:54:55 PM por DarkKRuleR
Buenas, pues tengo esto en el objeto controlador, evento draw:

with(objLight) {
    ... ... ...
    for (i = 0; i < 3; i += 1) { //todas hacen luz
        d3d_light_enable(HUD.numLight, true); d3d_light_define_point(HUD.numLight, x, y, 50, xxx, xxx);
        HUD.numLight += 1;
    }
    ... ... ...
}


el controlador hace, para cada objeto objLight, define una luz puntual en sus coordenadas x y. El juego es vista plataformas, así que x y coorresponden a coordenadas 2D prácticamente. Aquí la room:



La vista 3D será igual que como se ve en la room: el personaje es el cuadrado rojo, la luz es el cuadrado azul con la bombilla, y las lineas amarillas delimitan la sala. Aquí la imagen:



Como podéis ver, vemos al personaje, segun la room abajo del todo en el suelo (vemos como el suelo lo corta), y arriba la sala delimitada. El problema? la luz estaba en el centro de la sala, y como véis, al ejecutarlo la luz se situa... bueno, del centro para arriba es lo único que alumbra.

Si le sumo, por ejemplo, 400 a la y, pasa esto:



Parece correcto pero... no tiene sentido sumarle a la y por la cara, debo descubrir por que se le resta la y tanto... alguien le ve sentido? El rango es de 3000 en el caso de la imagen

Antes me funcionaba cuando dibujaba walls y floors con d3d_draw_floor, y comenzó a fallar cuando lo sustituí por primitivas haciendo vertice a vertice trianglestrips en vez de hacer draw de floors y walls, a lo mejor influye... pero la cuestion es que ayer mismo me funcionaba perfectamente.

Hola,

Cual es el valor minimo que necesitas sumarle al y para que la habitación se vea "bien" iluminada (no creo que sean 400), lo unico que se me viene a la mente de porque puede fallarte es porque definiste mal las normales cuando hiciste el escenario.

Saludos

Checa mi canal de Youtube para tutoriales y charlas sobre desarrollo de videojuegos.


WAHH, gracias! Era justo eso! Tenía mal definidas las normales en los muros (pensaba que las puse bien) y me olvidé cambiarlas en suelos y paredes... así se ve perfecto!



aunque no entiendo por qué el muro de la esquina inferior derecha no se ve (el de la izquierda sí). Quizás sea porque su y es mayor que 720, y antes jugué con ese número, pero me lo he mirado bien y no veo razón para que falle... dudo que podáis saber eso, quizás es error mío, o sí es algo que podéis saber, no lo sé. Por ahora la duda principal resuelta, nunca olvidar las normales :D