Ocular is a ray tracer written for fun. It follows the Raytracing in One Weekend series.
- Positionable Cameras with Defocus Blur
- Spheres
- Antialiasing
- Diffuse, Metal and Dielectric Materials
- Bounding Boxes
- Textures (only for spheres)
- Emissive Materials (and lights)
- Triangle Meshes
.objFile Loading- Multithreaded Rendering
- Properly document everything
- Loading images as textures
- Support more image formats (only supports
.bmpas of now) - UV Coordinates for Meshes
- Instance translation and rotation
- Volumes
Options for rendering are provided as a RenderOptions object.
width: Width of the final imageheight: Height of the final imagecrop_region: Region of the camera to rendersamples: No. of samples per pixelbounces: Maximum no. of bounces per light rayclip_start: Minimum bound for clippingclip_end: Maximum bound for clippingblock_size: Size of each square block in a multithreaded render

