Sunday, February 13, 2011

Everything changes

In the past few months i was interested in too many things (I think that I still am but I'm still reducing the list). For now i need to get a job, because my laptop is not quite enough for my current needs. So I'm learning Django, a python website engine, to generate enough money for a descent machine and master degree project needs. Also I've learned to use Ogre 3d engine. It's a wonderful engine, you can extend it as you wish. The independence is a high priority here. Ogre is system and 3d engine independent. You can use OpenGL or DirectX. It does not need you to know each of them. It's a very productive solution, If you want to make a 3d engine independent game or simulation you just have to remember about making a macro for each shader language.

I'm in process of developing a 3d fighter game with physx hit detection. I'm using a rag doll for tracking a hit. The rag doll is created from the model skeleton data. The bone width and height is editable through a configuration script that looks like this:
addomed=1.0
addomes=0.1
avambraccio.Ld=1.0
avambraccio.Ls=1.8
avambraccio.Rd=1.0
avambraccio.Rs=1.8
bacinod=1.0
bacinos=0.35
...

You can edit that script while the game is in debug mode and simply refresh bones by pressing one key in the render window.

The effect is visible via physx remote debugger as:


This rag doll is controlled by the animation if there is no collision detected. After a collision the control of the punched character is taken by physx. It still need's some joints between the bones. I turned off the gravity for the rag doll.

The final effect is not very interesting for now because I'm still creating the core:


I need to get rid of BSP scene menager, the other ones are better and allow more shading and shadowing techniques. BSP scene menager allows only adaptive shadows. That's why there's no shadows on the screen, i have to render the shadow at each frame. This project will be open source after i create the core functionality. Credits for animations go to MichaX, also i used a quake 3 maps. I will not provide pk3 for the maps because i have no copy wrights for the maps. There is a map under development by Szczeku.

As another area of interests comes image processing. My main interests are in Stereo vision. I have the minoru 3d camera that i will use later. For now i'm trying to work with opencv stereo pair samples. I'm trying to achieve a dense disparity map that will provide data for obstacle tracking and overcoming. For that i have used a genetic algorithm that's easy to implement on GPU:

it's the tsukuba stereo image pair from openCV:


as you can see my current result's are very blurry but enough for obstacle tracking. As a tip for dense disparity miners: disparity maps like gauss filter on the input. This algorithm is great but there are some parameter's that you have to guess to achieve great maps so I'm trying to learn a more complex one, using a normal non-random computing. Still i have to learn OpenCL to take those algorithms on the GPU.

No comments:

Post a Comment