Today, I experimented with the linux kernel modules for the first time and I’ve written a simple module that prints a message (helloworld :P) every time that someone reads from the /dev/ktest (a custom character device) and counts how many times the device was opened for reading.
So far, I hadn’t try to morph 3D objects to other 3D objects and I thought it’s something tricky to do. Today, I realized how simple and easy it is when I wrote this small test:
If you carefully choose the 3D models to have the same number of polygons, and to meet a few topological requirements, then you only need to interpolate the values of the meshes’ vectors, normals (and materials, textures, whatever you need) and draw the intermediate mesh every time. As interpolation parameter you can choose the values of a positive function that varies from 0 to 1 and backwards (I used (sin(msecs/factor) + 1)/2) to have that continuously changing effect. And that’s all! 😀
The test is here: https://bitbucket.org/eleni-hikiko/morphing and it includes an obj with a scene with 3 meshes that meet the morphing requirements (I only used the first two meshes here).
Here’s a CT scan viewer I’ve started to experiment with volume rendering:
A few days ago I decided to write the most useless program in the world: a kinect program that makes you appear invisible… As it always happens on the Internet someone had already written it (here is his project called the “Invisible Man”: https://www.youtube.com/watch?v=Z4nYmivmXGw – very inspirational!) so, I wrote the “invisible woman” that didn’t exist so far… :p Here’s a first video. The program is still under construction, I plan to change a lot of things:
A few weeks ago, I started a minimal window system, which performs software rendering on the linux /dev/fb0. My aim was to learn some systems programming and familiarize myself with concepts like event and device handling, memory management, window management, drawing on the framebuffer, IPC mechanisms etc (and certainly not to create a full linux window system! :)p) I call the program winnie and the code is available on github here: https://github.com/hikiko/winnie/tree/winnie.clients-as-plugins, https://github.com/hikiko/winnie and lp.
The program is not finished yet and I don’t know if I ever finish it, since I came up with new project ideas again.. Nevertheless, you can see some videos of the development stages below if you are interested (most recent first):
libgliar — a library that lies to the OpenGL programs about the OpenGL context info (for Linux only). Code: bzr branch lp:libgliar