Transmission
The Images
No extras image (input) (5658 secs):

Ugly black ring (70 secs):

Discussion
There’s not much special about my implementation of transmission rayss. I did however, choose to convert total internal reflection (TIR) rays to be reflected rays instead of transmitted rays. This eliminates the ugly black circle around the outside of the sphere seen above, possibly at the cost of realism. The idea was obtained from here.
The Code
- raytracer.py
- The ray tracing application that iterates through the pixels. Also contains classes to model the scene and output.
- primitives.py
- The primitives (shapes, lights, ray, colors).
- shaders.py
- The shaders
- movie.py
- A script to create movies from ray traced images
- noextras.ray
- A sample input file