在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不能上传附件, 需要完整的测试代码工程文件的直接跟我索取吧, 进群里面联系.