Stuttering rotations while moving cursor on viewport

But generally, on any pc, no 3d connexion, even the normal “2D” mouse disconnected, turntable command doesn’t give a smooth animation (fps and frame time) even with an empty file, just the grid.

It’s incredible how big is the difference, from CAD to videogames. On games you can see millions of polygons changing place and color at rock-solid 60fps or more… on rhino the grid alone stutters.

I am not criticizing, i love rhino.

No it’s not really incredible. In games everything’s been optimized a dozen ways(by programming teams bigger than the entire CAD industry) to flow as quickly as possible, and the polygon counts are never, ever, never actually THAT high due again to optimizations and clever level layout and normal mapping that can make a square look like a sphere. Also, nothing happens in a game that hasn’t been accounted for, they are “static” no matter how “dynamic” they look. “Content creation” is entirely different.

No, it’s not. But they tend to structure (and process) data differently compared CAD and Business applications (OOP isn’t optimal for having an entire army marching, and no, they don’t have to make moving figures “static” either).

In games they can just skip bothering about precision (the eye won’t catch small mishaps in collisions etc).

I don’t know why you keep harping on that same misconception about gaming vs other “every detail-changes-the world” kind of software which games does NOT suffer from but which CAD and Business systems suffer from. Data must be correct in the latter case, in games you can skip frames if the CPU/GPU load is to big simply because … nothing breaks if you do. So please…

// Rolf

I can’t repeat any stuttering with turntable and an empty model. Do you have modified grid settings from the default?

Personally, I’d prefer the priority was put on status bar stutter during ongoing commands.

Anyway

I did post a video in slowmotion back there. Turntable alone have frametime that vary +/- 50% or even more.
I can see that all day, but maybe because i’m used seeing high smooth framerate.
For example most of people are not bothered seeing fast scenes at cinema’s 24fps, i do, i’m used to solid 60fps and 24 is less than half!

I don’t want to stick on the frametime matter in specific but, for example, disabling status bar and properties tab make the turntable run 3x faster! (not moving any mouse all the time).
It’s like the viewport camera animation (turntable in this case, 3dmouse in other) is already “choking” on the Rhino UI itself!

This is about me being able to reproduce what you are seeing. If I can’t reproduce the problem, I can’t fix it. I don’t know which specific video you are referring to above and have been testing turntable on an empty scene with a standard mouse. This is why I was asking if your grid settings were custom as that is the only difference I can think of at the moment between your tests and mine.

How are you determining frame rate? I doubt the actual time it takes to redraw a frame in a viewport is changing, but if you have a tool for viewing frame rate during the Turntable command, then I would like to see what you are seeing.

You’re right.

My sight.

But again, talking about frametime is the lesser problem. Having 3dmouse animation totally haltering during a command (if moving the cursor) is the bigger problem.

Anyway.
So far, using a software to record the screen change the context and actually slow down or even speed up the turntable animation. (https://en.wikipedia.org/wiki/Observer_effect_(physics) lol)
I can record it at 960fps with my phone, and i did upload a video back then ^ …

I just found out we can use FPS monitor (https://fpsmon.com/en/) to add an overlay, and luckily it doesn’t alter the situation. Used this profile: FPS 2.json (53.4 KB)
(beware, it randomly made my rhino crash sometime)

So, no 3dconnexion connected, an empty rhino file:
PT = Properties tab
The interesting part is the white graph line (frametime), i’m sure you know how to read it.


Just moving the cursor on viewport. PT on.
moving mouse Prop on


Just moving the cursor on viewport. PT off. Much more stable frametime.
moving mouse Prop off


Turntable. Still cursor. PT on. Low FPS, some frametime spike.
turntable prop on


Turntable. Moving the cursor. PT on. More spikes.
turntable prop on moving mouse


Turntable. Still cursor. PT off. Best scenario! (the spikes on left are the screenshot keypress)
turntable prop off


Turntable. Moving the cursor. PT off. Spikes due to having Status bar on. If off, this doesn’t happen.
turntable prop off moving cursor


From one context to the other the FPS and/or frametime change by 10x … while there isn’t even anything to “snap” on or else.
My comparison with games was probably stupid … but while on games the more raw power you put and the more fps and stability you get (generally), here on rhino we have problems without even having a mesh triangle on screen!
Life is unfair :sob:

I’d love to have an always-smooth navigation on rhino.
(When the geometries loaded are too many for the GPU/GPU, ok, that’s a different matter…)

That frame rate tool is giving good information, but is a bit misleading. The time it takes to draw a single frame in Rhino is not changing. The issue is that there are other windows that are updating and causing a lag in the overall turntable effect. When turntable is on, all event from the operating system are being processed which is why the status bar updates or you can adjust the viewport with the mouse. TestMaxSpeed is different in that it is not allowing other messages to be processed while it is running.

Are your tests with a 3d mouse? I thought you reported that this was reproducible with a standard mouse.

No, it’s not even plugged. (I mentioned that in my … very long post)

Yes, any (2D) mouse on any hardware, as far as i’ve seen. But the turntable tests, to see the differences of having properties tab on or off it doesn’t even need to have the cursor take a role in this matter.

About stuttering and frametimes, anything that slow down turntable also slow down the 3dmouse navigation. There are common problems. That’s why i’m using turntable as a meter. It’s not like i use turntable function in my workflow :sweat_smile:

During TestMaxSpeed coordinates on Properties tab and Status bar are not updated (like it usually happen all the time) … so I’m not sure it gives useful information.

But, again, sorry to be pedant, i necro-ed this thread because currently moving the 3dmouse + moving the cursor during a function (for ex, 3d trimming of packed surfaces… very common) results in a total freeze of the viewport…
“Solution” is turning off Status bar.

Edit: on my G502 i can set up a pooling rate that avoid this problem, but on the new office i’m working i have some machines with their own mouses and those are not set-able.
Status bar is still making problems in situations as described ^ .
I can replicate that by setting 1000Hz on my G502 …

Edit2: FPS Monitor might be not perfect, but it says the same things my eyes see… i can see those micro stutters, believe me or not.

I get it :slight_smile: Just trying to figure out a repeatable case.

I was trying to explain that the true frame rate of drawing a viewport is not changing; the issue is that other windows on your screen are responding to messages for updating and are slowing down the perceived frame rate. It really doesn’t matter as the perceived frame rate is really all that matters with respect to this discussion.

What specific Rhino command are you using?

Seems like any command that require user to pick an object: trim, blend curves, blend surface, etc…


(sorry for my ugly english :upside_down_face: )

On my main Pc, no problem, i can set it to 125Hz pooling rate.
But on another workplace, 3dmouse + random cheap mouse can results in this:

Thanks, and that is not ugly English :slight_smile: I see that the mouse is just filling the windows message queue when in this high resolution mode. I’ll probably need to order one of these to figure out how to make improvements

1 Like

Is this the mouse that you are using?

No, i have this:


But its very likely that what you linked have the same software with programmable profiles and pooling rates…

Thanks, I’ll try a few things before I buy one of these. I hate to purchase things that will just end up in a landfill or under my desk after a month of testing if I don’t need to.

I am working on an idea that may improve the situation with the status bar and these high resolution input devices. I’ll try to get something into the V7 WIP for next week.

2 Likes

I rewrote a bunch of logic in the status bar to try and optimize refreshing of the x,y,z coordinates. This will be in next week’s V7 WIP. I don’t know if this will fix the case where your high resolution mouse is just filling the Windows message queue with a ton of mouse movement events, but it should help with some of the stuttering that you are seeing in other cases.

1 Like

RH-60248 is fixed in the latest WIP

1 Like

On my main machine, on latest WIP, 125Hz, 250Hz and 500Hz seems to go fine.
1000Hz is still able to fully-freeze 3dmouse movements, if during a command (trim, blend, etc)

Seems like an improvement; thanks for testing. I’ll try to think of other ways to improve this, but at the moment I’m not having any brilliant ideas.

1 Like

Not to necro an old thread, but i have been having this issue on and off. I find that if i quit and reopen rhino the problem goes away. rotating with my mouse is super smooth but my 3d mouse is slow. It makes me feel like its some kind of input buffering problem, since its not about display drawing.

However, I did turn off most of my properties tabs and the problem went away, so shrug