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
.obj
File Loading- Multithreaded Rendering
- Properly document everything
- Loading images as textures
- Support more image formats (only supports
.bmp
as 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