sábado, 22 de noviembre de 2008

Screen space terrain

Lastest days I've been busy coding a demo of a "screen space terrain". There isn't geometry here, only heightmaps. A grid is projected over a plane by a projector camera (in red). At now I'm trying to fix vertex interpolation and making a more better projector. Frame rate is constant because the projected grid has the same size along the scene.
When I finish it, I'll upload a demo with full source code.

lunes, 3 de noviembre de 2008

How to configure SMC EZ-Connect usb wifi stick into Ubuntu

My current distro is xubuntu 8.10, but it could be apply to
an older xubuntu 8.04, kubuntu, and ubuntu distributions:

1. Install ubuntu
2. Install ndiswrapper from cd instalation folder. Click over this two files:
"/pool/main/n/ndiswrapper-common_1.50-1ubuntu1_all.deb" and
3. Copy your ".inf" file from SMC driver CD to a local folder.
4. Type this into console (changing your name and driver name, of course):
ndiswrapper -i /home/user_name/xxxxx.inf
ndiswrapper -mi
5. NOTE: You could be use ndisgtk also, and remember that if your ubuntu
runs at 64bit you need the 64 bit driver (xp64 for example).
6. Type sudo gedit /etc/network/interfaces
7. Copy and paste this into file:
auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet dhcp
pre-up ifconfig wlan0 up
pre-up iwconfig wlan0 essid WLAN_20
pre-up iwconfig wlan0 key s:'C1131DA6BFB21'

8. NOTE: Change 'WLAN_20' to your wireless name and 'C1131DA6BFB21' to your WEP password.
9. Save file changes and reboot
10. Open firefox and type www.google.com :)

viernes, 24 de octubre de 2008


This month I've been busy by preparing my conference for the first 3DisplayForum. In the website you'll can download the conferences of the other partners soon.

Hey, that's me :D

My conference was titled "Photo-realistic illumination in real-time" and you can download the PDF of the conference here (sorry, at now only in spanish).

This year was showed in Madrid, I hope that if you live in Spain you can
attend next year if you're interested.

domingo, 5 de octubre de 2008

10.000 visits

Hey, 10.000 visits, but seriously: I'm not worthy.
Anyway, a lot of thanks ^^

martes, 2 de septiembre de 2008

Google Chrome

I've been download google chrome and all that I can say is that it's the fastest web-browser I ever seen. Newer times, newer browser. Wow, but we want the Linux and Mac version too :D

martes, 12 de agosto de 2008

OpenGL 3.0

Unlike other coders I'm very glad with the new openGL specification, because I hate strong object-oriented design in a low level API. Until now I design my 3d engines using this design paradigm but with the use in some games I learned that the most useful code was the oldest openGL design that avoids classes and pointers (at least at the highest level). With this in mind I built a lite 3d framework that uses index instead pointers ala openGL.

I'm sure that people that has been used the two APIs can remember entire openGL sintax because it uses the same subset for all commands.

I believe that Khronos group follows a smart movement by avoiding API re-design every 2 years like directX does when new GPU features arrives.

Source code

Until now, I haven't release any code examples because my huge 3d engine size, but in order to write the article for ShaderX7 book I wrote a lite openGL framework and I want to share which they are interested in the near future. In all forms and by contract issues I cannot share things that I'll use in my actual company. But when I wrote any interesting stuff I'll try to share it.

Thanks for reading ^^

Chunked lod tests

A lot of time without any post, bad, bad, bad.
I've been busy writing the demo for shaderX7 article, thanks to Nico for the 3d mesh for the demo ^^.

Well, I've been testing some terrain implementations: SOARX, Clipmapping but the winner by far is the chunked lod algorithm.


The image above is how the technique appears in my engine.

domingo, 29 de junio de 2008

My own planet (III)

I just been uploaded a video of the planet:

The unique improvement is the presence of normal mapping.

sábado, 28 de junio de 2008


Finally, I wrote an article called "Screen-space approximate local irradiance" for ShaderX7 book that will be released in lastest days of December 2008. yiiiiihaaaa!!! :p

On July I'll try to finish the demo with full source code that will be included in the cd-rom.

For this hot summer: A lot of work, a lot of work!!!!!!!

domingo, 22 de junio de 2008

My own planet (II)

New improvements has been added to my 3d planet (that suspiciously, looks-like to our earth :p).

* Added cloud layer. It completes one full round each 30 minutes.
* Data (frontier, coast lines, etc) near blending when the camera is near to the planet.
* Stars texture map for not to feel alone in the universe.
* Earth lights map for night texture with automatic blending.
* Ground scattering.

viernes, 20 de junio de 2008

My own planet

Because I know that I'll never conquer the world, I tried to build my own earth in order to conquer and tyrannize it... muahahhahaha (very, very evil laught)

It uses the planetary scattering algorithm of Sam O'neill, and at now I'll try to find some use to it... [quivers, Google :p]

miércoles, 11 de junio de 2008

nedmalloc: fast memory allocator

from nedmalloc website:

"nedmalloc is a VERY fast, VERY scalable, multithreaded memory allocator with little memory fragmentation...

It is more than 125 times faster than the standard Win32 memory allocator, 4-10 times faster than the standard FreeBSD memory allocator and up to twice as fast as ptmalloc2, the standard Linux memory allocator. It can sustain a minimum of between 7.3m and 8.2m malloc & free pair operations per second on a 3400 (2.20Ghz) AMD Athlon64 machine"

I've made some changes to allow compilation in gcc (4.3) for Windows using code::blocks

You can download zip file here.

martes, 18 de marzo de 2008


After tuning a lot of parameters, I got decent results that has been increased by adding an horizontal and vertical blur filter.

martes, 11 de marzo de 2008

The real-time re-projection cache

I've added real-time reprojection cache to the engine. For SSAO looks like a winner technique because it uses expensive shader. Red pixels aren't re-computed because they are stored in an auxiliar buffer to be reprojected.

When camera moves slowly or it's stopped the FPS reaches to infinite and beyond... :p

lunes, 3 de marzo de 2008

New code::blocks release

Code::Blocks 8.02 has been released!


From codeblocks page:

"Thursday, 28 February 2008 18:34

Our long awaited release is finally here! Representing the hard work of 14+ developers for more 2+ years since our last official release (and many changes in the roadmap in between), it is finally made available to the general public.

For your convenience, we provide binaries for all platforms Code::Blocks supports:

* Windows 2000 / XP / Vista
* Linux (Ubuntu & Debian, 32 & 64 bits)
* Mac OS X 10.4+

Binaries for other Linux distros will be made available in the following days. So, without further ado, head over to the downloads section and get it while it's hot!

The Code::Blocks Team"

jueves, 21 de febrero de 2008

Added shadow maps

Quick and dirty uniform shadow maps


Realtime irradiance

...and (almost) free! :)

Je,je Simple ideas are the best. By only adding to the SSAO shader 2 lines of code we can get local irradiance by free (taking count the color too).

This is the realtime radiance calculation:


Ambient occlusion + irradiance + shadows = Global ilumination?? :)

miércoles, 20 de febrero de 2008

SSAO Revolutions

More ambient occlusion screenshots, now with materials and textures.


lunes, 18 de febrero de 2008

SSAO Reloaded

The lastest bugs were catched... so... there are new screenshots of chelvis SSAO :D
I think it looks-like better, no?

[Also, notice the higher frame rate after minor optimizations]

SSAO (Screen Space Ambient Occlusion)

This weekend I'd been trying to implement ssao in my engine by giving the excelent tutorial of Iñigo Quilez and reading the gamedev forum. At now the effect has some glitches (maybe some projection bug), but for the moment I feel happy with results.

Happy coding :D