Scottapotamas / total-perspective-vortex

Path planning and generation tooling for the delta robot
1 stars 0 forks source link

Motion planning #6

Closed Scottapotamas closed 5 years ago

Scottapotamas commented 5 years ago

The motion planner needs to:

Key Questions/Problems:

How do we perform the visibility culling?
Probably receiving a series of input splines (thus no thickness/surface) and need to apply a screen-space domain geometry culling step.

Culling against a plane (frustum) would be reasonably straightforward for these splines, but doesn't help with self-shadowing geometries infront of that plane.

We probably need to apply a thickening step to our geometry to decide what needs culling. Beam tracing as a concept seems conceptually close, though most implementations are focused on polygons.

Scottapotamas commented 5 years ago

In discussion, we could just manually add clipping planes in Blender/$TOOL which provide the suitable clipping requirements.

This concept can be extended to 'clipping geometry' in the form of a mesh.

  1. For a given spline, step over the length in small increments.
  2. Perform a intersection check between that point on the arc, and the camera (as we know the positions of both at this time.
  3. If we find a hit(s) on meshes/polygons, remove the brightness of the LED for that search-step.
  4. After this processing stage has been completed, search over the list of movements and remove any which don't have illumination data.

A lot of the edge cases aren't necessarily going to be an issue from an aesthetic standpoint (culling spline segments in lines normal to the camera, or tangential to another arc.

This would potentially allow us to also perform 'cast masks' on the spine data, that is, the understanding that certain parts (or entire splines) being drawn are X layers deep, and we could then do varied brightness of the LED for those back faces (would allow the back faces to be drawn, then objects behind the back face would be darker again).