System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种三维场景的构建方法及相关装置制造方法及图纸_技高网

一种三维场景的构建方法及相关装置制造方法及图纸

技术编号:41276345 阅读:4 留言:0更新日期:2024-05-11 09:28
本申请公开了一种三维场景的构建方法及相关装置。方法包括:获取数组结构,数组结构包括指示瓦片中是否存在网格物体的标识;获取三维场景中的至少一个网格物体,确定第一位置,第一位置包括每个网格物体的包围盒在世界坐标系下的位置;对于每个网格物体,将第一位置转换为第二位置,所述第二位置包括网格物体的包围盒在瓦片坐标系下的位置;根据第二位置,对数组结构进行标记,得到更新后数组结构。从而加快三维场景的构建速度。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种三维场景的构建方法及相关装置


技术介绍

1、随着计算机软、硬件突飞猛进的发展,计算机图形学在各个行业的应用也得到迅速普及和深入。目前,计算机图形学己进入三维时代,渲染的三维场景广泛的应用于建筑虚拟、城市规划、场景漫游、效果场景制作、展馆展示、古迹复原、交通线路设计、房地产开发、虚拟教育、游戏等各方面,发挥着极其重大的作用。而这些后续活动都围绕着构建好的三维场景展开,因此,对三维场景进行快速构建就显得十分重要。

2、目前,一般是采用八叉树等结构对三维场景中的物体进行组织和管理,以完成三维场景的构建。但是,八叉树等结构采用的是层次遍历的方式,整个构建过程是自顶向下的,构建速度较慢。


技术实现思路

1、本申请提供了一种三维场景的构建方法及相关装置,能够加快场景的构建速度。

2、第一方面,本申请提供了一种三维场景的构建方法,包括:

3、首先,获取数组结构,数组结构包括指示瓦片中是否存在网格物体的标识;随后,获取三维场景中的至少一个网格物体,确定第一位置,第一位置包括每个网格物体的包围盒在世界坐标系下的位置;接着,对于每个网格物体,将第一位置转换为第二位置,第二位置包括网格物体的包围盒在瓦片坐标系下的位置;最后,根据第二位置,对数组结构进行标记,得到更新后数组结构。

4、本申请中,相比于八叉树等采用自顶向下的层次遍历方式进行场景构建的方法,通过结构较为简单、层次体系更为高效的数组结构对三维场景中的物体进行管理,将数组结构与瓦片相关联,通过将场景中的网格物体转换到瓦片中的对应位置,并采用数组结构标记该对应的位置,从而将网格物体的位置快速更新在数组结构中,实现对三维场景的管理和快速构建,加快场景的构建速度,提升三维场景的构建效率。

5、在第一方面的一种可能的实现方式中,对于每个网格物体,将第一位置转换为第二位置,包括:

6、根据第一位置获取网格物体的包围盒的第一顶点坐标集合;

7、将第一顶点坐标集合中包含的每一顶点坐标分别投影到xy平面上,得到第二顶点坐标集合;

8、根据当前层次将第二顶点坐标集合转换为瓦片坐标系下的第三顶点坐标集合,确定第二位置,其中,三维场景基于地理空间位置被划分为至少一个层次下的至少一个瓦片,在至少一个瓦片被细分到第一最大层次之前,每个层次下每个瓦片可被细分为若干大小相等的子瓦片,当前层次的初始值为第一最大层次对应的数值,第三顶点坐标集合指示网格物体的包围盒在瓦片被细分到当前层次下的相对位置。

9、该种可能的实现方式中,通过将网格物体的包围盒对应的各个顶点坐标投影到xy平面上,实现网格物体从三维到二维瓦片的位置转换。另外,通过将网格物体的位置与瓦片的层次相关联,得到瓦片在不同层次下相对于瓦片的相对位置,为后续找到可以完全放置网格物体的包围盒的瓦片提供前提条件。

10、在第一方面的一种可能的实现方式中,根据第二位置,对数组结构进行标记,得到更新后数组结构,包括:

11、根据第二位置,判断网格物体的包围盒是否位于同一瓦片内,得到判断结果;

12、若判断结果为是,则根据第二位置,对数组结构进行标记,得到更新后数组结构。

13、该种可能的实现方式中,在将三维场景中的网格物体的位置转换到瓦片中的对应位置后,通过对网格物体与瓦片的位置关系进行判断,找到能够完全放置网格物体的瓦片,将网格物体更新在对应的瓦片中,完成了网格物体与瓦片的位置关系转换。

14、在第一方面的一种可能的实现方式中,根据第二位置,判断网格物体的包围盒是否位于同一瓦片内,得到判断结果,包括:

15、分别对第三顶点坐标集合内的每一顶点坐标进行取整操作,得到第四顶点坐标集合;

16、若第四顶点坐标集合内的所有顶点坐标的横坐标均一致且纵坐标均一致,则确定判断结果为是,否则,确定判断结果为否。

17、该种可能的实现方式中,在三维场景被细分到当前层次下时,在将网格物体的位置转换到瓦片坐标下后,网格物体可能会出现在x方向或者y方向上横跨多个瓦片的情况,此时就需要通过网格物体的包围盒的顶点坐标进行判断,来确定网格物体与当前层次下细分的瓦片之间的相对位置。

18、在第一方面的一种可能的实现方式中,若判断结果为是,则根据第二位置,对数组结构进行标记,得到更新后数组结构,包括:

19、若判断结果为是,则根据第四顶点坐标集合生成第一坐标;

20、对第一坐标进行降维处理,得到第一数值;

21、根据第一数值对数组结构进行标记,得到更新后的数组结构。

22、该种可能的实现方式中,若网格物体的包围盒的顶点坐标投影到xy平面后,所有顶点均位于当前层次下的同一瓦片中,则说明该层次即为放置该网格物体的最优层次。进一步的,通过对该瓦片内的网格物体的坐标进行降维操作,建立瓦片与数组结构之间对应的索引,并根据该索引对数组结构的对应位置内的元素进行标记,实现对数组结构的更新。

23、在第一方面的一种可能的实现方式中,数组结构包括第一数组和第二数组,根据第一数值对数组结构进行标记,得到更新后的数组结构,包括:

24、根据当前层次,分别确定第一数组和第二数组对应的第一数据层次,第一数组和第二数组均包括至少一个数据层次,每个数据层次包括至少一个按序号排列的层次数值,序号m指示在第一数据层次下的第m个瓦片,m为正整数;

25、分别以第一数组和第二数组对应的第一数据层次下的初始序号作为偏移起点,以第一数值作为偏移量,分别得到第一数组和第二数组在第一数据层次下的目标序号;

26、分别将第一数组和第二数组在第一数据层次下的目标序号内的层次数值标记为第二数值,得到更新后的第一数组和更新后的第二数组,更新后的第一数组和更新后的第二数组均指示在目标序号对应的第一瓦片内存在网格物体。

27、该种可能的实现方式中,通过瓦片分块技术对三维场景中网格物体进行管理,将网格物体的位置转换到瓦片中,便于数据访问。然后,通过网格物体在瓦片中的位置,使用高效的索引机制,建立与数组结构之间的关联关系,将网格物体与瓦片的位置关系快速更新到数组结构中,采用数组结构描述三维场景内的网格物体在瓦片中的分布情况,加快三维场景的构建速度。

28、在第一方面的一种可能的实现方式中,方法还包括:

29、以第一瓦片作为子瓦片,获取子瓦片对应的上层瓦片集合;

30、根据第一数值,将上层瓦片集合中每个瓦片对应的序号内的层次数值均标记为第二数值,得到更新后的第二数组。

31、该种可能的实现方式中,对于被细分的子瓦片,通过对子瓦片以上的各个层次下对应的瓦片进行标记,并更新在数组结构中,以通过数组结构更新网格物体在瓦片中的位置,从而进一步实现对三维场景的管理和快速构建。

32、在第一方面的一种可能的实现方式中,方法还包括:

33、若判断本文档来自技高网...

【技术保护点】

1.一种三维场景的构建方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述对于每个所述网格物体,将所述第一位置转换为第二位置,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据当前层次将所述第二顶点坐标集合转换为所述瓦片坐标系下的第三顶点坐标集合,包括:

4.根据权利要求2或3所述的方法,其特征在于,所述根据所述第二位置,对所述数组结构进行标记,得到更新后数组结构,包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述第二位置,判断所述网格物体的包围盒是否位于同一瓦片内,得到判断结果,包括:

6.根据权利要求5所述的方法,其特征在于,所述若所述判断结果为是,则根据所述第二位置,对所述数组结构进行标记,得到更新后数组结构,包括:

7.根据权利要求6所述的方法,其特征在于,所述数组结构包括第一数组和第二数组,所述根据所述第一数值对所述数组结构进行标记,得到更新后的数组结构,包括:

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

9.根据权利要求4至8任一项所述的方法,其特征在于,所述方法还包括:

10.根据权利要求2至9任一项所述的方法,其特征在于,所述方法还包括:

11.根据权利要求10所述的方法,其特征在于,所述基于所述数组结构确定所述待渲染场景中与所述视椎体具有相交关系的N个网络物体,包括:

12.一种三维场景的构建装置,其特征在于,包括:

13.根据权利要求12所述的装置,其特征在于,所述物体位置转换模块具体用于:

14.根据权利要求13所述的装置,其特征在于,所述根据当前层次将所述第二顶点坐标集合转换为所述瓦片坐标系下的第三顶点坐标集合,包括:

15.根据权利要求13或14所述的装置,其特征在于,所述数组结构更新模块具体用于:

16.根据权利要求15所述的装置,其特征在于,所述根据所述第二位置,判断所述网格物体的包围盒是否位于同一瓦片内,得到判断结果,包括:

17.根据权利要求15或16所述的装置,其特征在于,所述若所述判断结果为是,则根据所述第二位置,对所述数组结构进行标记,得到更新后数组结构,包括:

18.根据权利要求17所述的装置,其特征在于,所述数组结构包括第一数组和第二数组,所述根据所述第一数值对所述数组结构进行标记,得到更新后的数组结构,包括:

19.根据权利要求18所述的装置,其特征在于,所述数组结构更新模块还用于:

20.根据权利要求15至19任一项所述的装置,其特征在于,所述数组结构更新模块具体用于:

21.根据权利要求13至20任一项所述的装置,其特征在于,所述装置还包括三维场景渲染模块,所述三维场景渲染模块用于:

22.根据权利要求21所述的装置,其特征在于,所述基于所述数组结构确定所述待渲染场景中与所述视椎体具有相交关系的N个网络物体,包括:

23.一种三维场景的构建装置,其特征在于,包括至少一个存储器和处理器,所述存储器存储有代码,所述处理器被配置为执行所述代码,以使所述三维场景的构建装置执行如权利要求1至11中任一项所述的方法。

24.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,该程序由计算机执行时,使得所述计算机实施权利要求1至11中任一项所述的方法。

25.一种电路系统,其特征在于,所述电路系统包括处理电路,所述处理电路配置为执行如权利要求1至11中任一项所述的方法。

...

【技术特征摘要】

1.一种三维场景的构建方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述对于每个所述网格物体,将所述第一位置转换为第二位置,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据当前层次将所述第二顶点坐标集合转换为所述瓦片坐标系下的第三顶点坐标集合,包括:

4.根据权利要求2或3所述的方法,其特征在于,所述根据所述第二位置,对所述数组结构进行标记,得到更新后数组结构,包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述第二位置,判断所述网格物体的包围盒是否位于同一瓦片内,得到判断结果,包括:

6.根据权利要求5所述的方法,其特征在于,所述若所述判断结果为是,则根据所述第二位置,对所述数组结构进行标记,得到更新后数组结构,包括:

7.根据权利要求6所述的方法,其特征在于,所述数组结构包括第一数组和第二数组,所述根据所述第一数值对所述数组结构进行标记,得到更新后的数组结构,包括:

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

9.根据权利要求4至8任一项所述的方法,其特征在于,所述方法还包括:

10.根据权利要求2至9任一项所述的方法,其特征在于,所述方法还包括:

11.根据权利要求10所述的方法,其特征在于,所述基于所述数组结构确定所述待渲染场景中与所述视椎体具有相交关系的n个网络物体,包括:

12.一种三维场景的构建装置,其特征在于,包括:

13.根据权利要求12所述的装置,其特征在于,所述物体位置转换模块具体用于:

14.根据权利要求13所述的装置,其特征在于,所述根据当前层次将所述第二顶点坐标集合转换为所述瓦片坐标系下的第三顶...

【专利技术属性】
技术研发人员:郭旻魏晨周臻王泉谱
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1