The invention relates to a Unity 3D engine field, especially relates to a method and system for optimizing Unity image rendering based on 3D. The optimization methods include: the default cache area, the buffer area includes the sub area of more than two; the sub regional state including the idle state and the locking state; create decoding threads, thread will decode the image sub region information is decoded VLC video player output write idle state; in the main thread create the render thread, rendering thread read lock state within the sub region image information to Unity 3D, the image information after filling texture image rendering. By decoding the thread separation and rendering thread, including two sub regions by setting the buffer area, and by setting the sub regions of the state, the read operation decoding thread write operations and rendering threads from each other, to avoid being decoded data in rendering errors.
【技术实现步骤摘要】
一种基于Unity3D图像渲染的优化方法及系统
本专利技术涉及Unity3D引擎领域,尤其涉及一种基于Unity3D图像渲染的优化方法及系统。
技术介绍
随着VR技术的兴起,全景视频的需求也是节节攀升。传统的视频播放器都是将图像渲染在一张平面的2D纹理上。而全景播放器则是需要随着视角的变换,展示的内容也随之发生变化。这就需要在3D的坐标系下才能满足。目前Unity是市面上炽手可热的3D引擎,VLC则是成熟的开源视频播放器。通过用Unity3D引擎构建场景物件(视频投影幕),再利用VLC提供强大的视频解码能力,把输出的纹理贴到3D的视频投影幕上,则可投射出类似球形,方形的视频出来,可以满足了全景视频的应用场景,然而相比普通的2D播放器,需要带来额外的性能消耗,其原因有两方面:一是相比2D播放器,全景播放器中用到的球形、方形或柱状体等,这些模型所需要的面数精度远高于2D播放器中的一个平面(仅需要包含2个面即可),球形模型想要达到较好的精度,通常需要上万的面数。在现代图像学中最终是需要对每个面进行UV映射,故全景播放器在进行UV映射时需要消耗更多的性能;二是视频解码器输出的每一帧的视频图像并不能直接显示在Unity的模型上,需要先填充在一张Unity的Texture2D(Unity纹理)上,再将这张Texture2D贴在3D的视频投影幕上才行,就如同把一张长方形的海报,按规定的坐标映射关系贴到一个篮球上。Unity对于图像的渲染是有要求,必须要在主线程中进行,而视频解码是个耗时的工作,如果也在主线程中进行势必造成整个播放器的渲染效率降低。
技术实现思路
本专利技术所 ...
【技术保护点】
一种基于Unity 3D图像渲染的优化方法,其特征在于,包括:预设缓存区域,所述缓存区域包括两个以上的子区域;所述子区域的状态包括空闲状态和锁定状态;创建解码线程,所述解码线程将VLC视频播放器输出的已解码的图像信息写入空闲状态的子区域中;变更子区域的状态为锁定状态;于主线程创建渲染线程,所述渲染线程读取锁定状态的子区域内的图像信息至Unity 3D,对图像信息填充纹理后进行图像渲染。
【技术特征摘要】
1.一种基于Unity3D图像渲染的优化方法,其特征在于,包括:预设缓存区域,所述缓存区域包括两个以上的子区域;所述子区域的状态包括空闲状态和锁定状态;创建解码线程,所述解码线程将VLC视频播放器输出的已解码的图像信息写入空闲状态的子区域中;变更子区域的状态为锁定状态;于主线程创建渲染线程,所述渲染线程读取锁定状态的子区域内的图像信息至Unity3D,对图像信息填充纹理后进行图像渲染。2.根据权利要求1所述的基于Unity3D图像渲染的优化方法,其特征在于,还包括:图像信息填充纹理后,锁定状态的子区域的状态变更为空闲状态。3.根据权利要求1所述的基于Unity3D图像渲染的优化方法,其特征在于,将VLC视频播放器输出的已解码的图像信息写入空闲状态的子区域中,之前还包括:判断所有子区域中是否存在状态为空闲状态的子区域,若是,则将VLC视频播放器输出的已解码的图像信息写入空闲状态的子区域中;若否,则间隔预设时长后继续判断所有子区域中是否存在状态为空闲状态的子区域。4.根据权利要求3所述的基于Unity3D图像渲染的优化方法,其特征在于,若存在空闲状态的子区域,将VLC视频播放器输出的已解码的图像信息写入空闲状态的子区域中,具体为:若存在空闲状态的子区域,获取空闲状态的子区域中字节数不少于图像信息字节数的子区域,得到子区域集合;将VLC视频播放器输出的已解码的图像信息写入子区域集合中字节数最少的子区域。5.根据权利要求4所述的基于Unity3D图像渲染的优化方法,其特征在于,若子区域集合为空,将图像信息按照预设固定字节长度划分成多个子图像信息,依次写入空闲状态的子区域中...
【专利技术属性】
技术研发人员:刘德建,张毅,郭玉湖,
申请(专利权)人:福建天泉教育科技有限公司,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。