[发明专利]一种在3D环境中纹理表面播放视频的实现方法在审
申请号: | 202111636024.2 | 申请日: | 2021-12-29 |
公开(公告)号: | CN114283233A | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 傅祯勇 | 申请(专利权)人: | 弘成科技发展有限公司 |
主分类号: | G06T15/04 | 分类号: | G06T15/04;G06T7/40 |
代理公司: | 成都市鼎宏恒业知识产权代理事务所(特殊普通合伙) 51248 | 代理人: | 罗杰 |
地址: | 100010 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 环境 纹理 表面 播放 视频 实现 方法 | ||
本发明涉及视频播放技术领域,具体涉及是一种在3D环境中纹理表面播放视频的实现方法,先初始化组件;然后创建播放实例并加载视频资源;接着设置组件显示回调;然后创建初始化OpenGL纹理对象;接着获取S视频回调数据并赋值给OpenGL纹理对象;然后渲染纹理至3D模型对象;最后结束释放纹理及组件。这样不用使用大型游戏引擎便可简单实现纹理中播放视频,不用考虑引擎的功能开发限制,使用libvlc组件无需研究多媒体播放的实现方法,即可实现视频图像的采集,可完全在自己的3D框架中使用,更加开放自由的开发适用于自己应用场景的功能。
技术领域
本发明涉及视频播放技术领域,具体涉及是一种在3D环境中纹理表面播放视频的实现方法。
背景技术
对于3D环境场景的开发时,经常会需要视频纹理直接在3D模型上显示出来,例如一个3D舞台场景中的背景LED屏幕墙,这里场景中的LED上就会播放一些背景视频;或者一个线上直播的虚拟发布会,一般会模拟个3D发布会现场,一般现场都会有个大屏展示宣传片等功能; 这些情况都将会用到在3D纹理上播放视频的方法,现有的3D开发引擎可以实现纹理的视频播放,但这样一来引擎的开放性不够,将会无法完成一些特定的功能,而不使用3D开发引擎仅使用像OpenGL这样的3D显示引擎,开发的复杂度将会大大增加,需要自行实现多媒体视频的解析转码等工作,会增加大量的繁琐工作。
发明内容
本发明针对以上问题,提供一种在3D环境中纹理表面播放视频的实现方法。
采用的技术方案是,一种在3D环境中纹理表面播放视频的实现方法包括以下步骤:
S1,初始化组件;
S2,创建播放实例并加载视频资源;
S3,设置组件显示回调;
S4,创建初始化OpenGL纹理对象;
S5,获取S3中视频回调数据并赋值给OpenGL纹理对象; S6,渲染纹理至3D模型对象;
S7,结束释放纹理及组件。
可选的,S1中,初始化libvlc组件,同时OpenGL及3D场景加载初始化。
进一步的,S2中,创建libvlc实例调用API libvlc_new。
可选的,S3中,先加载视频资源文件生成媒体对象调用API libvlc_media_new_path,然后使用媒体对象创建播放器调用API libvlc_media_player_new_from_media,最后设置图像数据获取回调方法调用API libvlc_video_set_callbacks。
可选的,S4中,先生成OpenGL纹理调用API glGenTextures,然后绑定纹理调用APIglGenTextures,最后初始化纹理参数调用API glTexlmage2D。
可选的,S5中,回调获得原始图像数据转换更新给OpenGL纹理调用APIglTexsublmage2D。
可选的,S6中,进行3D场景渲染及程序其它逻辑处理。
进一步的,S7中,程序退出释放相应对象动态纹理及libvlc对象。
本发明的有益效果至少包括以下之一;
1、不用使用大型游戏引擎便可简单实现纹理中播放视频,不用考虑引擎的功能开发限制。
2、使用libvlc组件无需研究多媒体播放的实现方法,即可实现视频图像的采集。
3、可完全在自己的3D框架中使用,更加开放自由的开发适用于自己应用场景的功能。
附图说明
图1为在3D环境中纹理表面播放视频的逻辑框图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于弘成科技发展有限公司,未经弘成科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111636024.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可折叠式具有防护功能的课桌椅
- 下一篇:一种高纯度对羟基苯甲酸的制备方法