24 de noviembre de 2007

Implementando Física con ODE

Hola! Este es mi primer nota y la idea es contar lo que estoy haciendo en estos dias. Que bueno que voy a poder contestar solo con un link cuando mis amigos me pregunten por MSN “en que andas, loco?”. ;-)

En los últimos meses le he dedicado mucho tiempo al aprendizaje de Managed DirectX con C#. Hemos hecho mucho software de prueba con Ana que en otras entradas voy a contar. Pero hoy voy a aburrirlos con el tema que me tiene ocupado en este momento: La física de los objetos!!!

Como decía Einstein: “mi mujer tiene un buen físico” :-P, bueno, en este caso yo quiero tener un buen modelo de física para los juegos que hagamos(estaba harto de que los objetos 3D se atravesaran! :P). Por eso me decidí por implementar un engine de física no muy complejo y conocido. Ese motor es Open Dynamics Engine (http://www.ode.org/) en su sabor Managed: OdeDotNet (http://odedotnet.sourceforge.net/). La idea es ver como esta hecho el binding para .net de ODE y hacer algo parecido pero por ahora quiero saber como funciona OdeDotNet.

Para eso que mejor que armar una “demo tecnológica” (que grande que le queda ese nombre al programa que hice :P) de un bowling para ver como gira la bola y choca contra los pinos. Me quedo algo como esto:

El usuario puede apretar F1, F2, F3 o F4 para darle fuerza a la bola y así derribar los pinos (me imagino que se dieron cuenta cual era la idea :P). Con esto pude probar lo que se llama el Contact Joint que es la forma en que los objetos colisionan (si hay rebote, si hay rozamiento, etc) entre los pinos y la bola y entra la bola y el suelo, obvio.


Ahí tienen una captura de la bola chocando con los pinos. Si! Ya se, la bola debería ser pesada como para no levantarse al chocar con los pinos, pero decíselo al sr. ODE que no reacciona antes las diversas pruebas que hice. Estoy aprendiéndolo, aun no tengo claro varias cosas. Otra cosa que no pude hacer andar bien aun es el rozamiento. Asi que por ahora me armé una función que le va disminuyendo fuerza a la bola a medida que avanza apoyada en el suelo hasta dejarla en cero (funciona muy bien!!). Lo que si ya tengo bastante claro es el rebote y como hacer que la superficie sea blanda (tipo cama elástica).
Por supuesto, no todo es tan alentador, de vez en cuando OdeDotNet me tira un error feo feo que tiene que ver con el acceso a memoria. No tengo la mas mínima idea de que puede ser, pero no tengo dudas que lo voy a solucionar tarde o temprano.


Bueno, por ahora solo eso. Espero mas adelante poder poner un video de cómo hago una chuza!! (cuando funcione mejor todo) y asi dejarles el link para que se lo bajen y lo prueben.

Saludos!

19 de noviembre de 2007

Casa - Prueba Exterior Vray - Parte 01

Mi primer entrada va a ser una casa que estoy haciendo en 3D Max y Vray, voy a ir subiéndola paso a paso a medida que vaya avanzando con ella. Para que? Bueno en primer término para compartir la forma de trabajar y también para recibir críticas y sugerencias! Espero que nos sirva a todos...

Es una casa que ya realicé hace 6 meses atras. El modelado no lo toque, lo que cambia es la iluminación y texturas. Cuando tenga el modelo final, lo voy a comparar con la que había hecho antes.

La primer imágen está realizada con una iluminación global usando los siguientes parámetros (nombro sólo los que cambie de los que vienen por defecto):
En global Switches: desactivar la opción de Default Lights
GI: activada
Irradiance Map: Custom
Min Rate: -4
Max Rate: 0
Clr thresh: 0,3
Nrm thresh: 0,2
Dist thresh: 0,1
Environment: On en celeste claro y con un multiplier de 1,5

Chachaaan... este es el resultado:
No se si se lee el tiempo de Render: 1 minuto 27 segundos (mi máquina es una Pentium Dual Core con 2 Gb de Ram)

Luego de que me haya convencido medianamente la iluminación Global y la calidad del Render (obviamente para pruebas) le agregué una Direct Light con la intención que parezca una luz clara de mañana/mediodía con los siguientes parámetros:

Direct Light On Directional
Shadows On - Vray Shadows
Multiplier 0,7 un color amarillo bien claro (254, 255, 210)
Light Cone: Overshoot
Shadow Parameters: Gris bien oscuro (15, 15, 15) Densidad de 0,85

Y quedó algo así:


Esta fue la primer entrega espero críticas y sugerencias! Mañana empiezo con los materiales...

18 de noviembre de 2007

Bienvenidos

Estuvimos hablando dos horas por MSN discutiendo que tiene que tener una primera entrada de un Blog, y no nos pusimos de acuerdo.

Ya van a ver de qué se trata....


Mak - Ana