Authors: Abid Jeem
This repository contains a basic ray tracer in Python. It supports:
- Spheres, Planes, Cubes, Ellipsoids, Torus
- Recursive Ray Tracing (reflections and refractions)
- 3D Noise Materials (clouds, wood, marble, etc.)
- 2D Image Texturing for spheres and planes
- Sky Plane or background with a texture
- Fog/Atmospheric effects
-
Recursive Reflection & Refraction
- Objects can have a
reflection_factor(0.0 to 1.0). - Transparency (trans) and refraction index for glass/water-like materials.
- Fresnel approximations, partial reflection/refraction.
- Objects can have a
-
Multiple Lights
- Directional or Point Lights
- Basic shadow checks (hard shadows).
-
Progressive Rendering
- Renders from coarse to fine resolution.
- Cancel early by closing the PyGame window.
-
Modular Objects & Materials
- Objects each implement
intersect(...)andgetNormal(...). - Materials can be plain color, 3D noise, or 2D textures.
- Objects each implement

