He estado siguiendo un curso de desarrollo de graficos 3d para el Game Maker, pero me he quedado atascado por un bug.
Consigo crear los objetos 3d y que se desplacen por el room, pero cuando intento que roten, toda la room rota con el.
¡Adjunto una foto con el fallo, el proyecto donde he probado hacer los objetos 3d y el tutorial que estaba siguiendo!
Hola.
Revisé tu proyecto y encontré que el error se debe el orden de las funciones en el evento "Draw"; lo he solucionado colocando la función "d3d_transfor_set_identity()" al final.
El tutorial está basado en una versión anterior a GMS, cuando no se podían aplicar matrices de transformación a la proyección, pero ahora se han hecho algunos cambios en la forma en que se maneja el 3D.
Yo para evitarme problemas, escribo el código de esta forma:
[gml]
d3d_set_projection( ... );
d3d_transform_set_identity();
d3d_transform_add_rotation...( ... );
//...
d3d_transform_add_translation( ... );
//Aquí se dibuja el objeto
d3d_transform_set_identity();
[/gml]
También modifiqué la posición en que se dibuja el planeta, para que pueda rotar sobre su eje. Y en vez de usar "depth" agregué la variable "z"; no te recomiendo usar "depth" como variable de posición porque después puedes necesitarla para definir el orden de ejecución de los códigos.
Dejo adjunto el ejemplo editado.
Hasta luego.
¡Gracias, creí que nunca me contestarían esta cuestión! :D
Ademas, observo esa función que has incluido de draw_text(x,y,"X: "+string(x)), que ya estaba harto de usar 2 draw_text.
Hoy no me iré a la cama sin saber algo nuevo. ;)
Hola tal vez estos videos pueden ayudarte yo aprendi mucho de 3d aqui aunque ya se me olvido :P son como 27 videos dedicados a 3d. Tutoriales Game Maker 3D: http://www.youtube.com/playlist?list=PLFD59DDC3F68BCAE4