有可能利用视觉残留,不断的刷新 canvas 来显示一张图片吗?

2018-09-19 07:33:10 +08:00
 rabbbit

把图片分成两半交替显示, 图像会闪动.

预览 https://aaron-bird.github.io/CanvasDemo/

代码 https://github.com/Aaron-Bird/CanvasDemo/blob/master/index.html

想问下为啥会闪? requestAnimationFrame 每秒绘制 60 帧,人眼不是 24 帧就够了吗?

4126 次点击
所在节点    问与答
36 条回复
KevZhi
2018-09-19 11:09:27 +08:00
24hz 只是人眼能识别为连贯画面而不是单独画面的阈值,不感知到闪烁需要 48hz
also24
2018-09-19 11:25:59 +08:00
为什么要闪原图,应该闪水印啊
一张水印在上,一张水印在下
also24
2018-09-19 11:29:37 +08:00
补充,上下水印的话刷新频率可能不够,应该把图片切成几百份,然后随机选择 2~3 份出现水印,并逐个更换。

只需要保证水印在人眼中不出现视觉残留就行了。
huawuya
2018-09-19 12:30:37 +08:00
闪恰恰是因为视觉残留,因为你每次把整个 canvas 都清空,然后画半张图,另外半截就是白色,图像有视觉残留,白底色同样会有视觉残留,所以看起来就是闪的,如果每次只清除要画的半张图的位置(如下面代码),就不会闪了,

canvasCtx.clearRect(0, i==0?0:img.height/2, width, img.height/2);
canvasCtx.drawImage(...arr[i]);
noe132
2018-09-19 12:35:03 +08:00
连 pwm 背光几百 hz 的闪烁都有人觉得看了伤眼,你这个去取 60hz 肯定很明显。
w88975
2018-09-19 13:41:01 +08:00
这样交替显示有啥好处呢
zhzer
2018-09-19 13:47:09 +08:00
因为电脑 cpu gpu 还要加工一道
CSGO
2018-09-19 14:35:15 +08:00
你这个在我 240hz 的显示器上看还行啊。
cs8425
2018-09-19 15:06:34 +08:00
https://aaron-bird.github.io/CanvasDemo/tel.html
这个还是闪
这行
canvasCtx.clearRect(0, 0, width, height);
去掉才真的不闪
qyxx
2018-09-19 15:28:39 +08:00
24fps 视频和 60fps 视频、144fps ( hz )的游戏人眼看上去都会有明显区别。电影的 24fps 是视频采集和处理时就已经是平滑的画面了,所以放映时能感觉到连贯。在运动场景,较低的拍摄帧率 暂停时会得到运动模糊的画面,虽然帧数不高但显也得自然。而拍摄就使用高帧率的话暂停也能看到清晰的画面,所以也是有区别的。如果帧率低又没有运动模糊的视频,看起来也会显得卡顿,比如把高帧率的运动视频直接减掉帧数。所以在需要实时响应的电脑画面和游戏响应上,越高越好,都是能看得出的。我现在用 144hz 的显示器看 24-30 帧的视频都会有明显的卡顿感,不用补帧看根本看不下去。
digimoon
2018-09-19 15:43:22 +08:00
lz 是想在液晶上模拟显示以前 crt 扫描吗?

@qyxx 游戏会觉得怪我觉得是因为游戏帧间隔不稳定的原因,毕竟前半秒显示 59 帧后半秒显示 1 帧也叫 60fps,视频 24fps 和 60fps 能看出流畅度差别,但是 24fps 的帧间隔时间稳定的话人看久了应该就习惯了不会太难受
qyxx
2018-09-19 15:48:03 +08:00
@digimoon 游戏即使稳定 60 帧,和稳定 144 帧还是能看得出差别的,用了 144hz 显示器你会发现连最普通的鼠标滑动都流畅了很多,系统 UI 也感觉更顺滑了。而视频感觉 24-30 简直是幻灯片,特别是在运动场景下能看到两帧之间的不平滑 从左边一下子飞到右边。和流畅的系统 UI 帧数形成了对比,就感觉看 24-30 帧视频非常不爽
meteor957
2018-09-19 16:25:47 +08:00
跟看鬼片似的 打开吓我一跳
pkoukk
2018-09-19 17:15:53 +08:00
楼主是根据那个截图的问题来的灵感么?
问题是不清空旧帧的话,截图出来的还是全的。清除的话,画面会严重闪烁
jy02534655
2018-09-19 17:41:17 +08:00
https://aaron-bird.github.io/CanvasDemo/tel.html
显示器:144hz
操作系统:win10 家庭版 64 位 17134
谷歌浏览器:69.0.3497.100 一开始图片狂闪,后面趋于稳定
edge:一开始无图片,后面稳定
ymj123
2018-09-19 17:46:51 +08:00
卧槽,一直在闪啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/490661

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX