我希望能够在将其发送到我的显示器之前将自定义最终着色器应用于我的 PC 的 HDMI 输出。
例如,假设我正在观看一部旧纪录片的 youtube 视频;我希望能够将着色器应用于整个显示器,以模拟旧 CRT 电视的外观。有没有人对我如何仅通过软件实现这一点有一些指示?
我在 Windows 10 上有一个 GeForce 显卡。如果可能的话,我还希望能够在 MacOS 上做到这一点。
我希望能够在将其发送到我的显示器之前将自定义最终着色器应用于我的 PC 的 HDMI 输出。
例如,假设我正在观看一部旧纪录片的 youtube 视频;我希望能够将着色器应用于整个显示器,以模拟旧 CRT 电视的外观。有没有人对我如何仅通过软件实现这一点有一些指示?
我在 Windows 10 上有一个 GeForce 显卡。如果可能的话,我还希望能够在 MacOS 上做到这一点。
在此演示阶段,您无法控制视频。当您观看 YouTube 视频时,大概是通过网络浏览器,浏览器应用程序会渲染视频并将其传送到桌面窗口管理器,桌面窗口管理器将来自应用程序和操作系统本身的数据组合成一个视频帧,以通过 HDMI 链接“发送”到连接的监视器。Windows 不为您提供更改合成图像的服务,因此您无法在此阶段应用着色器,尤其是使用 OpenGL,因为为什么要使用 OpenGL。
你有几个选择,但没有一个是真正简单的。
您可以将 YouTube 内容呈现在一台显示器上,然后使用 Desktop Duplication API 来捕获整个显示器的合成外观,将其用作着色器的输入纹理,应用效果,然后在播放器的另一台显示器上显示输出应用。
或者,您可以自己实现媒体播放器,它从 YouTube 获取视频,然后根据您使用的 API 或库,您可以根据需要修改正在播放的视频帧序列。准备好图片后,您可以在类似播放器的应用程序中显示视频。