【教程】雷蛇键盘灯播放视频

您所在的位置:网站首页 雷蛇键盘rgb灯光串色 【教程】雷蛇键盘灯播放视频

【教程】雷蛇键盘灯播放视频

2024-07-17 09:34| 来源: 网络整理| 查看: 265

准备工作

准备一把雷蛇 RGB 键盘

下载并安装 Razer Synapse 雷云

下载 Razer Chroma SDK Sample Application(当然,也可以直接下SDK)

下载并安装 Microsoft Visual Studio(可选,如果你喜欢折腾)

Step 0

可能有小伙伴会问为什么不直接用 Chroma Studio 里的环境感知效果,或者使用 Wallpaper Engine 的联动效果。

Chroma Studio

当然也是可以的。不会你会发现即使把混合属性拉到最左边(锐利),也根本看不清视频的内容。

这个效果可能更加适合日常使用,可以实现一个自适应亮度的效果,即屏幕越亮,键盘灯越亮,屏幕越暗,键盘灯越暗。

Step 1

要实现近似这两个视频中的效果,其实只有一个 step 。

找到 Sample Application 中 Release 文件夹下的 RazerChromaSampleApplication.exe ,运行并点击 Ambient effect - Start Ambient Effect 即可。

RazerChromaSampleApplication.exe

现在你的键盘就会显示屏幕上的内容了。

Step 2

那么为什么我说是近似呢,因为我对这个程序的内容进行了一些修改。

太长不看的小伙伴可以直接在文章末尾下载修改后的程序。

首先我们来看一下官方的程序是怎么写的。

实现 Ambient Effect 的部分在 AmbientEffectDlg.cpp 的 _CreateAmbientFx1 函数中:

DeviceType 表示的是需要控制的设备种类,为 1 时表示键盘,这里为了方便只保留了键盘的逻辑部分。

13 至 25 行,获取屏幕的分辨率信息并进行一些初始化;

29 至 61 行,设置如何缩放屏幕内容;

63 至 83 行,将缩放的屏幕直接显示在键盘上;

87 行的 Sleep 控制刷新速度。

首先注意一下缩放的部分:

32 行的 SetStretchBltMode 指定拉伸模式为 HALFTONE ;

37 至 39 行,进行缩放并上下翻转。

SetStretchBltMode 能够指定 4 种本质不同的拉伸模式:COLORONCOLOR、HALFTONE、BLACKONWHITE、WHITEONBLACK。

其中后两者类似 PS 中的变暗和变亮,在每个区域内取出最暗/亮的像素,完全不适合播放视频。

COLORONCOLOR 相当于直接采样,固定间隔抽取像素,其他像素直接丢弃;

HALFTONE 在缩小图像时,每个像素是其对应区域内颜色的平均值,是最为常用的拉伸模式,但处理速度最慢。

我尝试了这几种拉伸模式,HALFTONE 对于单幅静止画面的表现是最佳的,而在图像连续运动时,COLORONCOLOR 的表现效果则更佳。HALFTONE 的平均操作容易将画面中的一些细节抹去;COLORONCOLOR 在图像连贯运动的过程中能够较好的展现出细节,但在画面趋于静止时,画面容易崩坏。

HALFTONE 模式下的 Calamity Fortune,颜色比较平淡COLORONCOLOR 模式下的 Calamity Fortune,颜色的对比更加强烈,播放时有星光闪烁感HALFTONE 模式下的 MARENOL,效果很好COLORONCOLOR 模式下的 MARENOL,残缺不全

最早我使用的测试视频为 Daisuke,在 HALFTONE 模式下人物的手部动作不能很好的看出来。而在 COLORONCOLOR 模式下,虽然有些支离破碎的感觉,但手部的运动基本都能看出来了。因此之后我均选用了 COLORONCOLOR 模式。

当然,在其他一些视频中,原来的 HALFTONE 模式效果可能会更佳。两种模式各有优劣,考虑到多方面因素(视频内容、处理速度,以及接下来的一个 step),我还是选择了 COLORONCOLOR 模式。

Step 3

考虑进一步优化,我发现了这样一个事实。

这个程序是把键盘当作一块 8 × 24 (实际只用到了 6 × 21)的屏幕进行显示。

但我们都知道:

键盘每个按键在程序中对应的位置编号,最左侧为行号,按键上为列号

在键盘的主要部分,按键在纵向并不是直线摆放的,因此这样会造成视频的一些扭曲。

为了修正这个扭曲,我对键盘和像素进行了重新映射。

首先我从某电商平台找到了一张键盘的俯视(平面?)图:

键盘俯视图

然后截取键盘部分,缩放宽度至 1080 ,测量每个按键的中心点横坐标。

于是我得到了这样的一个矩阵:

神秘矩阵

然后修改缩放结果为 6 × 1080,对于每个键盘灯读取所在行对应横坐标的像素颜色。

即得到最终我所使用的程序。

HALFTONE 模式也可以进行类似的修正,但是会更加麻烦一些,需要计算每个键对应的区域及区域中的平均颜色。

总结

其实直接用 Sample Application 的效果已经相当不错了。

如果你更喜欢修改后的效果,可以下载这个程序:

链接:https://pan.baidu.com/s/13gmR9QStHR_iv-Svi-PiBg

提取码:6juc

修改后的源代码:

链接:https://pan.baidu.com/s/11mQOBc4-5Tmis5fOu0BSgg

提取码:efct

所以其实我基本没有写什么代码,确实没有什么技术力。有时间了再写一些有意思的灯光效果吧(比如在键盘上玩游戏)。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3