Novedades del Blog

viernes, 12 de diciembre de 2008

Bounding Box visible

Esta semana me lo he tomado un poco mas de relax y he implementado que el Bounding Box sea visible en las entidades, es un primer paso para meterme con las colisiones, así podre depurar mejor si de verdad las entidades colisionan bien o no.
También me ha venido bien para desintoxicarme del Shadow Mapping que todavía me sigue provocando pesadillas jejeje...

Además he estado retocando algunas cositas mas dejándolas un poco mas limpias y genéricas posibles, nunca se sabe cuando voy a necesitar un motor 3d para hacer juegos en isométrica jejeje..

lunes, 8 de diciembre de 2008

Primera batalla perdida :( ...

Pasado mañana hará 3 meses que empecé con el Shadow Mapping, durante este tiempo me he estado pegando con ello en innumerables ocasiones y al final ha podido conmigo.
De momento, voy a dejar aparcado el Shadow Mapping y voy a continuar con las demás tareas del juego, ya volveré a abordar este reto cuando tenga mas conocimientos y mas documentación.
Voy a intentar ir avanzando otras tareas y a coger un poquito mas de fuerzas, que este maldito Shader , ha acabado con toda la que tenia y se ha llevado con ella mi paciencia. Como he dicho antes he perdido una batalla pero no la guerra, y el show debe continuar.... con o sin Shaders :)...

Por supuesto, si alguno sabéis de algún libro, web o conocimientos propios al respecto del Shadow Mapping, no dudéis en poneros en contacto conmigo, toda ayuda sera bienvenida. Muchas gracias de antemano.

jueves, 4 de diciembre de 2008

El orden de las entidades....

...altera las sombras. He probado a pintar las entidades en orden diferente, es decir, empiezo pintando las entidades mas alejadas de la luz hasta las mas cercanas y he conseguido que se vea bien. El problema consiste en que en entidades que se mueven, este orden cambia dinamicamente. Esto ocurre porque el Shadow Mapping se va generando a medida que se van pintando las entidades.

Por ejemplo, si batman esta a la altura del suelo la primera plataforma se pintaría antes que batman ya que este es mas alto y la segunda después porque esta a la misma o mayor altura. Pero cuando batman se sube a la primera plataforma se tendría que pintar primero la plataforma 1, luego la segunda y al final batman porque subido en la primera es mas alto que la segunda plataforma. En la imagen se puede ver un poco el ejemplo.


Las soluciones que se me han ocurrido han sido 2:
1º Controlar que entidades tienen movimiento y cada vez que se vaya ha hacer un pintado mirar la coordenada 'y' de la entidad para pintarla antes o después de otra. Esta solución es un poco problematica, porque tener que estar preguntando a cada entidad si esta por encima o por debajo de otra con movimiento, seguramente influya negativamente en el framerate.
2º Pintar toda la escena y generar el Shadow Mapping a posteriori con todos los objetos ya en el mundo, en vez de ir generándolo a la vez que se van pintando en el buffer. Esta es la solución mas óptima, pero todavía no se como obtener el Shadow Mapping a posteriori.

Si alguno de los pocos lectores del foro tiene alguna sugerencia por favor no dudéis en poner un comentario, os lo agradeceré eternamente :)

martes, 2 de diciembre de 2008

Pintaba demasiado bonito.... :(

Pues eso mismo, parecía que el ShadowMapping estaba controlado pero no, he encontrado una cosa que no me ha gustado. Cuando una entidad pasa por debajo de otra la sombra que debería ser igual o mas oscura, pues es mas clara... un ejemplo:



Como podéis ver en la textura ShadowMapping la parte de batman que se supone esta debajo de la plataforma esta mas clara que la plataforma:
Aquí os pongo la parte donde se ve ese efecto raro ampliado para que se vea mas claro, como la mitad de batman que esta debajo de la plataforma tiene la sombra clara y la otra mitad tiene la sombra oscura:



Pues nada, seguire rompiendome los cuernos con el Shadow Mapping a ver si soy capaz, de una vez ,de dejarlo un poco fino, porque me esta costando mas que la obra del Escorial.

miércoles, 26 de noviembre de 2008

Shadow Mapping is OK!!!!!



Después de mas de 2 meses de curro y de pegarme con el motor una y otra vez, ya he conseguido implementar el Shadow Mapping de una vez, ha sido una tarea dura pero ha merecido la pena.
Durante este tiempo además he aprovechado a hacer algunos cambios en los ficheros de configuración permitiendo que se pueda elegir la posición que ocupara la cámara y tres luces en cada habitación, además de otros parámetros independientes en cada luz, de momento no he hecho muchas pruebas pero el resultado es bastante majo.
Lo malo de todo esto es la considerable caída del framerate que se queda en unos 30 frs/seg, un poco justo para mi gusto, de todas maneras probare en distintas maquinas a ver que tal resultado, aun así, intentare optimizar al máximo.

Aquí pongo un vídeo para que se vea mejor el efecto de la sombra:

martes, 18 de noviembre de 2008

Resumen de Shaders

Llevo más de 2 meses desde que empece con los Shaders (exactamente el 10/09), pero en este tiempo de pegarme con los Shaders, el codigo ha cambiado infinidad de veces para intentar acoplar lo mejor posible estos Shaders y el codigo en C# con DirectX. Ahora mismo ya me funciona el agregar una luz con sus sombras con Shaders y estoy intentando hacer unos pequeños cambios en el codigo para poder usar por lo menos 3 luces a la vez en la escena.

Espero que para antes del tercer aniversario mensual :) esta parte de Luces y sombras con Shaders este acabada.

lunes, 10 de noviembre de 2008

Mas modificaciones...

Con las ultimas modificaciones que implemente, empece a ver pequeñas cosas que no me cuadraban mucho con lo que queria conseguir, asi que, lo que parecia un pequeño cambio se ha convertido en un gran cambio en la parte del juego. Cuando termine todas estas modificaciones pondre una nueva entrada intentando explicar un poco todos estos cambios.

Eso me esta llevando mucho tiempo, ademas de un factor externo llamado Gears of War 2 que lleva desde el viernes pasado atormentandome y no dejandome codificar tan rapido como me gustaria :D jejeje...

Tengo un gran conflicto interno :)