Raytracing and signed difference engine
Using equations like
we can define 3D objects. These objects will always be as high-resolution as the display allows to be displayed; there are no meshes or polygons.
This repository tracks my progress in building a 3D rendering engine which uses pure math, rather than meshes and polygons. While I could clone someone else's project and have a far superior solution, my objective in this project is to learn through implementation.
The results of sprint 2 are below:
-
Instead of writing directly into pixel space, we now follow the process:
- from world coordinates,
- change into camera-offset coordinates,
- then transform into pixel coordinates with
- Rotatable light, with pitch and yaw converted to directionality
- Multiple SDSpheres with varying radii and positions
- Shading and normal calculation
- Light reflection off of objects onto other objects
- Introduce support for object surface textures and details
- Very long term, the objective is to build a tool that can take meshes and use the Finite Approximation Theorem to produce a parameterized mathematical expression of the object's volume. This will allow us to use infinite-definition rendering techniques to draw 3D models