一种基于三维场景模型web端动态渲染处理方法技术

技术编号:37984929 阅读:24 留言:0更新日期:2023-06-30 09:59
本发明专利技术公开了一种基于场景模型web端动态渲染处理方法,包括:在应用程序完成三维场景模型加载后,将三维场景模型添加到拦截器中,响应于三维场景模型的渲染操作,通过拦截器将三维场景模型当前的状态切换为渲染状态;针对渲染状态创建与渲染操作的主线程对应的计算线程,根据主线程对应的数据源和计算规则创建副本数据;保持运行主线程,将副本数据发送到计算线程,计算线程与主线程的运行并行根据计算规则对数据源进行渲染计算,得到渲染计算结果;将渲染计算结果返回至主线程,在发送渲染计算结果完成后,销毁计算线程,将渲染计算结果添加至主线程的渲染器中,渲染器根据渲染计算结果对三维场景模型中的帧循环进行渲染。算结果对三维场景模型中的帧循环进行渲染。算结果对三维场景模型中的帧循环进行渲染。

【技术实现步骤摘要】
一种基于三维场景模型web端动态渲染处理方法


[0001]本专利技术涉及计算机图形
,具体为一种基于三维场景模型web端动态渲染处理方法。

技术介绍

[0002]在Browser/Server(浏览器和服务器)结构中,如果threejs,babylon已经加载完模型,需要对模型中涉及的场景进行操作,则需要在应用程序的每一帧中计算模型要达到的需求状态,进而对每一帧进行操作。然而,当场景模型中的对象较多或者变换较为复杂时,在帧中要花费大量的时间计算最终结果,然后才能够写入到图形处理器GPU(graphics processing unit)中,因而导致模型的性能下降,帧数降低。

技术实现思路

[0003]针对现有技术中在主线程中对场景模型进行操作,导致模型的性能下降,帧数降低的技术问题,本专利技术提供了一种基于三维场景模型web端动态渲染处理方法。
[0004]为实现以上目的,本专利技术通过以下技术方案予以实现:
[0005]本专利技术实施例的第一方面,提供一种基于三维场景模型web端动态渲染处理方法,应用于W本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于场景模型web端动态渲染处理方法,其特征在于,应用于Web前端,所述方法包括:在应用程序完成三维场景模型加载后,将所述三维场景模型添加到拦截器中,并响应于所述三维场景模型的渲染操作,通过所述拦截器将所述三维场景模型当前的状态切换为渲染状态;针对所述渲染状态,创建与所述渲染操作的主线程对应的计算线程,并根据所述主线程对应的数据源和计算规则,创建副本数据;保持运行所述主线程,并将所述副本数据发送到所述计算线程,以使得所述计算线程与所述主线程的运行并行根据所述计算规则对所述数据源进行渲染计算,得到所述三维场景模型对应的渲染计算结果;将所述渲染计算结果返回至所述主线程,并在发送所述渲染计算结果完成后,销毁所述计算线程,将所述渲染计算结果添加至所述主线程的渲染器中,以使得所述渲染器根据所述渲染计算结果对所述三维场景模型中的帧循环进行渲染。2.根据权利要求1所述的方法,其特征在于,在所述针对所述渲染状态,创建与所述渲染操作的主线程对应的计算线程,并根据所述主线程对应的数据源和计算规则,创建副本数据之前,包括:获取所述主线程在运行所述三维场景模型中的帧循环占用的最小线程数以及在所述主线程进行所述渲染计算占用的最大线程数;预测通过所述最小线程数对应的主线程运行所述帧循环时,所述主线程中每一子主线程运行时的栈空间复杂度;预测所述主线程在所述最大线程数的情况下,所述主线程中每一子主线程在渲染计算时,该子主线程中各编码树单元的计算深度;根据所述主线程中各所述子主线程对应的计算深度以及所述栈空间复杂度,确定所述主线程针对所述渲染操作的渲染复杂度;确定所述渲染复杂度大于预设复杂度阈值;所述方法还包括:在所述渲染复杂度小于等于所述预设复杂度阈值的情况下,通过所述主线程中的渲染器根据所述计算规则对所述数据源进行渲染计算,得到所述主线程中的渲染器针对所述三维场景模型对应的渲染计算结果。3.根据权利要求2所述的方法,其特征在于,所述预测所述主线程在所述最大线程数的情况下,所述主线程中每一子主线程在渲染计算时,该子主线程中各编码树单元的计算深度的步骤,包括:在所述主线程以所述最大线程数进行渲染计算的情况下,预测所述主线程中各所述子主线程调用的数据源的调用数据量;预测所述主线程中各所述子主线程在对应的调用数据量的情况下,该子主线程中各编码树单元渲染计算的编码计算时长;以及,预测所述主线程中各所述子主线程在本子主线程开始计算时等待在前的子主线程渲染计算完成的等待时长;根据对应的所述编码计算时长以及所述等待时长,确定所述主线程中每一子主线程在
渲染计算时,该子主线程中各编码树单元的计算深度。4.根据权利要求3所述的方法,其特征在于,所述预测所述主线程中各所述子主线程在本子主线程开始计算时等待在前的子主线程渲染计算完成的等待时长的步骤,包括:针对所述主线程中各所述子主线程,预测在本子主线程执行渲染计算之前,执行渲染计算的子主线程数;获取所述主线程中各主线程之间的平均线程通信耗时;根据对应的所述子主线程数以及所述平均线程通信耗时,确定所述本子主线程的线程通信等待时长;根据所述本子主线程对应的线程通信等待时长以及在本子主线程之前的子主线程的各编码树单元对应的编码计算时长,预测所述主线程中各所述子主线程在本子主线程开始计算时等待在前的子主线程渲染计算完成的等待时长。5.根据权利要求2所述的方法,其特征在于,所述预测通过所述最小线程数对应的主线程运行所述帧循环时,所述主线程中每一子主线程运行时的栈空间复杂度的步骤,包括:预测通过所述最小线程数对应的主线程运行所述帧循环时,所述主线程中每一子主线程...

【专利技术属性】
技术研发人员:刘宏斌范孟硕何志伟
申请(专利权)人:青岛慧睦科技有限责任公司
类型:发明
国别省市:

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

1