【教程】雷蛇键盘灯播放视频 |
您所在的位置:网站首页 › 雷蛇键盘rgb灯光串色 › 【教程】雷蛇键盘灯播放视频 |
准备工作 准备一把雷蛇 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 |