一种多层混合异步渲染方法与流程

文档序号:13861824阅读:516来源:国知局

本发明涉及计算机图像渲染技术领域,尤其涉及一种多层混合异步渲染方法。



背景技术:

渲染,也有的把它称为着色。传统的渲染方法,需要消耗比较高的cpu和gpu的性能,如专利号为:201610210562.8,发明名称为:“虚拟场景的交互方法和装置”的专利申请,该专利属于同步渲染方法,如使用传统图像作为同步渲染的纹理,根据高度数据和法线信息实时渲染需要消耗较高的gup和cpu的性能,从而降低渲染整体效率,无法在移动平台、智能硬件上渲染过于复杂的场景。如专利号为:201110121668.8,发明名称为:“一种图形渲染中可编程阶段多层渲染的方法”的专利申请,该专利是基于gpu的实时渲染方法,属于同步渲染方式,依然需要消耗过高的cpu和gpu资源,无法在移动平台、智能硬件上实时渲染过于复杂的场景。另外,传统的视频编码格式是基于二位图像的压缩,无法存储三维空间深度信息和物体信息。



技术实现要素:

为解决现有方法存在的问题,本发明给出一种多层混合异步渲染方法。

本发明技术方案是:一种多层混合异步渲染方法,包括:渲染主机或服务器根据摄像机的空间位置和角度输出纹理图、深度图和属性标记;根据纹理图、深度图以及属性标记进行渲染,并压缩成自定义混合视频编码格式;客户端异步解码自定义混合编码格式,并进行异步渲染。

优选的,对于真实场景,对场景以及场景中的物体进行三维重建,采集场景中的三维模型以及纹理图;对于虚拟场景,对场景进行三维建模。

优选的,所述属性标记包含静态物体、动态物体、非可见曲面、属性标记的名称、光源类型以及光源位置等标记。

优选的,如渲染模式是预渲染模式,渲染主机将场景中的静态以及动态内容分别进行渲染,渲染后分别形成静态异步层和动态异步层,并压缩成自定义混合视频编码格式。

优选的,如渲染模式是服务器渲染模式,服务器根据当前场景需要以及接收的控制信息判断当前场景是否需要全局渲染,若需要全局渲染,则将所有的场景和物体渲染成静态异步层,若不需要全局渲染,则将需要渲染的物体输出渲染成动态异步层,并将动态异步层或静态异步层压缩成自定义混合视频编码格式。

优选的,客户端异步渲染时判断是否需要渲染静态异步层,若需要渲染,则获取混合视频编码中对应的帧,解码该帧获取纹理图、深度图和属性标记,在场景中添加深度信息和属性标记,渲染显示该静态异步层纹理。

优选的,客户端判断场景中的动态异步层的物体是否需要渲染,若需要渲染,根据物体的位置和动画获取混合视频编码中对应的帧,解码该帧获取纹理图、深度图和属性标记,在场景中添加物体深度信息和属性标记,读取属性标记中当前动态异步层的相对位置,在相应位置渲染显示动态异步层纹理。

优选的,客户端通过实时渲染层进行实时渲染,实时渲染层中三维物体、纹理资源和例子特效存储在客户端中,客户端根据需要实时渲染场景中的三维物体和粒子特效,根据属性标记中的光源位置渲染光照和实时阴影。

优选的,所述自定义混合视频编码格式包括rgbado通道,其中,r通道为红色通道,g通道为绿色通道,b通道为蓝色通道,a通道为透明通道,d通道为深度通道,o通道为属性标记通道。

优选的,用户可以根据应用需要选择自定义混合视频编码的压缩比率和解码速度。

本发明的有益效果是:使用自定义的混合视频格式,视频中除了图像信息外包含深度信息和属性标记,可以方便的对视频中的物体进行再处理;渲染内容已由渲染主机预先渲染或服务器渲染为自定义视频编码,客户端无需简单渲染只需要完成对该视频进行解码,从而大大的降低了客户端的gpu性能需求,在普通智能手机,平板电脑等智能设备中可实现非常好的画面效果。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明实施例的整体流程图;

图2是本发明实施例的预渲染模式的流程图;

图3是本发明实施例的服务器渲染模式的流程图;

图4是本发明实施例的客户端的渲染方法的流程图。

具体实施方式

以下结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

结合附图1一种多层混合异步渲染方法,包括:渲染主机或服务器根据摄像机的空间位置和角度输出纹理图、深度图和属性标记;根据纹理图、深度图以及属性标记进行渲染,并压缩成自定义混合视频编码格式;客户端异步解码自定义混合编码格式,并进行异步渲染。

在本实施例中包含预渲染模式和服务器渲染模式,所述预渲染模式包含静态异步层,动态异步层,实时渲染层,ui层;所述的服务器渲染模式包含静态异步层,动态异步层,ui层。本发明可渲染真实视频场景,也可渲染虚拟三维场景,对于真实场景需要对场景和场景中的物体进行三维重建,采集场景和物体的三维模型和纹理图,对于虚拟场景需要使用传统方法对场景进行三维建模。

结合附图2,预渲染模式:

第一步,渲染静态异步层:

渲染主机加载模型,根据当前场景光线环境添加光源,使用根据摄像机的空间位置和角度输出纹理图、深度图、属性标记,如光源位置,道路和曲面、空间边界等,输出的纹理图、深度图和属性标记形成静态异步层,对于静态背景、固定角度的静态摄像机只需要一帧的静态异步层,对于动态摄像机,摄像机的每个位置和角度都需对应一帧独立的静态异步层,渲染主机将多帧静态异步层压缩成自定义混合视频编码格式。

第二步,渲染动态异步层:

渲染主机加载模型,根据当前场景的光线环境添加光源,使用渲染主机根据需要将动态渲染输出为包含透明通道的纹理图和深度图,添加属性标记,如当前物体的相对位置和曲面等,输出的纹理图、深度图和属性标记形成动态异步层,渲染主机将多帧动态异步层压缩成自定义混合视频编码格式。

结合附图3,服务器渲染模式:

服务器加载三维模型,根据当前场景光线环境添加光源,客户端提交控制消息,服务器根据当前场景需要和用户提交的控制消息判断是否需要全局渲染,如需要全局渲染,则将所有的场景和物体输出渲染成静态异步层。如不需要全局渲染,则将需要渲染的物体输出渲染为动态异步层,所述服务器将静态异步层或动态异步层压缩成自定义混合视频编码格式发送至客户端。

结合附图4,客户端的渲染方法如下:

预渲染模式:

根据当前场景需要和控制消息判断是否需要渲染静态异步层,如需要渲染静态异步层获取混合视频编码中对应的帧,解码该帧获取纹理图、深度图和属性标记,在场景中添加深度信息和属性标记,渲染显示该静态异步层纹理。

根据当前场景需要和控制消息判断场景中的动态异步层的物体是否需要渲染,如需要渲染动态异步层,根据物体的位置和动画获取混合视频编码中对应的帧,解码该帧获取纹理图、深度图和属性标记,在场景中添加物体深度信息和属性标记,读取属性标记中当前动态异步层的相对位置,在相应位置渲染显示动态异步层纹理。

渲染实时渲染层,实时渲染层中三维物体、纹理资源和例子特效存储在客户端中,客户端根据需要实时渲染场景中的三维物体和粒子特效,根据属性标记中的光源位置渲染光照和实时阴影。

渲染ui层,实时渲染ui、交互控件。

服务器渲染模式:

客户端渲染ui层,渲染ui控件,获取客户输入的交互信息。

客户端获取服务器发送的自定义混合视频编码,如当前帧是静态异步层,解码该帧读取深度信息和属性标记,在场景中添加深度信息和属性标记,渲染显示静态异步层纹理,如当前帧是动态异步层。解码该帧获取纹理图、深度图和属性标记,在场景中添加物体的深度信息和属性标记,读取属性标记中的相对位置,在相应位置渲染显示动态异步层纹理。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1