Marzo 02, 2013, 04:10:23 AM Ultima modificación: Marzo 04, 2013, 09:17:18 PM por Iros
Buenas, sigo con el 3D y a medida que avanzo encuentro cada vez más problemas xD.

Mi problema es que si bien he logrado que la habitación esté oscura, tengo un par de problemas con el tema de los "focos" de luz y es que por más que ponga pegado un foco a una pared, ésta se ve toda oscura, lo mismo pasa con el techo y el piso. Otro problema es que la luz atraviesa las paredes y se van a otra habitación, también noté que el rango del objeto "luz" se limita al primer objeto y pierde luminosidad.

El código que uso es este:

Draw obj luz:
[gml]d3d_light_define_point(1,x,y,10,500,c_white);
d3d_light_enable(1,true);
d3d_set_lighting(false);
d3d_draw_ellipsoid(x-5,y-5,5,x+5,y+5,10,-1,1,1,35);
d3d_set_lighting(true);[/gml]

Create obj_player:
[gml]d3d_set_lighting(true);
d3d_set_fog(false,c_black,1,7000);[/gml]

Imágenes:
http://s2.subirimagenes.com/imagen/8331199juego01.png
http://s2.subirimagenes.com/imagen/8331209juego02.png

La verdad que no se cual es el problema, he intentado convertir las paredes en bloques, de esa forma en la primer habitación se ve bien, pero en el resto ya no. También traté de convertir el techo y el piso en bloques pero fue el mismo resultado. La verdad que ya no se que más hacerle. Si alguien sabe como solucionar el problema se lo agradecería.

Desde ya, muchas gracias.

Me pasó numerables veces, mi solución fue mandar el 3d nativo de game maker a chupar mandarinas y usar una dll. O también podrías no usar luces en absoluto, pero no creo que quieras eso




¿Y qué DLL se podría usar para hacer eso? Yo vi una que era Ultimatedll o algo así pero creo que era para importar modelos o cosas así. También estaba Ogre3D pero no me convence, digamos que no es lo que busco.

La ultimate3d sirve, es muy facil de usar, te permite importar modelos con texturas UV, las luces le funcionan bien, sistema de colisiones interno, te la recomiendo mucho. En la página hay un par de ejemplos, la tech demo te muestra las diferentes cosas que se pueden hacer con ella, hasta tiene sistema de iluminado per pixel y casteo de sombras




Pues yo sí logre hacer funcionar las luces en 3d, aunque ya estoy algo oxidado en ese tema y las imágenes no se ven así que no se exactamente cual es el problema, intentaré hacer algún ejemplo para eso.

Porcierto si se trata de 3d usa gm8.1, que tiene aceleracion por hardware, luz ambiental y puedes desactivar el zbuffer para dibujar ciertas cosas y luego volverlo activar.

Gracias por las respuestas, ahora pruebo Ultimate3D a ver que onda, en cuanto al GM 8.1, voy a ver si me gasto los $200 para la licencia ahora que puedo xD.

Como gustes aunque si vas a comprar mejor studio. También creo que gm8.1 es gratis si ta tienes gm8.

Una cosa es tener GM8 PRO y GM8 Crack xD. ¿Cuál vendría siendo la diferencia entre GMS y GM8.1 sacando el tema de HTML5 y Android (a demás de que el GMS sale unos 400 USD y GM8.1 sale 39.99 USD) ?

Mmm... la principal diferencia creo que sería que en GM8, el GML es interpretado, y en GMS es compilado, lo que lo hace mucho más rápido

Voy a ver si me alcanza el dinero para el GMS.

Ahora les comento como "solucioné" el problema de iluminación.

1º Creé las paredes como bloques.
2º El "ind" de d3d_light_define_point y d3d_light_enable lo defino con la ID del objeto, de forma tal que me cree un foco por objeto.
3º Para que alumbre el techo y el piso (aunque no es muy eficiente, por eso "solucioné" entre comillas xD) desplazo el punto focal y le varío el rango asignándole dos teclas.

Doy como "SOLUCIONADO" el tema, si resuelvo el 3º punto edito este mensaje y pongo la solución para futuros makeros 3D xD

Pues bien, me parece que tu solución es horrible xD. Poner luces en todos los objetos ademas de ser lento no tiene mucho sentido por que el chiste es tener diferentes luminosidades en cada objeto dependiendo de la distancia a la luz, hacer lo que dices es casi como no tener luces.

Mmmm lo unico que se me ocurre con tu problema de momento es que no estás llamando "d3d_set_hidden(true)" al inicial la 3d o quizás no estás usando el color de dibujo en blanco todo el tiempo, comenta si tienes hecho lo anterior.

Como segunda cosa, no necesitas activar tus luces cada step, es decir basta con usar esto en create.
[gml]d3d_light_enable(1, true);[gml]
y esto en draw.
[gml]d3d_light_define_point(1,x,y,10,500,c_white);[/gml]

Intenta probar las luces sin dibujar el elipsoide (que no debería dar ningún problema), y como ultima cosa no se que tan bueno sea activar y desactivar toda la iluminación varias veces por step pero creo que eso ya va por tu cuenta.

Por ultimo la versión standard de gm:Studio que sería como el equivalente a 8.1 cuesta 49$ y también exporta a mac ya de allí va subiendo dependiendo de tus necesidades.

Cita de: penumbra en Marzo 04, 2013, 02:52:07 AM
Mmm... la principal diferencia creo que sería que en GM8, el GML es interpretado, y en GMS es compilado, lo que lo hace mucho más rápido
No aún gm studio sigue siendo interpretado solo que en c++ y con ciertas optimizaciones, pero se supone que en la version 1.2 que no debe tardar mucho en salir será compilado con llvm y la ejecucion de código según dicen será una 10 veces más rápida.

Las ventajas que tiene gmStudio (aparte de múltiples exportes) son funcionalidades para hacer juegos multijugador, un mejor editor de rooms, mejoras en el sistema de sonido, funciones varias, más rápido, svn, cosas para mayor comodidad como el uso de "++" y "--" o poder asignar un valor a variables temporales en cuanto las creas "var a=5;", también se pueden abrir múltiples ventanas de códigos (muy comodo!). Y se supone que lo mejor esta por venir!, yo lo que más espero son los shaders y la compilación en llvm que vienen en la próxima versión grande.