一种大场景的三维渲染方法及系统技术方案

技术编号:16875582 阅读:23 留言:0更新日期:2017-12-23 13:04
本申请提供了一种大场景的三维渲染方法及系统,采用双队列技术控制渲染线程与其他线程间异步执行,防止其他线程阻塞渲染线程,大大提高了进程间的运行效率。将当前待渲染场景三维渲染所需的渲染数据动态加载到内存;确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染。针对不同渲染场景采用相应的渲染加速技术对当前待渲染场景中的多个待渲染物体进行分类、分批次渲染,实现加速渲染,降低能耗,改善了用户体验。

A 3D rendering method and system for large scene

This application provides a 3D rendering method and system for large scenes. It uses two queue technology to control asynchronous execution between rendering threads and other threads, preventing other threads from blocking the rendering threads, and greatly improving the efficiency of inter process operation. The data will be the current rendering dynamic loading 3D rendering, rendering the scene required to render the scene to determine the current memory; the corresponding default rendering acceleration rule, and according to the preset rendering acceleration rule, calling the rendering thread on the current to be rendered in the scene of multiple objects to be rendered 3D rendering. According to different rendering scenarios, the rendering acceleration technology is applied to classify and render multiple rendering objects in the current rendering scene, so as to accelerate rendering, reduce energy consumption and improve user experience.

【技术实现步骤摘要】
一种大场景的三维渲染方法及系统
本专利技术涉及图像渲染
,更具体的,涉及一种大场景的三维渲染方法及系统。
技术介绍
随着移动互联网应用的飞速发展,各种移动端应用产品层出不穷,用户对移动端应用产品的选择越来越多的同时,对应用产品的要求也越来越高。为了吸引用户眼球,很多应用产品,例如,网络游戏、电子地图等,都会采用大量三维渲染技术,营造更具真实感的三维场景。然而,大量的三维渲染在运行时往往会消耗很多的内存和显存资源,移动端的耗电量相对变快。因此,具有大量三维渲染的应用产品对移动端的性能要求较高,容易造成移动端中应用的卡顿,耗电量加快等问题,用户体验差。
技术实现思路
有鉴于此,本专利技术提供了一种大场景的三维渲染方法及系统,采用双队列技术保证线程间异步执行,防止其他线程阻塞渲染线程,并采用多种渲染加速规则实现渲染加速。为了实现上述专利技术目的,本专利技术提供的具体技术方案如下:一种大场景的三维渲染方法,包括:采用双队列技术控制渲染线程与其他线程间异步执行;将当前待渲染场景三维渲染所需的渲染数据动态加载到内存;确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染。优选的,所述将当前待渲染场景三维渲染所需的渲染数据动态加载到内存,包括:设置多个内存阈值;根据当前内存占用值与每个所述内存阈值的关系,确定当前第一数据加载速度;根据所述当前第一数据加载速度将当前待渲染场景三维渲染所需的渲染数据动态加载到内存。可选的,所述确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染,包括:当所述当前待渲染场景中存在多个纹理数据和模型数据相同的待渲染物体时,确定所述预设渲染加速规则为实例渲染规则;将多个纹理数据和模型数据相同的所述待渲染物体划分为同一个渲染批次;控制所述渲染线程对所述当前待渲染场景中同一渲染批次的多个所述待渲染物体同时进行三维渲染。可选的,所述确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染,包括:当所述当前渲染场景中存在动态物体时,确定所述预设渲染加速规则为动静结合渲染规则;将所述当前待渲染场景中的多个所述待渲染物体划分为静态物体和动态物体;控制所述渲染线程对当前待渲染当场景中所有所述待渲染物体进行三维渲染;当所述动态物体运动时,控制所述渲染线程对所述动态物体进行三维渲染,并在渲染完成后,对当前待渲染场景中的所述静态物体和所述动态物体进行合成。可选的,所述确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染,包括:当所述当前待渲染场景中存在多个待渲染物体时,确定所述预设渲染加速规则为渲染排序规则;根据当前渲染视角,按从近到远的顺序对多个所述待渲染物体进行排序;控制所述渲染线程按从近到远的顺序依次对每个所述待渲染物体进行三维渲染。优选的,所述渲染数据包括纹理数据和模型数据,在所述确定当前待渲染场景对应的预设渲染加速规则之前,所述方法还包括:根据纹理多级调度规则,将所述纹理数据从内存加载到显存;依据模型多级调度规则,将所述模型数据从内存加载到显存。优选的,所述根据纹理多级调度规则,将所述纹理数据从内存加载到显存,包括:设置多个显存阈值;根据当前显存占用值与每个所述显存阈值的关系,确定当前第二数据加载速度;根据所述当前第二数据加载速度将所述纹理数据加载到显存。优选的,所述依据模型多级调度规则,将所述模型数据从内存加载到显存,包括:根据当前渲染视角,按从近到远的顺序对三维渲染对应的多个待渲染物体进行排序;按从近到远的顺序依次将每个所述待渲染物体所需的模型数据加载到显存。优选的,所述方法还包括:获取当前内存占用值;判断当前内存占用值是否大于预设值,若是,停止对内存的申请,并发出内存警告。一种大场景的三维渲染系统,包括:控制单元,用于采用双队列技术控制渲染线程与其他线程间异步执行;动态加载单元,用于将当前待渲染场景三维渲染所需的渲染数据动态加载到内存;三维渲染加速单元,用于确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染。相对于现有技术,本专利技术的有益效果如下:本专利技术提供的大场景的三维渲染方法及系统,采用双队列技术控制渲染线程与其他线程间异步执行,防止其他线程阻塞渲染线程,大大提高了进程间的运行效率。将当前待渲染场景三维渲染所需的渲染数据动态加载到内存;确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染。针对不同渲染场景采用相应的渲染加速技术对当前待渲染场景中的多个待渲染物体进行分类、分批次渲染,实现加速渲染,降低能耗,改善了用户体验。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例公开的一种大场景的三维渲染方法流程图;图2为本专利技术实施例公开的一种大场景的三维渲染方法的子流程图;图3为本专利技术实施例公开的一种大场景的三维渲染方法的又一子流程图;图4为本专利技术实施例公开的一种大场景的三维渲染方法的又一子流程图;图5为本专利技术实施例公开的另一种大场景的三维渲染方法流程图。图6为本专利技术实施例公开的一种大场景的三维渲染系统的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,本实施例公开了一种三维渲染的资源调度方法,应用于各种具有三维渲染的移动端应用产品,所述方法包括:S101:采用双队列技术控制渲染线程与其他线程间异步执行;将三维渲染划分为多个线程,所述多个线程至少包括资源管理和调度线程、纹理加载线程、模型加载线程和渲染线程;资源管理和调度线程、纹理加载线程和模型数据加载线程是根据处理事件的优先级进行划分的,所述资源管理和调度线程用于为渲染组织数据,不能被阻塞,具有第一优先级,所述纹理加载线程和所述模型数据加载线程具有第二优先级,分别用于加载纹理数据和模型数据。所述纹理加载线程和所述模型数据加载线程加载的数据分别来自不同的数据表,所述纹理加载线程和所述模型数据加载线程互不影响,可以并行执行。将三维渲染划分为多个线程,可以充分利用移动端处理器多核的特点,加快运行速度,并且保证各项工作互不干扰,如数据的加载不会影响渲染。双队列技术保证线程间的异步执行,防止其他线程阻塞渲染线程,以下以资源管理和调度线程与渲染线程为例进行说明。在现有技术中,资源管理和调度线程负责对当前场景中的待渲染物体进行裁剪本文档来自技高网...
一种大场景的三维渲染方法及系统

【技术保护点】
一种大场景的三维渲染方法,其特征在于,包括:采用双队列技术控制渲染线程与其他线程间异步执行;将当前待渲染场景三维渲染所需的渲染数据动态加载到内存;确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染。

【技术特征摘要】
1.一种大场景的三维渲染方法,其特征在于,包括:采用双队列技术控制渲染线程与其他线程间异步执行;将当前待渲染场景三维渲染所需的渲染数据动态加载到内存;确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染。2.根据权利要求1所述的方法,其特征在于,所述将当前待渲染场景三维渲染所需的渲染数据动态加载到内存,包括:设置多个内存阈值;根据当前内存占用值与每个所述内存阈值的关系,确定当前第一数据加载速度;根据所述当前第一数据加载速度将当前待渲染场景三维渲染所需的渲染数据动态加载到内存。3.根据权利要求1所述的方法,其特征在于,所述确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染,包括:当所述当前待渲染场景中存在多个纹理数据和模型数据相同的待渲染物体时,确定所述预设渲染加速规则为实例渲染规则;将多个纹理数据和模型数据相同的所述待渲染物体划分为同一个渲染批次;控制所述渲染线程对所述当前待渲染场景中同一渲染批次的多个所述待渲染物体同时进行三维渲染。4.根据权利要求1所述的方法,其特征在于,所述确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染,包括:当所述当前渲染场景中存在动态物体时,确定所述预设渲染加速规则为动静结合渲染规则;将所述当前待渲染场景中的多个所述待渲染物体划分为静态物体和动态物体;控制所述渲染线程对当前待渲染当场景中所有所述待渲染物体进行三维渲染;当所述动态物体运动时,控制所述渲染线程对所述动态物体进行三维渲染,并在渲染完成后,对当前待渲染场景中的所述静态物体和所述动态物体进行合成。5.根据权利要求1所述的方法,其特征在于,所述确...

【专利技术属性】
技术研发人员:马延朋
申请(专利权)人:城市生活北京资讯有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1