aardvark-platform / aardvark.rendering

Aardvark.Rendering is a high-performance, dependency-aware rendering engine. It is part of the open-source Aardvark Platform for visual computing, real-time graphics, and visualization.
https://aardvarkians.com/
Other
128 stars 13 forks source link

CameraControllers need more love, documentation etc. #42

Open haraldsteinlechner opened 5 years ago

haraldsteinlechner commented 5 years ago

In rendering we have AdaptiveFunc based camera controllers which have the advantage of precise dependency tracking with support for dependency triggered rendering and animations. There is also afun in base which is the interface the AdaptiveFuncs implemented. Unfortunately some combinators take afuns, some AdaptiveFuncs. Here, definitely, some consolidation and documentation is needed. The camera controller story continues in aardvark.media, where we have a legacy camera controller https://github.com/aardvark-platform/aardvark.media/blob/master/src/Aardvark.UI.Primitives/LegacyCameraController.fs which is approachable and easy to work with. Later we introduced another one with better interpolation scheme: https://github.com/aardvark-platform/aardvark.media/blob/master/src/Aardvark.UI.Primitives/FreeFlyController.fs#L412 which again is rather complex. A wiki entry explaining camera controller approaches and how to approach animations would be a nice one.

haraldsteinlechner commented 5 years ago

@gsomix @dallinbeutler @krauthaufen @ThomasOrtner

dallinbeutler commented 5 years ago

I'm struggling with this a bit still. Even having some comments in FreeFlyController explaining some of the math, would be great. And AttributeMap combined with Incremental.renderControlWithClientValues is THE way to inject messages from default Aardium window/Div events to camera messages? A little info on that class and workflow would be wonderful.

I'm not really stuck stuck. I just figured I'd provide some things that are a little more confusing for a beginner like me.