1
$\begingroup$

http://i.stack.imgur.com/rij3X.png

As in the image we can see that ray of light is bouncing off objects. Black ones are opaque objects and white ones are transparent objects. I want to calculate how many times a ray of light bounces to reach a particular point, "without tracing rays". I am looking for the mathematical equation(that takes scene and a point as its input and outputs the number of bounces) that tells how many times ray of light will bounce to reach a particular point.

Is this type of mathematical equation exists? If not, which area of mathematics should I study to find solution to this problem?

$\endgroup$
  • $\begingroup$ It looks like simple geometry. $\endgroup$ – Jorge Fernández Hidalgo Aug 28 '15 at 3:19
  • 1
    $\begingroup$ Geometric optics is probably what you want to look up. It's mostly planar geometry (trig at worst) with some minor physics involved. $\endgroup$ – Cameron Williams Aug 28 '15 at 3:20
  • $\begingroup$ I don't think you'll avoid ray tracing - the output is complicated and unlikely to decompose further. Given a fixed scene and variable ray, you might be able to do some productive preprocessing, but really, if you need an efficient solution, you should be looking more at getting your hands dirty with things like spatial databases than holding out for a clean mathematical solution. $\endgroup$ – Milo Brandt Aug 28 '15 at 3:54
  • $\begingroup$ This seems relevant $\endgroup$ – Akiva Weinberger Aug 28 '15 at 4:56
2
$\begingroup$

I don't see any way other than ray-tracing.

The rays reflect off the black rectangles and are refracted (presumably using Snell's law) by the white rectangles.

I noticed that either ray 2 or 3 near the bottom right seem to have been absorbed by a white rectangle.

It would be an interesting exercise to program this given a set of rectangles and the index of refraction of the white rectangles.

I wonder how much precomputation could be done, given the location and type of the rectangles, to speed up the ray tracing.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.