Hacker News new | ask | show | jobs
by ptramo 354 days ago
As per the post, I wrote this tool to confirm I was getting jerks of ~10ms every few seconds on one USB port and not the other. This would _suggest_ I can catch differences around the ballpark of 100 Hz.

I'm game for a randomized blinded test on 120 Hz refresh rate vs 240 Hz refresh rate. I would indeed be very curious to confirm I can tell the difference with a proper protocol.

Many years back (we were on CRTs), I was in similar shoes, convinced my friend couldn't tell the difference between 60 Hz and 90 Hz when playing video games.

Turns out he only needed to look at the pointer through one push of the mouse to tell right away, successful 100% of the time in a blinded experiment.

2 comments

As to how you can perceive the difference between 120 events per second and 240, I have what I hope is a fairly simple explanation.

It's like lightning strokes of tens of microseconds making a lasting impression on your perception of the scene. You don't "count" strokes over time, but in space.

When you make circles fast and large enough on screen, you can evaluate the number of cursors that appear before your eyes. At 4 circles per second, is each circle made of ~60 pointers or ~30? Belief not fact: it's not hard to guess.

I was going to reply with this:

“If anyone wants to implement this, I think the way to do it is to put the mouse cursor randomly on the edge of a circle whose radius is a few hundred pixels. The randomness is important, though I’m not sure it would be possible to count how many cursors there are.”

And then I realized that doesn’t work, for a few reasons.

One is that you won’t be able to count how many cursors appear during one second. It’ll all look like a jumble.

That leads to the argument that you should place the cursors at a consistent spacing, and the spacing needs to make it so that the cursors stay at the same spot on the screen each loop around the circle.

Unfortunately that doesn’t work either, because you’ll end up seeing a trail of cursors going around a circle once per second, and counting the cursors is hopeless.

So I think you’d need to make a list of the spots on the circle where the cursors should go, then randomly select from them as quickly as possible. That will let each cursor be perceptible because they’ll be spread out over time; the next cursor won’t be just one pixel apart, so this eliminates the “trail of cursors” problem.

I’m still a bit skeptical this could work, but I admit I can’t think of a reason it wouldn’t. You’ll need to be careful, because it’s really easy to fool yourself that you’ve done it correctly when you haven’t.

It would be interesting to make a WebGL canvas and try this out for real. Or maybe just reposition the mouse cursor with Python instead of doing anything graphical.

It seems important to reposition the mouse cursor rather than use WebGL to draw frames, but I think both could work. Actually, the WebGL route would be more faithful to the question of whether gamers specifically can notice 240Hz; there are all kinds of reasons why repositioning the mouse cursor wouldn’t really tell you that. Vice-versa too, because it might be possible to notice when repositioning cursors but not when using WebGL, though I can’t think of why that would be the case.

Neat idea. Thanks.

> Many years back (we were on CRTs), I was in similar shoes, convinced my friend couldn't tell the difference between 60 Hz and 90 Hz when playing video games.

That’s a silly experiment. I could look at a CRT with a completely static image and tell almost immediately whether it was at 60Hz, 90Hz or 120Hz. Flickr at 60Hz was awful, 90Hz was clearly perceptible, and even 120Hz was often somewhat noticeable. And most CRT/graphics card combos would become perceptibly blurry in the horizontal direction at 120Hz at any reasonable desktop resolution, so you could never truly win. Interlaced modes made the flicker much less visible, but the crawling effect was easy to see and distracting.

The effects you describe are specific to CRTs only, right? Caused by the electron beam effectively illuminating one pixel at a time?
Yes this a (computer) CRT thing. The commenter might be misremembering the exact numbers, 60 Hz baseline is a flat panel thing, by the mid to late 90s, 75 Hz was something a typical computer CRT would generally aim for and was part of various standards and recommendations.
I’m fairly confident I remember the numbers right. And VESA DMT indeed has 1600x1200 at 60, 65, 70, 75, 85 and 120Hz, and IIRC my old CRT would sync at 144Hz as well with somewhat dubious performance.

https://glenwing.github.io/docs/VESA-DMT-1.12.pdf

> 60 Hz baseline is a flat panel thing

It's so many things, starting with the North American electric grid, NTSC, etc.

Yes my graphics card + monitor could theoretically run at more than 60 Hz. When I got to choose between resolution and refresh rate, I picked resolution. Hence 60 Hz.