D3D动态纹理播放视频

 

 

 

D3D动态纹理播放视频

 

 

 

       动态纹理应用范围很广,比如在D3D或OpenGL中播放视频便是使用了这一技术。播放视频当然可以用VMR,但是VMR是老版的DXSDK中提供的一个模块,已经过时,而且VMR必须使用DirectShow,就目前看跨平台的ffmpeg多媒体框架等还是占领不少领域的,即便是微软也想用新的Media Foundation框架取代DirectShow。所以这里直接使用动态纹理实现播放视频。

       首先要用多媒体框架搭建播放器,我们这里使用DirectShow搭建一个播放WMV文件的播放器。需要写一个用于播放的filter,它的任务是把WMV中解码后的的视频画面(一帧)写入一张动态纹理中。在D3D中会用这张纹理绘制出来,从而播放视频。我这里使用了D3D作为示例,当然使用OpenGL,以及OGRE等引擎也是如此。

 

下图所示为DShow的Filter Graph:

 

        上图中的名叫Texture Renderer的filter便是写入动态纹理,给D3D渲染。

 

 

下面是D3D渲染结果:

 

       我同时在一个立方体和一个矩形上播放视频。

 

应用在项目中,加入评分等功能:

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值