/Cpp_demos_signed_difference

raytracing and signed difference engine

Primary LanguageC++

Cpp_demos_signed_difference

Raytracing and signed difference engine

Introduction

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.

Sprint 2 - most recent, 03/03/2019

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

Sprint 1 - building the basics

  • Rotatable light, with pitch and yaw converted to directionality
  • Multiple SDSpheres with varying radii and positions
  • Shading and normal calculation

To do

  • 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