Spherical Harmonics Lighting

Started by
4 comments, last by qesbit 19 years ago
I have to say I am not really impressed with this technique. I have implemented it, and look at other implementations. I find the lighting looks weird and when the lights move it looks just weird. I am working on a technique to do global illumination in 2 passes on a Geforce3 card . I think I can squeeze it into 1 pass on an FX or Radeon. So far I think it looks better than SHL too. If anyone has a 'good' example of SHL please show me, so far everyting I have seen did not impress me. It looks good until the light moves.
Advertisement
Have you checked out the wavelet modification to SHL? Paper available here.
Spherical harmonics is not a lighting techinque but a method to change an integration over a spherical surface to a sum of add multiply operations that are rotationally invariant and can be done quickly using today's hardware.
you use spherical harmonics to encode your lighting model.you can use PRT, monte carlo ray tracing or any thing else.
by the way, how many coefficients are you using? the problem with spherical harmonics is that it needs a great number of coefficients to prevent those dark spots and make the movement of light smooth, and this is where the wavelets beat spherical harmonics.
Quote:Original post by mohamed adel
Spherical harmonics is not a lighting techinque but a method to change an integration over a spherical surface to a sum of add multiply operations that are rotationally invariant and can be done quickly using today's hardware.
you use spherical harmonics to encode your lighting model.you can use PRT, monte carlo ray tracing or any thing else.
by the way, how many coefficients are you using? the problem with spherical harmonics is that it needs a great number of coefficients to prevent those dark spots and make the movement of light smooth, and this is where the wavelets beat spherical harmonics.


Ok, understood. I don't recall how many, but I know it was fairly small, as it takes about an hour to do it for my scene as it is. I think I had more and it literally took so long I thought it crashed so I reduced them.

Thanks I understand the basic technique I just wasn't impressed with what I have seen of it so far.
Are you performing per-vertex or per-pixel lighting calculations? The visual apearance of SH can be greatly improved with per-pixel calculations. However I am suprised that you are underwhelmed by the results, take a look at this For an example of the possibilities of this lighting technique.

I think you need to look at it not just in terms of Spherical Harmonics, but in terms of Pre-Computed Radiance Transfer, i.e. the basic technique is the same but different results can be achieved with different basis function types. Spherical Harmonics are just one way of implementing this kind of lighting, as Sneftel says using wavelets are another method. This benefits from the fact that all-frequency lighting can be captured rather than just low-frequency lighting.

The choice of basis function is crucial and Spherical Harmonics were just the first rung on the ladder, They are fairly easily implemented and the big plus i can see with them is the ease of rotating the lighting functions. Sneftel - Have you read the wavelets paper? I don't seem to recall any mention of how wavelet projected functions can be rotated? Is it possible? Do you have any links?

Also the paper by Kautz is interesting, particularly for non-diffuse objects because he uses a basis function with local, rather than global support, so rendering glossy objects is now more practical. I'm sorry I can't find the link at the moment, but the title is Matrix Radiance Transfer, Jan Kautz [2003] I hope you don't give up on this technique, because I think it is one of the most exciting developments at present for real-time global illumination.

Do you have some screenshots of your implementation? What is it that you think looks weird about the lighting?

EDIT :

One other note, do you use any kind of acceleration algorithms when performing your pre-computation? The biggest speed increase can be gained from reducing the number of intersection tests that need to be performed for your rays.
Quote:Original post by moagstar
Are you performing per-vertex or per-pixel lighting calculations? The visual apearance of SH can be greatly improved with per-pixel calculations.


I need to research the technique more.

The technique looks wonderful until the lights move. It may just be the implementations I have looked at though. The shadowing and the light radiance looks *wrong* if the light moves. I don't know how to explain that.
It just doesn't look real.

It definitely looks good until the lights move.

This topic is closed to new replies.

Advertisement