It seems the amount of computation needed for a given scene depends on the number of objects in the scene. I'm wondering if there are techniques to handle scenes with different complexity differently in modern GPUs?
I realize that the recursion has to stop at some point and a light source seems like a reasonable choice, but couldn't we keep going to get a more complete picture? Once we trace the ray backward and hit, say, a light bulb, I would think that the surface of the bulb could still reflect light from other sources. If it's a very dim light bulb, these other sources may even be the dominant effect. How do we decide whether it's okay to stop at a light source?
It seems possible that a light ray could bounce infinitely. At what number of surfaces should you stop?
I have a similar question as @twizzler, how does the light ray end up losing energy with every hit and then diminish, or does our renderer keep computing the radiance per time unit if there is a hit?
I just want to make this clear. When you talk about recursion, does this mean we use the recursion to track a ray and see how the ray is reflected in a space?
how do we decide when the recursion is finished?
What if there is some infinite reflection condition? like a ray of light keep reflecting among two mirrors?
I see, then maybe we are using the position, normal, and origin of the ray hit point to recursively evaluate new rays?
There are some games with a lot of light sources and a lot of objects. What are some ways to make raytracing less expensive?
Is there some sort of inflection point at which we should cap the amount of instances we allow our rays to reflect within a scene that will yield the best image results for least time/cost? How can we calculate or quantify this?
what is the base case for this recursion?
How do we handle the appearance of the light on a particular object fading out for aribitraely-shaped objects?
When does this recursion end? Wouldn't it be possible for the ray to continuously bounce back and forth across a few objects?