Hey
Is it a good idea to learn about PRT from the DXSDK sample or is that sample outdated because in the sample it says that "Modern" hardware can't run PRT on real-time, but their "Modern" hardware is actually from 2004. So should i learn that technique or is there a better one??
Regards
Precomputed Radiance Transfer?
It doesn't say that it can't run PRT in real-time, it says that in general global illumination is difficult and expensive to do in real time. I would say that statement is still true, although it's much more feasible to do now on modern hardware and certainly possible for a game to ship with some simplified form of GI.
Anyway the big problem with PRT is that it only works with a purely SH-based lighting environment. SH is great for something like a skydome where you mostly have the same color/intensity everywhere but can fail pretty badly for something like a sun or other directional light source. Instead of a small intense spot in the sky you end up with a huge blob of light and you'll usually also have ringing as well. If you want more variation in your lighting environment you need more coefficients, but even 2nd order SH is already 27 coefficients.
Personally, I would recommend looking into something else.
Anyway the big problem with PRT is that it only works with a purely SH-based lighting environment. SH is great for something like a skydome where you mostly have the same color/intensity everywhere but can fail pretty badly for something like a sun or other directional light source. Instead of a small intense spot in the sky you end up with a huge blob of light and you'll usually also have ringing as well. If you want more variation in your lighting environment you need more coefficients, but even 2nd order SH is already 27 coefficients.
Personally, I would recommend looking into something else.
for global illumination I'd advise you look into the CryEngine 3 method.
Its mostly done in real-time and is very efficient.
The basics of it is they create a 3D grid while lighting.
They use the grid to diffuse light in 3D. Using the diffused values the grid is used to hold several virtual lights.
Its hard to explain, I don't completely understand the implementation (though I'm working on my own version)
Here is a link,
http://www6.incrysis...ion_Volumes.pdf
Its mostly done in real-time and is very efficient.
The basics of it is they create a 3D grid while lighting.
They use the grid to diffuse light in 3D. Using the diffused values the grid is used to hold several virtual lights.
Its hard to explain, I don't completely understand the implementation (though I'm working on my own version)
Here is a link,
http://www6.incrysis...ion_Volumes.pdf
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement