Motion-Blurred Mouse Pointers?
Dean Siren asks: "Now that GUIs are getting prettier, will they also motion blur the mouse cursor? With most monitors running at 70-90 Hz, the mouse looks a tad jumpy if you follow it with your eyes. Such a feature would make the mouse appear smooth even below 70 Hz, and with all the CPU and GPU clock cycles to spare on most PCs, should not slow the system much. Does such a feature exist in any GUI?" I doubt such a feature exists currently, but do you think something like this would be useful?
I do know that in Windows 9x's Mouse Control Panel there is a feature to blur the pointer. -Jey Kottalam Armageddon Games http://www.ArmageddonGames.com
--
* CmdrTaco is an idiot.
"Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
With Windows NT on top of VMware 1.x on Linux, I had really atrocious mouse performance (many stops in mouse movement, etc) with a PS/2 mouse (the physical mouse).
When I switched to a serial mouse performance was fine, which I put down to the mouse sampling rate being lower. This may have been fixed, but I expect the load would be higher.
In fact, you'd probably get best performance from using serial for the virtual and physical mice.
Fading mouse trails are _NOT_ motion blur. I blame 3dfx and their "T-Buffer" bullshit for this misconception. Simply mixing each frame with faded versions of the last few frames is just plain ugly. It certainly isn't motion blur.
_ motion.htm
see: http://freespace.virgin.net/hugo.elias/graphics/x
for a better description.
Now, I don't know of any studies off-hand about rapid objects moving across the screen (though it seems like a good one for someone to do - hmmmm), but it seems reasonable that the Nyquist freq for things like mouse cursor movement is at least correlated to speed. Which means, the bigger the screen, the faster the acceleration, the more you would need to sample. If you've got a 1000 pixel screen, and acceleration is set to get the mouse from one side to the other in one second, then a sampling rate of 100Hz produces 10 pixel jumps. As mouse cursors are often smaller than 10 pixels (e.g., the I beam), I would not be surprised if people perceived discrete jumps.
This is why you need real motion blur. Real motion blur would treat the samples as points on a presumed-continuous curve. Once you've reconstructed the curve, then go back and take the section of the curve covered by the time interval you are drawing, and draw a polygon covering the entire range of motion. Enhancements would include fades along the length, beyond the range covered by the sample interview. This is computationally a pain in the ass.
The problem is complicated by latency - the more time you spend computing this stuff, the older the mouse position is when you finally draw it. Get too far behind (typically 100 milliseconds) and the user no longer feels in control.
For some related stuff in 3D, focusing on how these problems get even uglier in a distributed environment, see m y paper on using blur and transparency to give the user added information about latency and such like.
-----
Klactovedestene!
The mouse pointer being "jumpy" is an artifact of aliasing. The position is being discretely sampled at intervals and displayed at those discrete positions, missing out all information on the path in between. At lower rates, you'll notice there are large gaps between cursor images when you move the mouse quickly.
In theory, the pixels between the old and new position need a proportion of the mouse image also applied to them, somewhat like a "speed blur". This need only be a subtle amount. This effect is in no way less correct than discrete jumps, and if anything it's technically a more correct representation of what's going on with mouse movement.
Simply increasing the mouse sampling rate will not cure the problem. You would need an infinite rate to fill all positions between jumps (although practically it'd probably be 1000Hz or something).
Win2k darkens the area under the mouse ever so slightly like a show, which does increase the cool factor by alot and the usefull factor by a little :) it is easier to see the mouse ... however you gotta run win2k to get that feature so ...
Free Techno/Jazz/DNB/MI Music by guys obsessed with monkeys!
Motion blur would simply add a fade to the mouse-trails feature. So do you really just want mouse-trails?
I'm not sure how a motion blur would affect the "jumpyness" of the cursor.
Are you actually asking for sub-pixel accuracy? That would make more sense in terms of jumpyness. I mean, right now, I can see the cursor "jump" from one pixel to the next, but I find this useful, I often select things by pixel (in graphics editing, etc.).
So, if you want a true motion blur, you basically want mouse trails. Maybe you are asking for one thing (sub-pixel accuracy) and calling it something else.
In any case, I can't see how this would be anything more than another cutesy feature like animated windows and menus. I personally hate these things, and always turn them off. I don't want to wait for my menu to pop out or my window to minimize. It's a waste of my time. I feel lie this would be as well. Even if it's only taking a tiny bit of my resources, I don't want it.
The quick solution if you have a PS/2 mouse is to crank up the refresh rate of your mouse, but the downside of this is that it severely hogs down your system. If you crank it up to 100 or 200, the mouse will be quite fluid but you'll also notice that since the PS/2 port isn't polled but rather runs on an IRQ, it also taxes your cpu much more since it will be switching context 5 times more frequently than the default.. now it just so happens that context switches are one of the slowest things to execute on an x86 cpu so even on an 800mhz box it can be quite noticeable when anything else is being animated at the same time. Just try it out by dragging a window around your desktop and you'll notice that the faster you drag it, the jumpier it will get because the mouse is sending more interrupt requests to the cpu. Very technical but my honest suggestion is to get a USB mouse :)
-Billco, Fnarg.com
I bet you're using a serial mouse, right? Serial mice only sample at about 10Hz. This means they look dreadful. Try moving the mouse in small circles; on a serial mouse you'll only get about four pointer images on the entire circle.
If you switch to using a PS/2 or USB mouse, you'll be far, far better off. They sample at 25Hz or up (and I gather you can configure the rate, too). The first time you try one you'll be astounded at how smooth it is, and shortly after you'll never be able to use a serial mouse again without wincing.
Look for something called "ps2rate" and crank up the sample rate for the mouse, then it looks much smoother. Some "gaming mice" come with such utilities...