一种三维模型渲染方法及系统与流程

文档序号:30701647发布日期:2022-07-09 20:01阅读:129来源:国知局
一种三维模型渲染方法及系统与流程

1.本技术涉及数据处理技术领域,尤其是涉及一种三维模型渲染方法及系统。


背景技术:

2.随着用户对三维模型要求的不断提高,三维模型数据量和复杂度呈几何级数增长,海量的几何与纹理数据对计算机的运算速度以及存储空间提出了更高的要求。传统的渲染理论和方法已经趋于成熟,随着图形处理器的发展,已经能够实时渲染高质量高真实感的画面,但是数据的发展速度远远超过了硬件设备的发展速度,通过优化来降低三维模型渲染对数据量的需求成为了一个重要的研究课题。


技术实现要素:

3.本技术提供一种三维模型渲染方法及系统,通过对三维模型进行重构以及使用以视觉为基础的针对性优化策略,来降低三维模型渲染过程中的数据处理量。
4.本技术的上述目的是通过以下技术方案得以实现的:第一方面,本技术提供了一种三维模型渲染方法,包括:响应于获取到的三维模型,读取三维模型的坐标点数据;根据坐标点数据构建三维模型的点阵模型,点阵模型由平面和曲面组成,平面包括至少三个三维点坐标,曲面包括多个点阵坐标;生成多个筛选扫描点并以筛选扫描点为基准对点阵模型进行扫描,滤除无法与筛选扫描点建立直接连接的平面和曲面,得到三维视觉模型;对位于显示区域的部分三维视觉模型进行渲染;以及响应于获取到的转动指令,对显示区域内的三维视觉模型进行更新并渲染。
5.在本技术的一种可能的实现方式中,使用筛选扫描点对点阵模型进行扫描包括:选取位于点阵模型外的空间点作为筛选扫描点,点阵模型位于全部筛选扫描点形成的封闭空间内;构建扫描区域识别空间,点阵模型位于扫描区域识别空间内;以及根据扫描范围确定对筛选扫描点数量进行增加或者减少;其中,全部筛选扫描点的扫描范围的合集能够覆盖扫描区域识别空间。
6.在本技术的一种可能的实现方式中,全部筛选扫描点均位于一个球面上;扫描区域识别空间的形状为球形。
7.在本技术的一种可能的实现方式中,根据扫描范围确定对筛选扫描点数量时,每个筛选扫描点的扫描范围均相同。
8.在本技术的一种可能的实现方式中,扫描区域识别空间中存在至少一个点与点阵模型上的一个点重合。
9.在本技术的一种可能的实现方式中,扫描过程中,平面上的一个三维点坐标被扫描到,对位于该平面上的其他三维点坐标进行视同扫描处理;
扫描过程中,曲面上任意一个点阵坐标被扫描到,对位于该曲面上的其他点阵坐标进行视同扫描处理。
10.在本技术的一种可能的实现方式中,还包括:记录被扫描到的三维点坐标和点阵坐标;以及在该三维点坐标或点阵坐标被再次扫描到时进行忽略处理。
11.第二方面,本技术提供了一种三维模型渲染装置,包括:获取单元,用于响应于获取到的三维模型,读取三维模型的坐标点数据;构建单元,用于根据坐标点数据构建三维模型的点阵模型,点阵模型由平面和曲面组成,平面包括至少三个三维点坐标,曲面包括多个点阵坐标;扫描单元,用于生成多个筛选扫描点并以筛选扫描点为基准对点阵模型进行扫描,滤除无法与筛选扫描点建立直接连接的平面和曲面,得到三维视觉模型;渲染单元,用于对位于显示区域的部分三维视觉模型进行渲染;以及更新单元,用于响应于获取到的转动指令,对显示区域内的三维视觉模型进行更新并渲染。
12.第三方面,本技术提供了一种三维模型渲染系统,所述系统包括:一个或多个存储器,用于存储指令;以及一个或多个处理器,用于从所述存储器中调用并运行所述指令,执行如第一方面及第一方面任意可能的实现方式中所述的方法。
13.第四方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质包括:程序,当所述程序被处理器运行时,如第一方面及第一方面任意可能的实现方式中所述的方法被执行。
14.第五方面,本技术提供了一种计算机程序产品,包括程序指令,当所述程序指令被计算设备运行时,如第一方面及第一方面任意可能的实现方式中所述的方法被执行。
15.第六方面,本技术提供了一种芯片系统,该芯片系统包括处理器,用于实现上述各方面中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。
16.该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
17.在一种可能的设计中,该芯片系统还包括存储器,该存储器,用于保存必要的程序指令和数据。该处理器和该存储器可以解耦,分别设置在不同的设备上,通过有线或者无线的方式连接,或者处理器和该存储器也可以耦合在同一个设备上。
附图说明
18.图1是本技术提供的一种三维模型渲染方法的处理过程示意框图。
19.图2是本技术提供的一种三维点坐标表示平面的示意图。
20.图3是本技术提供的一种点阵坐标表示曲线的示意图。
21.图4是本技术提供的一种筛选点坐标及扫描范围的示意图。
22.图5是本技术提供的另一种筛选点坐标及扫描范围的示意图。
23.图6是本技术提供的一种扫描范围的划分示意图。
具体实施方式
24.以下结合附图,对本技术中的技术方案作进一步详细说明。
25.请参阅图1,为本技术公开的一种三维模型渲染方法,方法包括以下步骤:s101,响应于获取到的三维模型,读取三维模型的坐标点数据;s102,根据坐标点数据构建三维模型的点阵模型,点阵模型由平面和曲面组成,平面包括至少三个三维点坐标,曲面包括多个点阵坐标;s103,生成多个筛选扫描点并以筛选扫描点为基准对点阵模型进行扫描,滤除无法与筛选扫描点建立直接连接的平面和曲面,得到三维视觉模型;s104,对位于显示区域的部分三维视觉模型进行渲染;以及s105,响应于获取到的转动指令,对显示区域内的三维视觉模型进行更新并渲染。
26.本技术公开的三维模型渲染方法,运行于电脑或者服务器中,当需要进行渲染的三维模型给到电脑或者服务器后,电脑或者服务器开始对三维模型进行处理,然后将处理结果通过显示屏幕进行显示。
27.具体而言,在步骤s101中,响应于获取到的三维模型,开始读取三维模型的坐标点数据,坐标点数据表示组成三维模型的各个零部件的形状、结构和尺寸等信息。
28.应理解,三维模型可以看作是零部件的集合,每一个零部件都可以使用平面和曲面进行描述,平面和曲面可以使用三维坐标系中的点进行描述,因此对于一个由多个零部件拼装成的三维模型,可以看作该三维模型是由多个平面和多个曲面组合而成,可以使用三维坐标系中的点的集合来进行描述。
29.一个零部件所包含的平面和曲面具有实际意义上的连接关系,也就是归属于该零部件的两个面(平面与平面、平面与曲面、曲面与曲面),至少存在一个点既属于其中一个面,也属于另一个面。
30.对于固定形状的平面,可以使用点来进行描述,例如三角形平面可以用三个点来表示,矩形可以用四个点来表示,圆形面可以用圆心点和多个边缘上的点进行表示,曲面可以使用属于该曲面上的多个点进行表示(点组成曲线,曲线组成面)。
31.因此在步骤s102中,会根据坐标点数据构建三维模型的点阵模型,点阵模型由平面和曲面组成,平面包括至少三个三维点坐标,如图2所示,曲面包括多个点阵坐标,如图3所示,图中的曲面简化为用曲线表示。
32.这个步骤的目的是将平面和曲面转化成由点表示的点阵模型,点阵模型中的点均可以在三维空间坐标系中用坐标(x,y,z)来进行表示。用点对三维模型的面(包括平面和曲面)进行筛选,能够降低对数据量的要求。
33.接着执行步骤s103,该步骤中,会生成多个筛选扫描点并以筛选扫描点为基准对点阵模型进行扫描,滤除无法与筛选扫描点建立直接连接的平面和曲面,得到三维视觉模型,该步骤中的三维视觉模型就是用户在显示终端上能够看到的模型。
34.从另一个角度考虑,三维视觉模型是步骤s101中三维模型的一个子集,该子集面向的是用户的视觉获得,对于三维模型中除了三维视觉模型之外的部分,不参与后续的渲染过程。
35.对于三维视觉模型的构建,有以下两种方式:第一种,使用扫描后剩余的平面和曲面进行直接构建;
第二种,使用扫描后剩余的平面和曲面对步骤s101中的三维模型进行删除处理,然后使用剩余的平面和曲面构建或者生成三维视觉模型。
36.在步骤s104中,会对位于显示区域的部分三维视觉模型进行渲染,而不是对全部的三维视觉模型进行渲染。此处应理解,三维视觉模型也可以分为可视部分和不可视部分,可视部分是用户在显示屏幕上能够看到的部分,不可视部分是用户在显示屏幕上无法看到的部分,可视部分和不可视部分可以相互转化。
37.可视部分和不可视部分可以相互转化在步骤s105中进行,在步骤s105中,用户会下达转动指令,那么响应于获取到的转动指令,三维视觉模型就会开始转动,此时会对显示区域内的三维视觉模型进行更新并渲染。
38.进一步地,在执行转动指令的过程中,已经在步骤s104中经过渲染的平面和曲面保留渲染结果,同时对于新出现的平面和曲面,使用相邻平面和/或曲面上的渲染结果,在转动指令停止后,再对停止转动的三维视觉模型进行再渲染,这样可以降低转动过程中的数据运算量,同时还能够使转动过程能够流畅。
39.整体而言,本技术提供的三维模型渲染方法,主要用于对三维模型进行渲染处理,在步骤s101和步骤s102中,使用了在三维坐标系中的点坐标来对三维模型进行描述,并使用了筛选扫描的方式来对生成的三维模型中包括的平面和曲面进行筛选。
40.这种处理方式能够大幅度降低数据的处理量,因为对渲染过程中用户无法看到的平面和曲面进行了筛除处理。对于剩余的平面和曲面,将其分为可视与不可视两类,并且仅对用户能够在显示屏幕上能够看到的平面和曲面进行渲染。当用户对三维视觉模型进行转动时,才会对新加入显示屏幕的平面和曲面进行渲染。
41.这种处理方式能够有效降低处理过程中的数据量,可以使用户以较低的硬件来得到更好的渲染效果。
42.请参阅图4和图5,作为申请提供的三维模型渲染方法的一种具体实施方式,使用筛选扫描点对点阵模型进行扫描时包括以下步骤:s201,选取位于点阵模型外的空间点作为筛选扫描点,点阵模型位于全部筛选扫描点形成的封闭空间内;s202,构建扫描区域识别空间,点阵模型位于扫描区域识别空间内;以及s203,根据扫描范围确定对筛选扫描点数量进行增加或者减少;其中,全部筛选扫描点的扫描范围的合集能够覆盖扫描区域识别空间。
43.具体地说,在步骤s201中,会选取位于点阵模型外的空间点作为筛选扫描点,筛选扫描点的数量为多个,这些筛选扫描点可以将点阵模型围拢起来,或者说是在三维空间坐标系中生成一个封闭空间,类似于鸡蛋壳,点阵模型位于这个封闭空间内,全部的筛选扫描点位于这个封闭空间的面上。
44.接着执行步骤s202,该步骤中,会构建一个扫描区域识别空间,扫描区域识别空间的作用是辅助筛选扫描点对点阵模型进行扫描,以使得全部筛选扫描点的扫描区域的合集能够将点阵模型完全覆盖。
45.应理解,点阵模型由多个平面和多个曲面组成,对于两个相邻的扫描区域,确定其是否重合或者对边界处的平面和/或曲面进行了覆盖是一个难题,因为位于边界处的平面和/或曲面可以存在连接关系,也可以不存在连接关系,同时这两个面间还可以存在高度
差,这种情况下对于边界的识别计算会带来巨大的计算量。
46.增加了扫描区域识别空间后,只要筛选扫描点的扫描区域能够将扫描区域识别空间的表面进行全覆盖,再适当增加筛选扫描点的密度,就可以实现对点阵模型的全覆盖,也就是步骤s203中的内容,根据扫描范围确定对筛选扫描点数量进行增加或者减少,例如图4中所示,图4中筛选扫描点的数量不足,需要进行增加,增加后的效果如图5所示。
47.筛选扫描点的扫描范围大,意味着筛选扫描点的数量少,筛选扫描点的扫描范围小,意味着筛选扫描点的数量多,但是筛选扫描点的数量与数据处理量呈正相关,并且当筛选扫描点的数量少时,可能会导致部分平面或者曲面无法被扫描到。因此需要确定合适的扫描范围,用来兼顾最终的渲染效果和渲染前处理步骤涉及到的数据处理量。
48.在一些可能的实现方式中,全部筛选扫描点均位于一个球面上,同时,扫描区域识别空间的形状为球形。球面是一个形状较为规则的曲面,这样在对扫描范围处理过程中涉及到的数据进行处理时,其处理规则或者说处理方式能够趋于一致,这样可以降低处理过程中的数据量。
49.进一步地,扫描区域识别空间的球心和全部筛选扫描点所在球面的球心是重合的,这样可以使任意一个筛选扫描点与扫描区域识别空间之间的最小距离均是相等的,那么对于每一个筛选扫描点,可以使用同一种计算方式进行数据处理,能够进一步降低数据处理过程中的计算量。
50.更进一步地,根据扫描范围确定对筛选扫描点数量时,每个筛选扫描点的扫描范围均相同。
51.作为申请提供的三维模型渲染方法的一种具体实施方式,扫描区域识别空间中存在至少一个点与点阵模型上的一个点重合,这样可以尽可能的缩小扫描区域识别空间的体积。
52.请参阅图6,扫描区域识别空间的体积越小,其与点阵模型间的距离也就越小,这样能够提高筛选扫描点的扫描精度。应理解,在远离筛选扫描点的方向上,筛选扫描点的扫描范围会增大,在前述内容中已经陈述,使用扫描区域识别空间对筛选扫描点的扫描范围进行约束。那么该约束出现在筛选扫描点的扫描范围的末端,很显然能够起到更好的约束效果。
53.因为筛选扫描点的扫描范围在离开扫描区域识别空间的约束后,还会继续扩大,这就会导致相邻的扫描范围的边界确定愈发困难(重合区域的覆盖面积过大),因此需要使扫描区域识别空间的体积尽可能的小。
54.作为申请提供的三维模型渲染方法的一种具体实施方式,对于平面和曲面的扫描,使用如下方式进行简化处理:扫描过程中,平面上的一个三维点坐标被扫描到,对位于该平面上的其他三维点坐标进行视同扫描处理;扫描过程中,曲面上任意一个点阵坐标被扫描到,对位于该曲面上的其他点阵坐标进行视同扫描处理。
55.这样可以进一步降低数据的处理量,例如一个平面需要使用五个点来进行描述,那么当其中的任意一个点被扫描到后,剩余的四个点就可以视同被扫描到,很明显,处理一次和处理多次相比,处理一次的数据运算量更小。
56.进一步地,还增加了以下步骤:
s301,记录被扫描到的三维点坐标和点阵坐标;以及s302,在该三维点坐标或点阵坐标被再次扫描到时进行忽略处理。
57.具体而言,就是一个三维点坐标或者点阵坐标能够被多次扫描到,但是仅在第一次扫描时进行后续的数据处理运算,在后续的处理过程中,如果该三维点坐标或者点阵坐标被再次扫描到,那么就可以直接跳过,这样从根本上避免了重复计算的问题。
58.第二方面,本技术提供了一种三维模型渲染装置,包括:获取单元,用于响应于获取到的三维模型,读取三维模型的坐标点数据;构建单元,用于根据坐标点数据构建三维模型的点阵模型,点阵模型由平面和曲面组成,平面包括至少三个三维点坐标,曲面包括多个点阵坐标;扫描单元,用于生成多个筛选扫描点并以筛选扫描点为基准对点阵模型进行扫描,滤除无法与筛选扫描点建立直接连接的平面和曲面,得到三维视觉模型;渲染单元,用于对位于显示区域的部分三维视觉模型进行渲染;以及更新单元,用于响应于获取到的转动指令,对显示区域内的三维视觉模型进行更新并渲染。
59.在一个例子中,以上任一装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specific integratedcircuit,asic),或,一个或多个数字信号处理器(digital signal processor,dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,fpga),或这些集成电路形式中至少两种的组合。
60.再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,cpu)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,soc)的形式实现。
61.在本技术中可能出现的对各种消息/信息/设备/网元/系统/装置/动作/操作/流程/概念等各类客体进行了赋名,可以理解的是,这些具体的名称并不构成对相关客体的限定,所赋名称可随着场景,语境或者使用习惯等因素而变更,对本技术中技术术语的技术含义的理解,应主要从其在技术方案中所体现/执行的功能和技术效果来确定。
62.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
63.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
64.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
65.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
66.还应理解,在本技术的各个实施例中,第一、第二等只是为了表示多个对象是不同的。例如第一时间窗和第二时间窗只是为了表示出不同的时间窗。而不应该对时间窗的本身产生任何影响,上述的第一、第二等不应该对本技术的实施例造成任何限制。
67.还应理解,在本技术的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
68.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
69.本技术还提供了一种三维模型渲染系统,所述系统包括:一个或多个存储器,用于存储指令;以及一个或多个处理器,用于从所述存储器中调用并运行所述指令,执行如上述内容中记载的方法。
70.本技术还提供了一种计算机程序产品,该计算机程序产品包括指令,当该指令被执行时,以使得该三维模型渲染设备执行对应于上述方法的三维模型渲染设备的操作。
71.本技术还提供了一种芯片系统,该芯片系统包括处理器,用于实现上述内容中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。
72.该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
73.上述任一处提到的处理器,可以是一个cpu,微处理器,asic,或一个或多个用于控制上述的反馈信息传输的方法的程序执行的集成电路。
74.在一种可能的设计中,该芯片系统还包括存储器,该存储器,用于保存必要的程序指令和数据。该处理器和该存储器可以解耦,分别设置在不同的设备上,通过有线或者无线的方式连接,以支持该芯片系统实现上述实施例中的各种功能。或者,该处理器和该存储器也可以耦合在同一个设备上。
75.可选地,该计算机指令被存储在存储器中。
76.可选地,该存储器为该芯片内的存储单元,如寄存器、缓存等,该存储器还可以是该终端内的位于该芯片外部的存储单元,如rom或可存储静态信息和指令的其他类型的静态存储设备,ram等。
77.可以理解,本技术中的存储器可以是易失性存储器或非易失性存储器,或可包括
易失性和非易失性存储器两者。
78.非易失性存储器可以是rom、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。
79.易失性存储器可以是ram,其用作外部高速缓存。ram有多种不同的类型,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synch link dram,sldram)和直接内存总线随机存取存储器。
80.本具体实施方式的实施例均为本技术的较佳实施例,并非依此限制本技术的保护范围,故:凡依本技术的结构、形状、原理所做的等效变化,均应涵盖于本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1