Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Evgeniy Andreev
    @gsomix
    so AdaptiveFunc and adaptive { ... } is preferred way to write controllers? shouldn't it be in base?
    or instead we could to fix afun
    Evgeniy Andreev
    @gsomix
    or deprecate? :hmm:
    Harald Steinlechner
    @haraldsteinlechner

    @krauthaufen @haraldsteinlechner hey, what's purpose of <DebugType>full</DebugType> in rendering examples?

    examples are generated by new.fsx and for some reason in the template this was activated. that is why it is everywhere, but honsetly i cannot imagin why it should be necessary

    Evgeniy Andreev
    @gsomix
    @haraldsteinlechner can we remove it? VS2019 and Rider both complain in debug
    Deterministic builds only support portable PDBs (--debug:portable or --debug:embedded)
    Harald Steinlechner
    @haraldsteinlechner
    please remove
    Evgeniy Andreev
    @gsomix
    OK!
    Harald Steinlechner
    @haraldsteinlechner

    quick question. What's the difference between afun and AdaptiveFunc? I'm just trying to make a simple movement controller, and afun doesn't seem integrated with AdaptiveFunc or the Mod module. Should I be using the adaptive computation expression instead of controller?

    I'm both glad and sorry trapped into controller troubles. Glad since contribution seems to be needed. Sorry because you found one of the darked holes so early. In fact camera controllers have a long history for krauthaufen and me - and unfortunately we regularly escalate somewhat in that matter. in retrospecive we remember from our adaptivefunc stuff that it is very correct in terms of timing. What we also found is that it is rather hard to work with (maybe just because of chaos and missing docu). I just looked it up, people most often use direct construction of AdaptiveFunc using adaptive blocks. i think this is the simpliefied last version which is used the most. So in the end the whole controller thing in rendering might not be that bad if there was better documentation.
    Also, there could be potential in using a real FRP library.
    The first versions of those controllers appear in logs in early 2015. in later 2015 afun appears in late 2015. So to sum up, in practice people tend to use adaptiveFunc (which is a->a i thing) since it might be easier to work with. I would suggest going this way?

    this controller is rather easy to extend work with etc. we then found that it could be better in terms of timing and interpolation. then, again we escalated again and introduced a new camera controller: https://github.com/aardvark-platform/aardvark.media/blob/master/src/Aardvark.UI.Primitives/FreeFlyController.fs#L412 which allows to use multiple integration methods such as runge kutta in order to get super precise sums for non-linear movements.
    Harald Steinlechner
    @haraldsteinlechner
    @gsomix ahhh cool!
    Georg Haaser
    @krauthaufen
    @haraldsteinlechner good summary of our misery 😀
    Evgeniy Andreev
    @gsomix
    @haraldsteinlechner @dallinbeutler it would be cool to create issue with this explanation (chat log is pretty fine)
    otherwise it's lost :)
    Harald Steinlechner
    @haraldsteinlechner
    ok. good idea. will create one
    Evgeniy Andreev
    @gsomix
    thanks!
    @haraldsteinlechner @krauthaufen btw do you have fixed timestep implementation in rendering?
    if not is there way replace render loop code with custom?
    thanks
    Harald Steinlechner
    @haraldsteinlechner
    for non-animated scenes we have no monolothic mainloop. whenever something changes we trigger rendering. why is it this way: we don't render when nothing changes. this is a nobel goal. what we have if you want to have animation, the renderwindows provide a mod called win.Time which is a Mod<DateTime>. So for animations the official recommendation is to Mod.map on this time. An example which refines this approach with higher precision timing could for example be found here: https://github.com/aardvark-platform/aardvark.rendering/blob/master/src/Examples%20(netcore)/10%20-%20NBodyCompute/Program.fs#L201
    For fixed timestep animations, one can do a much easier approach, as given here: https://github.com/aardvark-platform/aardvark.docs/blob/master/src/BackgroundColor/Program.fs#L39
    is this approachable?
    additionally the camera controller in rendering is kind of cool. as long as the animation should be active, frames are produced as fast as it can, and if you stop the animation the application falls back to "only render when again something changes"
    Evgeniy Andreev
    @gsomix
    got it
    Harald Steinlechner
    @haraldsteinlechner
    and via those adaptive functions, all dependencies for input values get tracked precisely. as an example if you have an animation till a button is pressed, the adaptive function has the button as input dependency
    Evgeniy Andreev
    @gsomix
    yes, I think I just can just replace Sleep with accumulators to have more precise fixed timestep
    Harald Steinlechner
    @haraldsteinlechner
    ah you mean an inner loop?
    Evgeniy Andreev
    @gsomix
    I want to accumulate time to perform world update (let's speak in game terms :)) at fixed rate
    Harald Steinlechner
    @haraldsteinlechner
    if i understand correctly this sounds like a good idea. but then one could just have a physics thread and when desired flush data into the mods for rendering?
    this also is somehow related to a student project some time ago. in his aardvark based project he explored vr interaction techniques. https://philipperler.net/2017/06/13/haptic-feedback-in-room-scale-vr/
    he was kind of the first trying out elm stuff in combination with VR and a physics engine behind
    what he did there was roughly:
    • have immutable world
    • compute changes, flush to physics system
    • physics run in physics engine
    • flush back results into immutable world
    Harald Steinlechner
    @haraldsteinlechner
    is linux support dead after our backend program cleanups?
    @krauthaufen
    will check in the evening
    Georg Haaser
    @krauthaufen
    hey, i haven't tried the linux rendering for a long time but at least vulkan should be working. I don't recall a reason why GL shouldn't work but as always coule take a day or two really makingbit run again.
    Harald Steinlechner
    @haraldsteinlechner
    lol for the animation topic there is already a wiki entry which is empty: https://github.com/aardvark-platform/aardvark.docs/wiki#faq-aardvark-programming
    Dallin Beutler
    @dallinbeutler
    haha I guess that wasn't a small question! So you fully recommend the Elm style in https://github.com/aardvark-platform/aardvark.media/blob/master/src/Aardvark.UI.Primitives/FreeFlyController.fs#L412 and https://github.com/ErlerPhilipp/VR_DA vs the pure rendering approach with adaptive blocks? I'll definitely dive in those!
    Harald Steinlechner
    @haraldsteinlechner
    watch out VR_DA is old. since then a lot developed in aardvark.media and aardvark.vr https://github.com/aardvark-community/aardvark.vr
    and... it depends. if more and more ui and interaction comes in, media and elm style becomes more and more attractive
    in the case you simply wanted to have a camera for a simple game or tech demo, pure rendering is ok
    we have aardvark users who simply use aardvark.rendering and build a user interface with wpf for example around it. this is doable, but with more and more interaction you will find a more functional style (in contrast to mod.change and transact changes) more and appealing.
    Harald Steinlechner
    @haraldsteinlechner
    PRo3D (http://pro3d.space/) completely switched from pure rendering + ui code to purely media based which really turned out well since it is interaction focused. here, in samy the salmon @gnufu and @hyazinthh implemented a game. here the focus lies on rendering techniques https://github.com/gnufu/SamyTheSalmon
    WalchAndreas
    @WalchAndreas
    btw we also have a blog: https://blog.aardvark.graphics/
    Harald Steinlechner
    @haraldsteinlechner
    we should add blog links to some places
    Evgeniy Andreev
    @gsomix
    @haraldsteinlechner you could send some posts to Sergey Tihon (F# Weekly)
    Georg Haaser
    @krauthaufen
    memo to myself (or anyone with admin access on my server: we should auto-build the blog if we didn't already. just like the web-stuff.
    Harald Steinlechner
    @haraldsteinlechner
    yep to both
    WalchAndreas
    @WalchAndreas
    @haraldsteinlechner blog is build from here.. https://github.com/aardvark-platform/aardvark-blog-new