Smart3D Episode #7 — Bringing Polygons to Life

Nice-looking graphics looks nice. Well, mostly. But with Interactions it starts to live!

As the title says, Interactions add real value to virtual objects — no matter if in AR or VR scenarios.

In Smart3D we use Interactors to connect the user’s events to manipulations of the virtual world. There’re even two of them: Global and Local Interactors. The Global interactor is a singleton according to the Highlander principle (There can be only one!). We’ll come back to it some day as it’s really a complex dude, for now take it as a default: if no Local interactor fires, the Global one will takeover control.

Local Interactors are linked to arbitrary components in the scene. They will be found by up-traversal starting at the hit component and instantiated dynamically. They follow a functional approach but can carry some state information, if needed.

Local Interactors typically operate on the component they’re assigned to, and its sub components, but they may even break-out and manipulate neighbors and others! We use this e.g. for partial Interactors like used for the flap doors in the pic, which are updating each other.

Local Interactors operate on a virtual scene-graph API. By using a general purpose language you’re pretty unlimited in what you can implement, compared to a fix set of pre-defined interactions to chose from. We’ll take a look at both this API and also the way it can be implemented even for non-JavaScript run-times in a further Episode. For now: obviously, it fully operates on the client side for best real-time performance and scaleability…

In the picture above you see the World’s first interactive Cycles rendering! Okay, you got me… just #FakeNews…