Gracias Gracias:  1
Resultados 1 al 7 de 7

Tema: Sombras en Blitz3d

  1. #1
    Usuario completo Avatar de Yue
    Fecha de ingreso
    May 2008
    Ubicación
    Bogotá
    Mensajes
    634

    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 qué 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 explicare cómo hacer las cartográficas, iniciativa qué 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 qué visualiza el mundo desde la perspectiva del jugador y otra qué hace de foco de Luz, la qué hace de foco, el contenido que visualiza lo dibuja en buffer de la textura usada para proyectar 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 t tFlip t t.
    Until KeyHit(1).
    End.
    Function Actualizar() t tSetBuffer TextureBuffer(Sombra) tColor 255,255,255 tRect 0,0,TextureWidth(Sombra)+1,TextureHeight(Sombra)+1 tSetBuffer BackBuffer() t tShowEntity S_Camara tHideEntity Cámara t tEntityColor Cubo,64,64,64 tEntityFX Cubo,1+8 t t t tRenderWorld() tCopyRect 0,0,256,256,0,0,BackBuffer(),TextureBuffer(Sombra) tEntityColor Cubo,255,0,0 tEntityFX Cubo,0 t t tFor s=1 To CountSurfaces(Terreno) t	surf=GetSurface(Terreno, s) t	For v=0 To CountVértices(surf)-1 t		TFormPoint VertexX(surf),VertexY(surf),VertexZ(surf),Terreno,S_Camara t		VertexTexCords surf, (TFormedX()/Xscale#)/32+0.5,1-((TFormedY()/Xscale#)/32+.5) t	Next tNext t t t t t t tHideEntity S_Camara tShowEntity Cámara t t t t.
    End Function.
    .

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

  2. #2
    Expulsado
    Fecha de ingreso
    Dec 2010
    Ubicación
    En matrix
    Mensajes
    1,681

    Re: Sombras en Blitz3D

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

  3. #3
    Usuario Senior Avatar de Jhonatan00_00
    Fecha de ingreso
    Oct 2016
    Mensajes
    172

    Re: 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
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,970

    Re: 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
    character TD @ Walt Disney Animation Studios

    mi curso de rigging facial :: https://www.domestika.org/en/courses...je-3d/ikerclon
    blog :: www.somosposmodernos.com
    twitter :: www.twitter.com/soyposmoderno
    linkedIn :: www.linkedin.com/in/ikerj

  5. #5
    Usuario Senior Avatar de Jhonatan00_00
    Fecha de ingreso
    Oct 2016
    Mensajes
    172

    Re: 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
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,970

    Re: 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.
    character TD @ Walt Disney Animation Studios

    mi curso de rigging facial :: https://www.domestika.org/en/courses...je-3d/ikerclon
    blog :: www.somosposmodernos.com
    twitter :: www.twitter.com/soyposmoderno
    linkedIn :: www.linkedin.com/in/ikerj

  7. #7
    Usuario Senior Avatar de Jhonatan00_00
    Fecha de ingreso
    Oct 2016
    Mensajes
    172

    Re: 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, 18:27
  2. Blitz3d
    Por maccafio en el foro Videojuegos
    Respuestas: 3
    : 18-06-2011, 08:22
  3. Blitz3d
    Por pab0 en el foro Videojuegos
    Respuestas: 1
    : 07-06-2010, 04:53
  4. Blitz3d
    Por depredador en el foro Quien eres tu - Aqui puedes presentarte
    Respuestas: 1
    : 28-03-2009, 01: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, 21:12

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •