kawecki opened this issue on Dec 18, 2006 ยท 50 posts
kawecki posted Wed, 20 December 2006 at 5:35 PM
Quote - Here is the same scene with non reflective materials, clearly the HDRI IS ILLUMINATING THE SCENE.
The properties of reflective and not reflective surfaces is very different, of course that the HDRI image will illuminate something, but the question is : will be correct the result for non-reflective surfaces????
???????, it means that you don't understand a bit!
The use of HDRI or not HDRI images for the sky dome is equivalent to reflexion mapping and it must be. To understand this we must know how it all works.
For the sky dome you trace a ray going from your eye (the camera), the ray hits a point in the object's surface, is reflected and continue until it intersects the sky dome surface. Now the direction of the ray is reversed and the colour of the pixel in the intersection point with the sky-dome is used to illuminate the point of the object's surface where was initially reflected.
With reflection mapping the process is almost the same. You trace a ray going from your eye until hits a point of the object's surface, then the ray is reflected and you follow it until it intersects an imaginary sky dome, this time the sky dome doesn't exist, is only a mathematical construction, anyway the ray intersects the sky dome. The difference is that instead of taking the colour value of the intesected pixel, you take the uv coordinates of this pixel. Then you assign this uv value to the point of the surface object where the ray was reflected.
This process is done before the rendering, for rendering you use the same sky dome map this time applied to the object mapped with the calculated uv coordinates of the previous step.
You see, the process is the same and the result must be the same.
The advantage of reflexion mapping is that is much faster and you don't need ray tracing and even can be done in real time.
Ray tracing with the real sky-dome gives more accurate results when many objects exist in the scene because the ray can be intersected by another object and the image reflected in the first object will be this second object and not the sky dome. With reflection mapping the object always will have the sky dome projected on it, even in the cases that is obscured by other object, what is wrong!
For an object alone or for objects that don't obscure one each other, the sky dome and the reflexion mapping will give the same result.. You can multiply the texture by the object surface properties in each case, but the result will be not correct because both methods works for ideal mirrors that follows Fresnel's law.
If you use a HDRI sky dome for illuminating a non reflective object, it will illuminate it, but the result will be faulty.
The reason of this is, even is only one ray coming from the camera until it hits a point on the object's surface, this point is not only illuminated by the reflected ray, it is illuminated by light coming from all points of the sky dome.. To have the correct value of the illumination of the point you must integrate all the skydome pixels taking into account the angle of each ray and the BRDF function. The whole visible sky dome is illuminating the point and not only one!
The result is fake and you can use other fake methods much simpler and faster to create visual effects.
Stupidity also evolves!