【问题标题】:How do I render 3d model into directshow virtual camera output如何将 3d 模型渲染为 directshow 虚拟相机输出
【发布时间】:2011-02-07 12:42:18
【问题描述】:

我想通过 DirectShow 提供一个虚拟网络摄像头,该摄像头将使用来自现有摄像头的视频源,该摄像头运行一些跟踪软件来找到用户的面部,然后覆盖一个 3d 模型,该模型看起来会移动用户的面部。我正在使用第三方 api 进行面部跟踪,效果很好。我从那个 api 获得位置和旋转数据。

我的问题是渲染 3d 模型并进入视频源并直接显示的最佳方式是什么?

我在 windows xp 上使用 c++。

【问题讨论】:

    标签: c++ directshow


    【解决方案1】:

    您可以使用 VMR 过滤器(具有多个输入引脚的视频渲染器)覆盖您的图形。 VMR-9 过滤器基于 Direct3D,因此您可以对模型使用 Direct3D 渲染并将输出馈送到 VMR 上的辅助引脚,以与馈送到主引脚的相机输出重叠或 alpha 混合VMR。

    【讨论】:

    • 如何从 Direct3D 输出到辅助引脚?
    • 您需要一个连接到 VMR 的过滤器。当您获得要填充的 IMediaSample 缓冲区时,查询 IVMRSurface9 接口。这将使您能够在将 IMediaSample 对象传递回渲染器之前访问可以使用的底层 D3D 表面。
    【解决方案2】:

    如果您使用 DirectShow,那么使用 DirectX 进行渲染似乎是合理的。

    【讨论】:

    • 我可以使用 DirectX 渲染到 directshow 虚拟摄像机源而不是直接渲染到监视器吗?
    猜你喜欢
    • 2014-09-27
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    相关资源
    最近更新 更多