Dec 21, 2010

Symbolic computations

Just found a good symbolic (algebraic) computation program that can help you to develop/visualize/simplify your formulas. The graphical interface is name XCAS and uses the GIAC engine. You can download everything here.

As an example, you can "pre-compute" rotation matrix from Euler's angles for a 3 bands spherical harmonics vector and visualize it as following:

Good to start optimizing things...

Dec 19, 2010

Eye rendering

Some more rendering R&D I am on: eye rendering.

here are the supported features: light refraction at cornea for point/spot and environment lighting, light concentration, light scattering in the iris, procedural description of the organic structure of the iris.

A brown eye

A fantasy eye
I hope you like it! ;)

Dec 12, 2010

Skin rendering - environment lighting

In parallel to the development of the graphical pipeline of Dynamixyz, my work also involved some R&D on rendering. I may show some of my work here when my technical director allows me to do it.

Some results showing the GPU Gems 3 skin rendering method but this time no point or spot light: only environment lighting using spherical harmonics! Below, some screenshots showing a head model lit by its surrounding environment (with an without light directional light occlusion.) Of course, this is rendered in real-time and with gamma correction. These screenshots emphasize the importance of using a ambient lighting model that takes into account incoming light directions of the environment as well as directional occlusions.

Environment lighting with a cube-map having a
pure red color on a single face.
(left without, and right with directional light occlusion)

Environment lighting with a cube-map from Humus.
(left without, and right with directional light occlusion)

This is static and I am working on an idea to make everything dynamic. The occlusion is computed on the GPU using rasterization instead of ray tracing.

The head model is a free scan released by Infinite-Realities. Thanks to you Mr. Lee Perry Smith!

Dec 4, 2010

Books + interesting CUDA facts

Hi followers!

I know I am still not updating often this blog. In majority, this is, again, due to my new work and the preparation of my PhD thesis defense. So, I am doing a lot of interesting stuff at work that I may share in here some day. Besides, concerning my PhD, my last paper has been successfully presented last week at VRST2010 by my advisor (I was not able to go myself). This paper was about simulating the Human visual system using the new visual attention model I have proposed to predict user's gaze during real-time first-person navigation in interactive 3D virtual environments. Also, my last collaboration ended with a paper accepted for publication in the IEEE TVCG journal. This paper is about real-time haptic interaction with fluids: my small contribution is a cheap fluid rendering method. I may talk about it here soon. I now only have to think about my PhD defense presentation! :)

Note on CUDA

I have read the two books about CUDA (1 and 2). They are pretty amazing book for learning the basics but I was still hungry after that. So I have decided to read more documents like the nVidia best practice recommendations. I was surprised to see that these books/documents advice a set of "simple" rules to follow in order to get good performance such as "Increasing occupancy is the only way to improve latency hiding". But, as exposed in this very good presentation, you have to be careful with these advices. It reveals another set of rules for better performance with lower occupancy. Overall, like with every computing systems, you should always try several codes and use the one which give the best performance.

Amazing books

- This book about the two Id johns is very well written! I could not stop reading it!

- Are you looking for a book to learn physically-based rendering methods? Stop searching and buy this one! An incredible amount of methods are covered in this book with a new presentation style I have just discovered: literate programming. The book covers a large range of knowledge: from the basics (ray tracing, collision, etc) to the advanced one (metropolis light transport, sub-surface scattering, spherical harmonics, etc). There are all Math equations and corresponding source code! Perfect!