在Ogre中使用DirectShow来播放视频--重新封装并测试通过

本文档详细介绍了如何在Ogre3D图形引擎中使用DirectShow播放视频,包括代码示例和关键步骤。教程修复了官方Wiki中的一些问题,简化了使用流程,并提供了易于新手操作的封装。同时,展示了将视频作为Overlay全屏显示和作为材质应用到物体表面的方法。
摘要由CSDN通过智能技术生成

 

 

在Ogre中使用DirectShow来播放视频,  原文可见官方Wiki中的文章:

 

http://www.ogre3d.org/wiki/index.php/DirectShow_video_in_ogre_texture

 

 

 

鉴于该文很多同志无法编译, 而且对于新手使用起来有些小麻烦, 所以简单修改了一下, 并且进行了简单的封装,

使用起来更容易, 特别对于新手,  下面先看看效果(视频熟悉吧, 暴雪的):

 

 

 

 

 

下面贴代码,

 

h-genutils.h

 

 

h-genutils.cpp

 

UtilsOgreDshow_private.h

 

 

 

 

UtilsOgreDshow.h

 

UtilsOgreDshow.cpp

 

 

好了, 下面简单说一下使用方法:

 

1. 初始化, 在Ogre初始化时, 初始化一下视频的管理器

 

m_OgreRoot->addFrameListener(new OgreUtils::DirectShowManager(vp));   //Directshow 视频

 

 

2. 加载视频

 分两种情况

情况一,   把视频作为Overlay来全屏显示, 很简单, 一句话就搞定:

OgreUtils::DirectShowManager::getSingleton().createDirectshowControl("videotest","welcome.avi",640,480);

 

 

 

 

情况二. 作为材质来使用:

 

OgreUtils::DirectShowControl *dcontrol=OgreUtils::DirectShowManager::getSingleton().createDirectshowControl("videotest","1welcome.avi",640,480,false);


ent->setMaterial(dcontrol->getMaterial())  //对某个物体直接贴上该材质,dcontrol->getMaterial()即得到视频材质的句柄.

 

 

 

 BLOG不能上传附件, 需要完整的测试代码工程文件的直接跟我索取吧, 进群里面联系.

 

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值