Resultados 1 al 7 de 7

Tema: Sombras en Blitz3d

  1. #1
    Fecha de ingreso
    May 2008
    Mensajes
    632

    Sombras en blitz3d

    Uno de los tantos temas debatidos con Blitz3d es que carece de un sistema de sombras que sea fácil de implementar por parte del usuario novel. Si bien es cierto que otros sistemas de desarrollo traen un botón o permiten el uso de funciones prefabricadas para alcanzar este objetivo, en Blitz3d es imposible hacer esto tratando de evadir el hecho que el sistema debe ser implementado desde cero mediante escritura de código.

    Claro esta que puede adquirir lib externas, pero la verdad lo que se trata es de que aprendamos a desarrollarlas nosotros mismos.

    Existen dos tipos de sombras, unas llamadas volumetricas y otras llamadas cartográficas, yo por ahora explicaré cómo hacer las cartográficas, iniciativa que tome debido a varios usuarios que me escribieron respecto a la duda.

    En teoría los elementos que intervienen en una sombra cartográfica son dos cámaras, una que visualiza el mundo desde la perspectiva del jugador y otra que hace de foco de luz, la que hace de foco, el contenido que visualiza lo dibuja en buffer de la textura usada para trabajo esa sombra.
    Código:
    Graphics3d 800,600,32,0.
    
    Setbuffer backbuffer().
    
    Global xscale#=1*(.8/3).
    
    Global sombra = createtexture (256,256,16+32).
    ===============================
    Ambientlight 64,64,64.
    
    Global cámara = createcamera ().
    
    Global terreno = createcube ().
    
    Global sol = createlight().
    
    Positionentity cámara, 0,6,-12.
    
    Scaleentity terreno, 50,1,50.
    
    Rotateentity sol, 90,0,0.
    
    Global cubo = createcube ().
    
    Positionentity cubo,0,4,0.
    
    Entitycolor cubo,255,0,0.
    ==================================
    Global s_cámara = createcamera ().
    
    Cameraviewport s_camara,0,0,256,256.
    
    Cameraprojmode s_camara,2.
    
    Camerazom s_camara.3.
    
    Positionentity s_camara,0,200,0.
    
    Hideentity s_camara.
    
    Entitytexture terreno,sombra.
    
    Repeat tturnentity cubo,1.1,0 tpointentity s_camara,cubo tactualizar() trenderworld t tflip t.
    
    Until keyhit(1).
    
    End.
    
    Function actualizar() tsetbuffer texturebuffer(sombra) tcolor 255,255,255 trect 0,0,texturewidth(sombra)+1,textureheight(sombra)+1 tsetbuffer backbuffer() tshowentity s_camara thideentity cámara tentitycolor cubo,64,64,64 tentityfx cubo,1+8 t trenderworld() tcopyrect 0,0,256,256,0,0,backbuffer(),texturebuffer(sombra) tentitycolor cubo,255,0,0 tentityfx cubo,0 t tfor s=1 todo countsurfaces(terreno) surf=getsurface (terreno, s) for v=0 todo countvértices(surf)-1 tformpoint vertexx(surf),vertexy(surf),vertexz(surf),terreno,s_camara vertextexcords surf, (tformedx()/xscale#)/32+0.5,1-((tformedy()/xscale#)/32+.5) next tnext t t t thideentity s_camara tshowentity cámara t t.
    
    End function.


    Espero esto sea de utilidad. Un saludo.
    Última edición por Yue; 28-01-2011 a las 00:53
    "No son ni estrellas ni í*dolos, son solo gente común que quiere hacer historia"

  2. #2
    Fecha de ingreso
    Dec 2010
    Mensajes
    1,668

    Sombras en blitz3d

    Como siempre blizt3d con otro de sus códigos que me hacen romper la cabeza. Pero alabados sean, gracia a ellos aprendo mucho. Gracias.

  3. #3
    Fecha de ingreso
    Oct 2016
    Mensajes
    227

    Sombras en blitz3d

    Buenas tardes, acabo de leer el código y lo encuentro muy interesante, pero poco práctico porque solo sirve para casos en los que no haya muchos focos de luz, ¿no hay forma de mostrar sombras de manera más sencilla?
    Imaginad un mundo completo, con sus casas, fuego, farolas, la luz que emite la magia de los ataques de los enemigos, ¿En serio tenemos que crear una cámara por cada luz que haya para qué proyecte una sombra y programarla? Me veo escribiendo el código en plan:
    ShowEntity S2058473_Camara
    HideEntity Cámara.

    Imposible.

  4. #4
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,651

    Sombras en blitz3d

    Imaginad un mundo completo, con sus casas, fuego, farolas, la luz que emite la magia de los ataques de los enemigos, ¿En serio tenemos que crear una cámara por cada luz que haya para qué proyecte una sombra y programarla?
    He estado buscando soluciones a lo que necesitas, y no he encontrado nada medianamente cómodo. Vaya, sí, espera. He encontrado una cosa.

    No usar un motor de hace 10 años.

  5. #5
    Fecha de ingreso
    Oct 2016
    Mensajes
    227

    Sombras en blitz3d

    Buenos días.

    Para el tema de las luces si es cierto que es bastante complicado, al igual que para algunas otras cosas como las colisiones de objetos MD2, que no detectan los polígonos sino una caja o cilindro donde va metido el objeto y así las colisiones no son tan precisas, pero bueno, siempre puedes exportar tu objeto en 3DS (con sus limitaciones porque tampoco puedes animar una malla con huesos en ese formato) y asunto solucionado.

    Ayer estuve aprendiendo cosas sobre Unity y no creas que no, que al final un día de estos me término pasando a él. Lo que me echa para atrás es que usa 3 o 4 lenguajes de programación diferentes y debe de ser complicado aprender a programar desde cero, aparte que me parece una perdida de tiempo cuando ya conoces más o menos el Basic. Un saludo.

  6. #6
    Fecha de ingreso
    Apr 2002
    Mensajes
    14,651

    Sombras en blitz3d

    Conocer lenguajes nuevos no es una pérdida de tiempo, hombre, porque no sustituyes lo que ya sabes, sino que lo amplías. Además, esos nuevos lenguajes no sólo te van a permitir hacer cosas nuevas que BASIC no, sino que además lo podrás hacer de manera mucho más rápida. Necesitas salir de tu zona de confort, porque, aunque creas que eso alargará tu tiempo de desarrollo, será todo lo contrario: si te constriñes a tecnología anticuada, te vas a encontrar con un montón de callejones sin salida y vas a perder mucho tiempo para salir de ahí.

    Todo esto te lo digo para qué te sea más fácil seguir con tu proyecto, ¿eh? Que yo no me llevo comisión de nada. Seguramente, para cualquier cosa qué quieras hacer en tu juego, haya alguien que ya lo haya hecho, y, además es probable que haya compartido ese código. Con el tiempo aprenderás a descifrar lo que hacen esas líneas, y con un poco más, a alterarlas para qué hagan lo que tú quieras, y con más tiempo, a programar tú mismo lo que necesites.

  7. #7
    Fecha de ingreso
    Oct 2016
    Mensajes
    227

    Sombras en blitz3d

    Buenos días, tienes toda la razón, al final me has convencido y he ido a instalar Unity, el problema está en que estoy usando un Netbook Acer Aspire One 532h-2Bb, con 1gb de RAM, una CPU a 1.66ghz y Windows XP y Unity no es compatible con Windows XP, además de que pide demasiados requisitos.

    Con Blitz no ocurre eso. Puedes desarrollar tus videojuegos en cualquier PC, incluso en Netbook, en cualquier sistema operativo y consume muy pocos recursos, casi ninguno, por lo que puedes aprovechar toda la potencia de tu PC o Netbook para él videojuego.

    Volviendo al tema de las sombras, estoy creando luces en Blitz3D y, aunque no estoy usando sombras aún, deberían de verse de alguna manera, me explico, aunque no se vea la sombra en sí, los objetos deberían de impedir que la luz los atravesase, de tal manera qué el objeto que está detrás de otro se viese que está a la sombra, porque tiene a otro delante que impide que la luz le de, pero no lo hace, los atraviesa y da a todos los objetos por igual, ¿por qué?
    El caso es que he creado una luz en 3DSMax para ver si me hacía lo mismo y si hace lo mismo, ¿pero por qué? ¿sabeis cómo puedo solucionarlo?
    Un saludo.

Temas similares

  1. Blitz3d
    Por maccafio en el foro Videojuegos
    Respuestas: 0
    : 04-08-2013, 17:27
  2. Blitz3d
    Por maccafio en el foro Videojuegos
    Respuestas: 3
    : 18-06-2011, 07:22
  3. Blitz3d
    Por pab0 en el foro Videojuegos
    Respuestas: 1
    : 07-06-2010, 03:53
  4. Blitz3d
    Por depredador en el foro Quieres presentarte
    Respuestas: 1
    : 27-03-2009, 23:44
  5. Duda usando sombras con mapa de sombras
    Por J-J en el foro Render, Iluminación y Cámaras
    Respuestas: 3
    : 05-03-2003, 19:12

Etiquetas para este tema