【问题标题】:How to apply shaders to the final HDMI video output of a computer? [closed]如何将着色器应用于计算机的最终 HDMI 视频输出? [关闭]
【发布时间】:2021-06-04 13:42:09
【问题描述】:

我希望能够将自定义最终着色器应用到我 PC 的 HDMI 输出,然后再发送到我的显示器。

例如,假设我正在观看一部旧纪录片的 youtube 视频;我希望能够将着色器应用于整个显示器,以模拟旧 CRT 电视的外观。有没有人对我如何仅通过软件实现这一点有一些指示?

我在 Windows 10 上有一个 GeForce 显卡。如果可能的话,我还希望能够在 MacOS 上执行此操作。

【问题讨论】:

    标签: opengl graphics shader video-capture video-card


    【解决方案1】:

    在此演示阶段,您无法控制视频。当您观看 YouTube 视频时,大概是通过网络浏览器,浏览器应用程序会渲染视频并将其传送到桌面窗口管理器,桌面窗口管理器将来自应用程序和操作系统本身的数据组合成一个视频帧,以通过 HDMI 链接“发送”到连接的监视器。 Windows 不为您提供更改合成图像的服务,因此您无法在此阶段应用着色器,尤其是使用 OpenGL,因为为什么要使用 OpenGL。

    你有几个选择,但没有一个真的很简单。

    您可以将 YouTube 内容呈现在一台显示器上,然后使用 Desktop Duplication API 捕获整个显示器的合成外观,将其用作着色器的输入纹理,应用效果,然后在另一台显示器上显示输出在您的播放器应用程序中。

    或者,您可以自己实现媒体播放器,它从 YouTube 获取视频,然后根据您使用的 API 或库,您可以根据需要修改正在播放的视频帧序列。准备好图片后,您可以在类似播放器的应用程序中显示视频。

    【讨论】:

    • “我认为最终我可能会制作位于计算机和显示器之间的定制硬件。”您可以使用带有 HDMI 捕获和 GPU 的 PC 来做到这一点。但是,这样做会增加额外的延迟,如果幸运的话,您最多可以将其降低到 1 到 2 帧,但即使这样也需要付出很多努力。
    • 另请注意,AMD 的 firepro/radeon pro 工作卡支持 DOPP,这正是您想要的:在 windows 合成器的 textrue 输出到显示器之前对其进行后处理(或完全替换) .
    猜你喜欢
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多