一种用于处理web3D场景的方法和装置与流程
未命名
08-15
阅读:101
评论:0
一种用于处理web3d场景的方法和装置
技术领域
1.本发明涉及计算机技术领域,具体为一种用于处理web3d场景的方法和装置。
背景技术:
2.随着移动增强现实和虚拟现实技术的出现,移动设备上的3d应用在5g通信发展的背景下取得了巨大的成功。3d场景模型交互是一种新的信息交互方式,其相比于2d场景模型具有更直观、更高效优势。然而,由于3d场景模型都是基于最新的浏览器进行设计,导致部分低性能的浏览器在更新渲染过程中,由于内核性能等原因,渲染更新较慢,并且存在卡死的风险较高。
技术实现要素:
3.针对现有技术中在主线程中对场景模型进行操作,导致模型的性能下降,帧数降低的技术问题,本发明提供了一种用于处理web3d场景的方法和装置。
4.为实现以上目的,本发明通过以下技术方案予以实现:
5.本发明实施例的第一方面,提供一种用于处理web3d场景的方法和装置,应用于web前端,所述方法包括:
6.根据所述web3d场景中各场景对象的模型文件,确定各所述场景对象的模型渲染用时,并根据所述模型渲染用时,对对应的所述场景对象的模型文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程;
7.根据所述web3d场景中每一所述模型渲染子线程的渲染用时,将所述模型渲染子线程分配到渲染队列中,其中,渲染用时相同的模型渲染子线程分配到同一个所述渲染队列中;
8.根据所述渲染队列中所述模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级;
9.根据所述渲染队列的渲染优先级以及模型渲染子线程的渲染用时,确定每一所述渲染队列的目标线程以及每一所述目标线程的并发渲染时刻;
10.根据每一所述模型渲染子线程对应的模型文件,在多个所述并发渲染时刻分别通过所述目标线程在多个并发线程中进行并发渲染,得到web3d场景模型。
11.在一个优选的实施例中,所述根据所述渲染队列的渲染优先级以及模型渲染子线程的渲染用时,确定每一所述渲染队列的目标线程以及每一所述目标线程的并发渲染时刻,包括:
12.根据所述模型渲染子线程的渲染用时,从所述web前端的中央处理器的并发体对应的多个并发线程中确定每一所述渲染队列的目标线程,其中,所述目标线程的计算资源满足所述渲染队列中任意所述模型渲染子线程的渲染计算要求;
13.根据所述渲染优先级以及所述模型渲染子线程的渲染用时,确定每一所述目标线程的并发渲染时刻。
14.在一个优选的实施例中,所述根据所述渲染优先级以及所述模型渲染子线程的渲染用时,确定每一所述目标线程的并发渲染时刻,包括:
15.根据所述渲染优先级以及所述模型渲染子线程的渲染用时,通过如下公式确定每一所述目标线程的并发渲染时刻:
16.rb
i+1
>rbi×
ni/n*(1-ti/t
i+1
)+pi17.其中,rb
i+1
和rbi分别为第i+1个和第i个渲染队列的并发渲染时刻,其中,i取值越小,渲染优先级越高,n为所述渲染队列的总个数,ni*为所述渲染队列的渲染优先级,ti和t
i+1
分别为第i+1个和第i个渲染队列内模型渲染子线程的渲染用时,pi表示相邻渲染优先级渲染队列的之间的预设时间间隔。
18.在一个优选的实施例中,所述根据所述渲染队列中所述模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级,包括:
19.确定每一所述渲染队列中执行逻辑顺序最先的所述模型渲染子线程为目标模型渲染子线程;
20.比较各所述渲染队列中所述目标模型渲染子线程的执行逻辑顺序;
21.按照所述目标模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级,其中,执行逻辑顺序在前的目标模型渲染子线程对应的渲染队列的渲染优先级,高于执行逻辑顺序在后的目标模型渲染子线程对应的渲染队列的渲染优先级。
22.在一个优选的实施例中,所述根据所述模型渲染用时,对对应的所述场景对象的模型文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程,包括:
23.确定各所述场景对象的所述模型渲染用时是否大于预设时长阈值;
24.对所述模型渲染用时大于预设时长阈值的目标场景对象对应的模型文件按照对象单位进行分割,得到所述目标场景对象对应的多个模型子文件,其中,每一所述模型子文件对应的模型渲染用时小于或者等于所述预设时长阈值;
25.对所述模型渲染用时小于或者等于所述预设时长阈值的场景对象对应的模型文件,和/或多个所述模型子文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程。
26.在一个优选的实施例中,在所述确定各所述场景对象的所述模型渲染用时是否大于预设时长阈值之前,包括:
27.确定多个cpu根据各所述场景对象的模型文件进行渲染时的核间负载差值和核间通信总量;
28.根据所述核间负载差值和所述核间通信总量,建立cpu之间的渲染任务分配目标函数并求解,得到每一所述cpu的最小耗费计算资源;
29.根据所述最小耗费计算资源,建立线程分割目标函数并求解,确定各所述场景对象的所述模型渲染用时。
30.本发明实施例的第二方面,提供一种用于处理web3d场景的装置,应用于web前端,所述装置包括:
31.第一确定模块,被配置为根据所述web3d场景中各场景对象的模型文件,确定各所述场景对象的模型渲染用时,并根据所述模型渲染用时,对对应的所述场景对象的模型文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程;
32.分配模块,被配置为根据所述web3d场景中每一所述模型渲染子线程的渲染用时,将所述模型渲染子线程分配到渲染队列中,其中,渲染用时相同的模型渲染子线程分配到同一个所述渲染队列中;
33.第二确定模块,被配置为根据所述渲染队列中所述模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级;
34.第三确定模块,被配置为根据所述渲染队列的渲染优先级以及模型渲染子线程的渲染用时,确定每一所述渲染队列的目标线程以及每一所述目标线程的并发渲染时刻;
35.渲染模块,被配置为根据每一所述模型渲染子线程对应的模型文件,在多个所述并发渲染时刻分别通过所述目标线程在多个并发线程中进行并发渲染,得到web3d场景模型。
36.在一个优选的实施例中,所述第三确定模块,包括:
37.第一确定子模块,被配置为根据所述模型渲染子线程的渲染用时,从所述web前端的中央处理器的并发体对应的多个并发线程中确定每一所述渲染队列的目标线程,其中,所述目标线程的计算资源满足所述渲染队列中任意所述模型渲染子线程的渲染计算要求;
38.第二确定子模块,被配置为根据所述渲染优先级以及所述模型渲染子线程的渲染用时,确定每一所述目标线程的并发渲染时刻。
39.在一个优选的实施例中,所述第二确定子模块,被配置为:
40.根据所述渲染优先级以及所述模型渲染子线程的渲染用时,通过如下公式确定每一所述目标线程的并发渲染时刻:
41.rb
i+1
>rbi×
ni/n*(1-ti/t
i+1
)+pi42.其中,rb
i+1
和rbi分别为第i+1个和第i个渲染队列的并发渲染时刻,其中,i取值越小,渲染优先级越高,n为所述渲染队列的总个数,ni*为所述渲染队列的渲染优先级,ti和t
i+1
分别为第i+1个和第i个渲染队列内模型渲染子线程的渲染用时,pi表示相邻渲染优先级渲染队列的之间的预设时间间隔。
43.在一个优选的实施例中,所述第二确定模块,被配置为:
44.确定每一所述渲染队列中执行逻辑顺序最先的所述模型渲染子线程为目标模型渲染子线程;
45.比较各所述渲染队列中所述目标模型渲染子线程的执行逻辑顺序;
46.按照所述目标模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级,其中,执行逻辑顺序在前的目标模型渲染子线程对应的渲染队列的渲染优先级,高于执行逻辑顺序在后的目标模型渲染子线程对应的渲染队列的渲染优先级。
47.在一个优选的实施例中,所述第一确定模块,被配置为:
48.确定各所述场景对象的所述模型渲染用时是否大于预设时长阈值;
49.对所述模型渲染用时大于预设时长阈值的目标场景对象对应的模型文件按照对象单位进行分割,得到所述目标场景对象对应的多个模型子文件,其中,每一所述模型子文件对应的模型渲染用时小于或者等于所述预设时长阈值;
50.对所述模型渲染用时小于或者等于所述预设时长阈值的场景对象对应的模型文件,和/或多个所述模型子文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程。
51.在一个优选的实施例中,所述第一确定模块,被配置为:
52.确定多个cpu根据各所述场景对象的模型文件进行渲染时的核间负载差值和核间通信总量;
53.根据所述核间负载差值和所述核间通信总量,建立cpu之间的渲染任务分配目标函数并求解,得到每一所述cpu的最小耗费计算资源;
54.根据所述最小耗费计算资源,建立线程分割目标函数并求解,确定各所述场景对象的所述模型渲染用时。
55.有益效果
56.本发明提供了用于处理web3d场景的方法。与现有技术相比具备以下有益效果:
57.通过上述方案,对web3d场景中各场景对象进行线程分配,进而根据每一渲染队列的渲染优先级和模型渲染子线程的渲染用时,并发通过多个并发线程进行渲染计算,不占用同一个线程,并发线程之间分开对同一web3d场景模型进行渲染,降低了线程的压力,可以避免模型性能下降和帧数降低,提高了模型的工作效率。
附图说明
58.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
59.图1是根据一示例性实施例示出的一种用于处理web3d场景的方法的流程图。
60.图2是根据一示例性实施例示出的一种实现图1中步骤s14的流程图。
61.图3是根据一示例性实施例示出的一种实现图1中步骤s13的流程图。
62.图4是根据一示例性实施例示出的一种实现图1中步骤s11的流程图。
63.图5是根据一示例性实施例示出的一种用于处理web3d场景的装置的结构框图。
具体实施方式
64.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
65.请参阅图1,图1是根据一示例性实施例示出的一种用于处理web3d场景的方法和装置的流程图,本发明提供的用于处理web3d场景的方法可以应用于web前端,所述方法包括以下步骤。
66.步骤s11,根据所述web3d场景中各场景对象的模型文件,确定各所述场景对象的模型渲染用时,并根据所述模型渲染用时,对对应的所述场景对象的模型文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程;
67.步骤s12,根据所述web3d场景中每一所述模型渲染子线程的渲染用时,将所述模型渲染子线程分配到渲染队列中,其中,渲染用时相同的模型渲染子线程分配到同一个所述渲染队列中;
68.步骤s13,根据所述渲染队列中所述模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级;
69.步骤s14,根据所述渲染队列的渲染优先级以及模型渲染子线程的渲染用时,确定每一所述渲染队列的目标线程以及每一所述目标线程的并发渲染时刻;
70.步骤s15,根据每一所述模型渲染子线程对应的模型文件,在多个所述并发渲染时刻分别通过所述目标线程在多个并发线程中进行并发渲染,得到web3d场景模型。
71.上述技术方案对web3d场景中各场景对象进行线程分配,进而根据每一渲染队列的渲染优先级和模型渲染子线程的渲染用时,并发通过多个并发线程进行渲染计算,不占用同一个线程,并发线程之间分开对同一web3d场景模型进行渲染,降低了线程的压力,可以避免模型性能下降和帧数降低,提高了模型的工作效率。
72.在一个优选的实施例中,参见图2所示,步骤s14,所述根据所述渲染队列的渲染优先级以及模型渲染子线程的渲染用时,确定每一所述渲染队列的目标线程以及每一所述目标线程的并发渲染时刻,包括:
73.步骤s141,根据所述模型渲染子线程的渲染用时,从所述web前端的中央处理器的并发体对应的多个并发线程中确定每一所述渲染队列的目标线程。
74.其中,所述目标线程的计算资源满足所述渲染队列中任意所述模型渲染子线程的渲染计算要求;
75.步骤s142,根据所述渲染优先级以及所述模型渲染子线程的渲染用时,确定每一所述目标线程的并发渲染时刻。
76.在一个优选的实施例中,步骤s142,所述根据所述渲染优先级以及所述模型渲染子线程的渲染用时,确定每一所述目标线程的并发渲染时刻,包括:
77.根据所述渲染优先级以及所述模型渲染子线程的渲染用时,通过如下公式确定每一所述目标线程的并发渲染时刻:
78.rb
i+1
>rbi×
ni/n*(1-ti/t
i+1
)+pi79.其中,rb
i+1
和rbi分别为第i+1个和第i个渲染队列的并发渲染时刻,其中,i取值越小,渲染优先级越高,n为所述渲染队列的总个数,ni*为所述渲染队列的渲染优先级,ti和t
i+1
分别为第i+1个和第i个渲染队列内模型渲染子线程的渲染用时,pi表示相邻渲染优先级渲染队列的之间的预设时间间隔。
80.在一个优选的实施例中,参见图3所示,步骤s13,所述根据所述渲染队列中所述模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级,包括:
81.步骤s131,确定每一所述渲染队列中执行逻辑顺序最先的所述模型渲染子线程为目标模型渲染子线程;
82.步骤s132,比较各所述渲染队列中所述目标模型渲染子线程的执行逻辑顺序;
83.步骤s133,按照所述目标模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级。
84.其中,执行逻辑顺序在前的目标模型渲染子线程对应的渲染队列的渲染优先级,高于执行逻辑顺序在后的目标模型渲染子线程对应的渲染队列的渲染优先级。
85.在一个优选的实施例中,参见图4所示,步骤s11,所述根据所述模型渲染用时,对对应的所述场景对象的模型文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程,包括:
86.步骤s111,确定各所述场景对象的所述模型渲染用时是否大于预设时长阈值;
87.步骤s112,对所述模型渲染用时大于预设时长阈值的目标场景对象对应的模型文件按照对象单位进行分割,得到所述目标场景对象对应的多个模型子文件。
88.其中,每一所述模型子文件对应的模型渲染用时小于或者等于所述预设时长阈值;
89.步骤s113,对所述模型渲染用时小于或者等于所述预设时长阈值的场景对象对应的模型文件,和/或多个所述模型子文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程。
90.在一个优选的实施例中,在所述确定各所述场景对象的所述模型渲染用时是否大于预设时长阈值之前,包括:
91.确定多个cpu根据各所述场景对象的模型文件进行渲染时的核间负载差值和核间通信总量;
92.根据所述核间负载差值和所述核间通信总量,建立cpu之间的渲染任务分配目标函数并求解,得到每一所述cpu的最小耗费计算资源;
93.根据所述最小耗费计算资源,建立线程分割目标函数并求解,确定各所述场景对象的所述模型渲染用时。
94.本发明实施例还提供一种用于处理web3d场景的装置,应用于web前端,参见图5所示,所述用于处理web3d场景的装置包括:
95.第一确定模块510,被配置为根据所述web3d场景中各场景对象的模型文件,确定各所述场景对象的模型渲染用时,并根据所述模型渲染用时,对对应的所述场景对象的模型文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程;
96.分配模块520,被配置为根据所述web3d场景中每一所述模型渲染子线程的渲染用时,将所述模型渲染子线程分配到渲染队列中,其中,渲染用时相同的模型渲染子线程分配到同一个所述渲染队列中;
97.第二确定模块530,被配置为根据所述渲染队列中所述模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级;
98.第三确定模块540,被配置为根据所述渲染队列的渲染优先级以及模型渲染子线程的渲染用时,确定每一所述渲染队列的目标线程以及每一所述目标线程的并发渲染时刻;
99.渲染模块550,被配置为根据每一所述模型渲染子线程对应的模型文件,在多个所述并发渲染时刻分别通过所述目标线程在多个并发线程中进行并发渲染,得到web3d场景模型。
100.在一个优选的实施例中,所述第三确定模块540,包括:
101.第一确定子模块,被配置为根据所述模型渲染子线程的渲染用时,从所述web前端的中央处理器的并发体对应的多个并发线程中确定每一所述渲染队列的目标线程,其中,所述目标线程的计算资源满足所述渲染队列中任意所述模型渲染子线程的渲染计算要求;
102.第二确定子模块,被配置为根据所述渲染优先级以及所述模型渲染子线程的渲染用时,确定每一所述目标线程的并发渲染时刻。
103.在一个优选的实施例中,所述第二确定子模块,被配置为:
104.根据所述渲染优先级以及所述模型渲染子线程的渲染用时,通过如下公式确定每
一所述目标线程的并发渲染时刻:
105.rb
i+1
>rbi×
ni/n*(1-ti/t
i+1
)+pi106.其中,rb
i+1
和rbi分别为第i+1个和第i个渲染队列的并发渲染时刻,其中,i取值越小,渲染优先级越高,n为所述渲染队列的总个数,ni*为所述渲染队列的渲染优先级,ti和t
i+1
分别为第i+1个和第i个渲染队列内模型渲染子线程的渲染用时,pi表示相邻渲染优先级渲染队列的之间的预设时间间隔。
107.在一个优选的实施例中,所述第二确定模块530,被配置为:
108.确定每一所述渲染队列中执行逻辑顺序最先的所述模型渲染子线程为目标模型渲染子线程;
109.比较各所述渲染队列中所述目标模型渲染子线程的执行逻辑顺序;
110.按照所述目标模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级,其中,执行逻辑顺序在前的目标模型渲染子线程对应的渲染队列的渲染优先级,高于执行逻辑顺序在后的目标模型渲染子线程对应的渲染队列的渲染优先级。
111.在一个优选的实施例中,所述第一确定模块510,被配置为:
112.确定各所述场景对象的所述模型渲染用时是否大于预设时长阈值;
113.对所述模型渲染用时大于预设时长阈值的目标场景对象对应的模型文件按照对象单位进行分割,得到所述目标场景对象对应的多个模型子文件,其中,每一所述模型子文件对应的模型渲染用时小于或者等于所述预设时长阈值;
114.对所述模型渲染用时小于或者等于所述预设时长阈值的场景对象对应的模型文件,和/或多个所述模型子文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程。
115.在一个优选的实施例中,所述第一确定模块510,被配置为:
116.确定多个cpu根据各所述场景对象的模型文件进行渲染时的核间负载差值和核间通信总量;
117.根据所述核间负载差值和所述核间通信总量,建立cpu之间的渲染任务分配目标函数并求解,得到每一所述cpu的最小耗费计算资源;
118.根据所述最小耗费计算资源,建立线程分割目标函数并求解,确定各所述场景对象的所述模型渲染用时。
119.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
120.本领域技术人员应理解,以上所描述的装置实施例仅仅是示意性的,例如模块的划分,仅仅为一种逻辑功能划分,实际在进行模块划分时不受上述划分方式的限制,多个模块可以结合或者一个模块划分为多个子模块。
121.此外,作为分离部件说明的模块可以是或者也可以不是物理上分开。并且,每一模块可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。当使用硬件实现时,可以为全部或部分地以集成电路或芯片的形式实现。
122.本发明实施例还提供一种电子设备,包括:
123.处理器;
124.用于存储处理器可执行指令的存储器;
125.其中,所述处理器被配置为在执行所述可执行指令时,实现本公开前述实施例中任一项所述用于处理web3d场景的方法的步骤。
126.以上述依据本技术的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项申请技术思想的范围内,进行多样的变更以及修改。本项申请的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
127.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
技术特征:
1.一种用于处理web3d场景的方法,其特征在于,应用于web前端,所述方法包括:根据所述web3d场景中各场景对象的模型文件,确定各所述场景对象的模型渲染用时,并根据所述模型渲染用时,对对应的所述场景对象的模型文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程;根据所述web3d场景中每一所述模型渲染子线程的渲染用时,将所述模型渲染子线程分配到渲染队列中,其中,渲染用时相同的模型渲染子线程分配到同一个所述渲染队列中;根据所述渲染队列中所述模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级;根据所述渲染队列的渲染优先级以及模型渲染子线程的渲染用时,确定每一所述渲染队列的目标线程以及每一所述目标线程的并发渲染时刻;根据每一所述模型渲染子线程对应的模型文件,在多个所述并发渲染时刻分别通过所述目标线程在多个并发线程中进行并发渲染,得到web3d场景模型。2.根据权利要求1所述的方法,其特征在于,所述根据所述渲染队列的渲染优先级以及模型渲染子线程的渲染用时,确定每一所述渲染队列的目标线程以及每一所述目标线程的并发渲染时刻,包括:根据所述模型渲染子线程的渲染用时,从所述web前端的中央处理器的并发体对应的多个并发线程中确定每一所述渲染队列的目标线程,其中,所述目标线程的计算资源满足所述渲染队列中任意所述模型渲染子线程的渲染计算要求;根据所述渲染优先级以及所述模型渲染子线程的渲染用时,确定每一所述目标线程的并发渲染时刻。3.根据权利要求2所述的方法,其特征在于,所述根据所述渲染优先级以及所述模型渲染子线程的渲染用时,确定每一所述目标线程的并发渲染时刻,包括:根据所述渲染优先级以及所述模型渲染子线程的渲染用时,通过如下公式确定每一所述目标线程的并发渲染时刻:rb
i+1
>rb
i
×
n
i
/n*(1-t
i
/t
i+1
)+p
i
其中,rb
i+1
和rb
i
分别为第i+1个和第i个渲染队列的并发渲染时刻,其中,i取值越小,渲染优先级越高,n为所述渲染队列的总个数,n
i
*为所述渲染队列的渲染优先级,t
i
和t
i+1
分别为第i+1个和第i个渲染队列内模型渲染子线程的渲染用时,p
i
表示相邻渲染优先级渲染队列的之间的预设时间间隔。4.根据权利要求1所述的方法,其特征在于,所述根据所述渲染队列中所述模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级,包括:确定每一所述渲染队列中执行逻辑顺序最先的所述模型渲染子线程为目标模型渲染子线程;比较各所述渲染队列中所述目标模型渲染子线程的执行逻辑顺序;按照所述目标模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级,其中,执行逻辑顺序在前的目标模型渲染子线程对应的渲染队列的渲染优先级,高于执行逻辑顺序在后的目标模型渲染子线程对应的渲染队列的渲染优先级。5.根据权利要求1所述的方法,其特征在于,所述根据所述模型渲染用时,对对应的所述场景对象的模型文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程,包
括:确定各所述场景对象的所述模型渲染用时是否大于预设时长阈值;对所述模型渲染用时大于预设时长阈值的目标场景对象对应的模型文件按照对象单位进行分割,得到所述目标场景对象对应的多个模型子文件,其中,每一所述模型子文件对应的模型渲染用时小于或者等于所述预设时长阈值;对所述模型渲染用时小于或者等于所述预设时长阈值的场景对象对应的模型文件,和/或多个所述模型子文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程。6.根据权利要求5所述的方法,其特征在于,在所述确定各所述场景对象的所述模型渲染用时是否大于预设时长阈值之前,包括:确定多个cpu根据各所述场景对象的模型文件进行渲染时的核间负载差值和核间通信总量;根据所述核间负载差值和所述核间通信总量,建立cpu之间的渲染任务分配目标函数并求解,得到每一所述cpu的最小耗费计算资源;根据所述最小耗费计算资源,建立线程分割目标函数并求解,确定各所述场景对象的所述模型渲染用时。7.一种用于处理web3d场景的装置,其特征在于,应用于web前端,所述装置包括:第一确定模块,被配置为根据所述web3d场景中各场景对象的模型文件,确定各所述场景对象的模型渲染用时,并根据所述模型渲染用时,对对应的所述场景对象的模型文件进行线程分配,得到所述web3d场景对应的多个模型渲染子线程;分配模块,被配置为根据所述web3d场景中每一所述模型渲染子线程的渲染用时,将所述模型渲染子线程分配到渲染队列中,其中,渲染用时相同的模型渲染子线程分配到同一个所述渲染队列中;第二确定模块,被配置为根据所述渲染队列中所述模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级;第三确定模块,被配置为根据所述渲染队列的渲染优先级以及模型渲染子线程的渲染用时,确定每一所述渲染队列的目标线程以及每一所述目标线程的并发渲染时刻;渲染模块,被配置为根据每一所述模型渲染子线程对应的模型文件,在多个所述并发渲染时刻分别通过所述目标线程在多个并发线程中进行并发渲染,得到web3d场景模型。8.根据权利要求7所述的装置,其特征在于,所述第三确定模块,包括:第一确定子模块,被配置为根据所述模型渲染子线程的渲染用时,从所述web前端的中央处理器的并发体对应的多个并发线程中确定每一所述渲染队列的目标线程,其中,所述目标线程的计算资源满足所述渲染队列中任意所述模型渲染子线程的渲染计算要求;第二确定子模块,被配置为根据所述渲染优先级以及所述模型渲染子线程的渲染用时,确定每一所述目标线程的并发渲染时刻。9.根据权利要求8所述的装置,其特征在于,所述第二确定子模块,被配置为:根据所述渲染优先级以及所述模型渲染子线程的渲染用时,通过如下公式确定每一所述目标线程的并发渲染时刻:rb
i+1
>rb
i
×
n
i
/n*(1-t
i
/t
i+1
)+p
i
其中,rb
i+1
和rb
i
分别为第i+1个和第i个渲染队列的并发渲染时刻,其中,i取值越小,渲染优先级越高,n为所述渲染队列的总个数,n
i
*为所述渲染队列的渲染优先级,t
i
和t
i+1
分别为第i+1个和第i个渲染队列内模型渲染子线程的渲染用时,p
i
表示相邻渲染优先级渲染队列的之间的预设时间间隔。10.根据权利要求7所述的装置,其特征在于,所述第二确定模块,被配置为:确定每一所述渲染队列中执行逻辑顺序最先的所述模型渲染子线程为目标模型渲染子线程;比较各所述渲染队列中所述目标模型渲染子线程的执行逻辑顺序;按照所述目标模型渲染子线程的执行逻辑顺序,确定所述渲染队列的渲染优先级,其中,执行逻辑顺序在前的目标模型渲染子线程对应的渲染队列的渲染优先级,高于执行逻辑顺序在后的目标模型渲染子线程对应的渲染队列的渲染优先级。
技术总结
本发明公开了一种用于处理web3D场景的方法和装置,包括:根据web3D场景中各场景对象的模型文件,确定各场景对象的模型渲染用时,根据模型渲染用时,对场景对象的模型文件进行线程分配,得到web3D场景对应的多个模型渲染子线程;根据web3D场景中每一模型渲染子线程的渲染用时,将模型渲染子线程分配到渲染队列中;根据渲染队列中模型渲染子线程的执行逻辑顺序确定渲染队列的渲染优先级;根据渲染优先级和模型渲染子线程的渲染用时,确定每一渲染队列的目标线程和每一目标线程的并发渲染时刻;根据每一模型渲染子线程的模型文件,在多个并发渲染时刻通过目标线程在多个并发线程中进行并发渲染,得到web3D场景模型。得到web3D场景模型。得到web3D场景模型。
技术研发人员:刘宏斌 范孟硕 何志伟
受保护的技术使用者:青岛慧睦科技有限责任公司
技术研发日:2023.03.17
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
