Author Notes
A similar but simpler effect to
ImageRayTraceBump[img] can be achieved with the built-in symbol
ImageEffect[img,{"Embossing",x,a}]. A function in the Wolfram Function Repository called
ImageBump also provides similar functionality through filtering. The ray tracing of
ImageRayTraceBump allows for more control of the finished image and the addition of specular highlights.
ImageRayTraceBump tends to darken some images, so post-processing might be needed to achieve the desired output.
The output of ImageRayTraceBump can be grainy at times. If this happens, try enlarging img first, then applying ImageRayTraceBump, and finally shrinking the output back to original size.
A reflection point exists halfway between the (x,y)-coordinates of the light and the center of the image. If the light is too close to the image, a glare will wash out part of the bump effect and distort the colors. The solution to this is to move the light further from {0,0} in the image plane.
Ray tracing is slow; be patient. ImageRayTraceBump does work on larger images. I tested it on images up to 10,000 pixels square, and it works as expected. However, larger images can take several hours to render.
Ray tracing is a technique used in other visual effects not included in ImageRayTraceBump. Refraction, reflection, and radiosity pertain more to scenes with multiple 3D objects. Self-shadowing and ambient occlusion could possibly be added to the effects simulated in ImageRayTraceBump. They would slow down the function considerably and add only slight benefit.