I’m finally done with all the crunch. I’m slowly getting used to having a life again.
Tuesday I left work at 6:30 PM and went to eat yakiniku with some colleagues.
Yesterday after work I went to get an haircut (wow !). Then I got home and re-started working on my latest 3D engine stuff.
Today (the 3rd), was a national holiday, so I slept late and then went to the gym. There, much to my surprise, I weighted 71.95 !! One month of practically not moving, and my weight hasn’t increased !
I suppose that I traded some muscle for fat, but still, I’m pretty happy 8)
As for 3D research, I’m putting much emphasis on doing Radiosity at a decent speed. Not real-time, but still at a somewhat usable rate for pre-calculations. Of course the usual problem with Radiosity is that it doesn’t work very well with sharp shadows if one simply subdivides the geometry with quad patches.
I’m pretty convinced that I’m going to do a pre-split of the geometry following any early hard shadows. This should be done with a shadow volume algorithm which directly cuts the geometry (as opposed to stencil shadow volumes). Alternatively, I could somewhat try to solve the Radiosity at a low frequency and then apply the hard shadows as a post process in real-time. Basically separating direct lighting from indirect lighting (which is where the coolness of Radiosity really is).
The general situation, however, is pretty desperate. I think that generally there isn’t very much analytical thinking in the world of 3D graphics. It’s hard to find some well thought concepts. With lighting, it’s obvious that there is a need for an unified system to handle a wide range of level of detail. Because the most common materials are of a diffuse type (reflect light very poorly, so to speak), it’s obvious that for indirectly illuminated entities, if light is considered a signal, one only needs bother to a much lower frequency of that signal.
I think that everything should be somewhat submitted to a LOD structure (wavelets, Fourier), while algorithms should somewhat work on higher dimensional spaces.
For example, if one has a triangle and wants to do Radiosity rendering, with hemicubes, the process is of doing three different hemicube renderings, one for each vertex. That’s clearly a waste of calculations, because most of the times, the three vertices will pretty much see the same scene, they will most likely either be in shadow or not be in shadow. On a higher dimensional space, instead, one single hyper-rendering would span across the whole triangle. This would imply an increase in calculations of orders of magnitude, but also open the door to more clever algorithms to bring back the number of calculations with a better understanding of the situation: implicitly understand if and where a high frequency lighting happens on the surface of a triangle (example: cut by a shadow or not ?).
And we go to sleep !
zzzzzzzzz
Posted by Davide Pasca in Uncategorized
