我正在寻找有关在处理中实现时间抖动的一般方法的一些输入。
目前我有一个处理草图,它生成一个十六进制文件,可以通过 SPI 发送到 APA102 LED 灯条。我能够实现的帧速率应该足以实现时间抖动以增加 LED 的动态范围,主要是在较低亮度的情况下。我查看了 FastLed 和 Fadecandy 以尝试了解它是如何完成的,但我无法真正弄清楚。使用这些库不是一个选项,因为动画应该在 hex 文件中“硬编码”。
谁能指出我正确的方向?
编辑:我目前实现了以下内容:首先,我计算 LED 上可实现的帧速率,这给出了我可以插入的抖动帧的数量,基于我的串中 LED 的数量和 SPI 时钟速度。LEDstrip 可以以 420fps 的速度更新,所以我每帧有 7 个“虚拟”帧,仍然能够拥有 60fps 的基本刷新率。然后我计算一个 7x7 的查找表,如下所示:
0 0 0 0 0 0 0
0 0 0 1 0 0 0
0 0 1 0 0 1 0
0 1 0 1 0 1 0
0 1 0 1 1 0 1
1 1 0 1 1 1 0
0 1 1 1 1 1 1
我使用浮点数进行所有伽马颜色校正计算,查找表中的每一行对应两个值之间的 1/7 步长。然后将这些添加到底 RGB 值以实现抖动。然而,这一切在视觉上并没有真正改变。与没有抖动的动画相比,我看不出有什么不同。我希望看到类似https://www.youtube.com/watch?v=1-_JtRl2ks0