-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fluid.jit.plotter update - full parity with fluid.plotter #417
base: main
Are you sure you want to change the base?
Conversation
Just to keep you guys posted, I changed the rendering to on-demand, now I can have open a 100 Another HUGE news, is that I figured out how to do individual point sizes with the |
- fix "let you be more draw" comment - change speedlim to qlim to avoid the timer thread - remove fluid.jit.plotter non-parity warning (since now there is parity)
Okay dear people, the PR is ready for review. Please, try it and try to break it, because implementing these new stuff (especially |
"One more thing": I added a workaround so that the
This fixes the problem on my setup, I can move the patcher window (containing a N.B: this only works if the patch was first opened (or |
hmmmm and what is the behaviour between 2 types of screen without the fix? I'm super worried about the one-way-a-way-another-way-the-other-way behaviour... |
The points of a
Note that the red circle in the example below (that is a This bug is visible on As you see the adjustment might not happen immediately, but I did not want to spend more compute resources in detecting it snappier (assuming that users won't drag windows back-and-forth all the time...). But if you don't want this to be part of the abstraction I get that and I can take it out, or maybe not have it on by default, just let me know what you think. |
Hello I reckon this is ready to review now? One point before I do so:
If it takes any resource at all, let's make it at least switchable? or is the resource so low that we can ignore? |
I would say it consumes very little resources, but probably not nothing. Here is how it works:
It sounds like a lot when I spell it out like that but I really haven't noticed any overhead. The periodic query in the js script also slows down to a 1000ms rate if it detects that nothing changes. |
this sounds sensible. if Rod has not complained, I will test and merge like this. |
Okay! Let me also test everything on Windows too. |
Everything seems to be OK on Windows too! |
Hold on with the merging, new update incoming (that fixes the retina stuff and does less ugly things when resizing). |
Did you want me to re-review this @balintlaczko ? |
I think it was @tremblap who did that, but if you could hold on a bit, @rconstanzo found some potential issues that are still waiting for me to investigate. But almost there :) |
indeed I am in standby |
Just found some funky edge behaviors with edit: |
@balintlaczko you'll let me know when you think it is ready to deep check? |
Yeah, I still have some testing/fixing to do, but I'll report here when all is done! |
👀 |
@balintlaczko if we were to release soon, is your revision almost there or we skip a version? |
This is a major update for the abstraction, as it finally achieved full parity with the interface and behavior of
fluid.plotter
, while keeping the speed benefits.Added
pointcolor
message for setting individual point colors (parity with the same message offluid.plotter
). This can be especially useful when every point needs a unique color associated with it:setpoint
message for setting individual points, just like influid.plotter
. There is a caveat though, sincefluid.jit.plotter
also has therefer
interface to load large datasets super fast. To avoid accidentally modifying outside datasets, if an earlier reference was specified (via therefer
message) the plot will switch to its internal dataset, making the previous set of points disappear. If you want to load a dataset and then edit its points via thesetpoint
message, then load the dataset first as a dictionary.pointsize
will now allow to change the size of individual points (minor compatibility break to the previousfluid.jit.plotter
version). Also, there is nohighlightedpointsize
message anymore.pointsizescale
, that will scale all points (regular and highlighted), similar topointsizescale
influid.plotter
.highlightscale
, that allows you to change the size ratio between the highlighed points and regular ones; defaults to 2.4.Fixed
zooming in now respects implicit mirroring via
range
(bug demonstrated here)decoupled object position between Edit mode and Presentation mode (bug reported here)
now using
jit.gl.render
instead ofjit.pworld
to render frames on-demand, instead of a constant 60 FPS. This greatly reduced idle GPU usage, which means now it is possible to have even a 100fluid.jit.plotter
instances open and sitting around without a noticable overhead. Because of the "resize watcher" script, drawing will still tick at 1 FPS on idle (so not 100% on-demand), but that did not seem to cost a lot in my tests, so I left it in there. In my experience the change also made the interaction look smoother on a high refresh rate screen.(not sure why this PR still has commits from the previous PR, I must have messed something up, but if I can fix it, let me know, the new commits are only the ones from April this year)