Step 16: Graphics Software in C++

The graphics software at minimum needs the following features:

  • Mesh (OBJ) Importing
  • Dynamic Lighting Model with Shadows
  • Manual Per-Vertex positions
  • Camera (Eye) positioning
  • Object positioning
  • Ability to Save/Load Camera position, obj position, and obj vertex settings
  • Include Python library to utilize PyEphem for sun/moon tracking.
  • Hook light positions into Sun and Moon positions queried from the ephem script.
  • Include OSC Library for the ability to interface with a control surface.

These are the bare features needed for this project to work. Every other cool software goal I had in my concept can be added later. I coded a solution that supports all these features on my linux fork of Cinder that compiles on the TK1.

The entire source code is hosted on my GitHub: https://github.com/quilime/hyperterra/

For the light renderer, I ended up utilizing a deferred rendering library that supports multiple lights, screen space ambient occlusion, and shadows.

<p>amazing, me and my friend are going to make it at our school</p>
<p>Amaizing project. </p>
<p>Whoa. Interesting bit about the sun-bleached ABS -- it's quite beautiful!</p>
<p>truly amazing process. </p>
<p>congrats Gabe! Looks so great man! Love the design &amp; process!</p>
so difficultT_T
this is so beautiful
<p>Very, very cool project! I really enjoyed reading your process in making this. </p>

About This Instructable




Bio: Interdisciplinary Artist
More by gabrieldunne:NAAG XY Hyper Terra Tetra Table 
Add instructable to: