使用针对网顶点位置的求根和迭代生成逼近曲面的多边形网的方法系统与流程

文档序号:36318253发布日期:2023-12-08 11:27阅读:36来源:国知局
使用针对网顶点位置的求根和迭代生成逼近曲面的多边形网的方法系统与流程

本公开涉及计算机生成的曲面逼近(surface approximation)领域,尤其涉及用于生成作为曲面的逼近的多边形网(polygon mesh)的方法、系统、以及计算机可读介质。


背景技术:

1、用于在显示设备上显示的三维(three-dimensional,3d)对象和曲面的渲染用于各种应用中。图像、视频、游戏、模拟、虚拟现实系统、医学成像、以及许多其他应用基于描述对象和曲面的数据渲染3d对象和曲面,以便在二维(two-dimensional,2d)屏幕和/或3d虚拟环境中显示。已经开发了各种技术来使得设备能够基于描述曲面的输入数据有效地将曲面的逼近生成、存储、以及显示为多边形(例如三角形)的网(mesh)。

2、在许多系统中,以各种格式接收曲面数据。例如,曲面数据可以被编码为数学函数、包含标量值(scalar value)的体素(voxel)的网格(grid)、点集(point set)、或其他表示。然而,例如当曲面数据以特定格式提供,或者在其他情况下具有特定特征时,用于从曲面数据逼近到网的标准技术可能无法提供曲面的精确逼近。例如,在一些应用中,要渲染的数据不是作为距离函数提供的,而是可以包括指示由具有该曲面的体积占用的每个体素的量的密度(density)或占用率值(occupancy value)。在其他示例中,曲面可以沿体素的边非线性地变化。在这种情况下,通过逼近曲面的网的现有技术进行的渲染可能是不精确的。因此,需要能够有效地生成更精确地逼近曲面的网的改进的技术。

3、本文提供的背景技术的描述旨在总体介绍本公开的上下文。在本背景技术部分中所描述的范围内的当前指定的发明人的工作,以及在申请时可能不符合现有技术的描述的各方面,既不明示也不暗示地承认为针对本公开的现有技术。


技术实现思路

1、本技术的各实施方式涉及使用针对网顶点位置(mesh vertex position)的求根(root-finding)和/或迭代(iteration)来生成逼近曲面的多边形网。在一些实施方式中,一种方法包括:一个或多个处理器接收表示区分体积的内部和外部的曲面的输入数据。一个或多个处理器确定包括曲面的体素网格,体素网格包括多个体素。一个或多个处理器识别曲面相交的体素网格的特定体素。一个或多个处理器生成逼近曲面的网,该网包括由特定体素中的顶点定义的多边形。生成该网包括使用求根技术确定顶点的位置,该求根技术求得描述曲面的曲面函数的根。

2、描述了该方法的各种实施方式和示例。例如,在一些实施方式中,该方法还包括基于输入数据将多个体素的每个体素映射到来自一组存储的相交情况(intersection case)的相应相交情况,每个映射的相交情况指示曲面通过体素的相交路径,并且识别特定体素包括基于映射的相交情况识别曲面相交的特定体素的边(edge)或其他线段(linesegment)。在一些实施方式中,求根技术通过迭代评估顶点位置和调整顶点的位置朝向曲面来逼近顶点的位置。在一些实施方式中,每个顶点被约束到特定体素中的相关联体素的体素空间(voxel space)的维度(dimension)。在各种实施方式中,输入数据可以包括距离场(distance field)中指示数据点到曲面的空间距离的标量值、指示体积的体素的密度或占用率的标量值等。

3、在一些实施方式中,求根技术包括基于输入数据的离散样本(discrete sample),使用曲面函数的有限差分(finite difference)来逼近曲面函数的导数,以及使用导数逼近曲面函数的根以确定顶点的位置。在一些实施方式中,求根技术包括:对于每个顶点,根据基于曲面函数的导数确定的曲面函数的根来确定顶点的逼近位置(approximateposition),确定逼近位置和曲面之间的误差(error),以及确定相关联的体素内的顶点的新的逼近位置以减小误差。

4、在一些实施方式中,该方法还包括使用一个或多个处理器迭代确定误差和确定附加的逼近位置以减小误差,直到误差满足预定准则。在一些实施方式中,求根技术包括解析求解描述曲面的曲面函数以求得曲面函数的根,其中,根用于确定顶点的位置。在一些实施方式中,求根技术包括:对于顶点中的每个顶点,在第一组顶点之间执行线性插值,以确定沿相关联的体素的边或其他线段的顶点的位置的逼近,确定顶点的位置的逼近和曲面之间的误差,以及在包括该顶点的位置的逼近的第二组顶点之间执行线性插值,以确定相关联的体素内的顶点的位置的新逼近,以减小误差。在一些实施方式中,该方法还包括使用一个或多个处理器迭代确定误差和在包括顶点的位置的较新逼近的一组顶点之间执行线性插值,以减小误差,直到误差满足预定准则。

5、在一些实施方式中,该方法还包括确定跨特定体素中的一个或多个体素的曲面的曲率(curvature),确定一个或多个体素中的至少一个体素中的曲面的曲率高于阈值,响应于曲面的曲率在至少一个体素中超过阈值,通过在至少一个体素中的网的两个顶点之间的网中插入附加顶点来细分网,确定附加顶点与曲面之间的第二误差,将附加顶点调整为更接近曲面以减小第二误差。在一些实施方式中,该方法还包括使用一个或多个处理器迭代确定第二误差和调整附加顶点,直到第二误差满足预定的第二准则。在一些实施方式中,该方法还包括一个或多个处理器基于网生成特征曲面(feature surface),该特征曲面可由显示设备显示。

6、在一些实施方式中,一种计算机实现的方法包括:一个或多个处理器接收表示区分体积的内部和外部的曲面的输入数据。一个或多个处理器确定包括曲面的体素网格,体素网格包括多个体素。一个或多个处理器识别曲面相交的体素网格的特定体素。一个或多个处理器生成逼近曲面的网,网包括由特定体素中的网的顶点定义的多个多边形。生成该网包括:确定体素中的多边形的顶点的逼近位置,确定跨特定体素中的一个或多个体素的曲面的曲率,响应于确定曲面的曲率在特定体素中超过阈值,通过在特定体素中的网的两个顶点之间的网中插入附加顶点来细分网,确定附加顶点与曲面之间的误差,调整特定体素内的附加顶点以减小误差。

7、描述了该方法的各种实施方式和示例。例如,在一些实施方式中,调整附加顶点包括使用一个或多个处理器迭代确定误差和调整附加顶点,直到误差满足预定准则。在一些示例中,响应于执行预定数量的迭代,响应于误差低于预定阈值等,误差满足预定准则。在一些实施方式中,该方法还包括一个或多个处理器基于输入数据将多个体素中的每个体素映射到来自一组存储的相交情况的相应相交情况,其中,每个映射的相交情况指示曲面通过体素的相交路径,并且识别特定体素包括基于映射的相交情况识别曲面相交的特定体素的边或其他线段。在一些实施方式中,每个顶点被约束到特定体素中的相关联体素的体素空间的维度。

8、在一些实施方式中,确定网的曲率包括确定特定体素中的一个或多个体素的顶点处的曲面切线(surface tangent)。在一些实施方式中,确定网的曲率包括在特定体素中的体素的边或其他线段的中点处对网进行采样,并确定从中点到曲面的距离。在一些实施方式中,调整特定体素内的附加顶点包括使用求根技术来求得描述曲面的曲面函数的根。在一些实施方式中,在插入附加顶点之后,该方法还包括:确定在附加顶点处的特定体素中的曲面的一部分的曲率是否超过阈值;响应于确定曲面的一部分的曲率超过阈值,通过在附加顶点和特定体素中的网的两个顶点中的另一顶点之间的网中插入第二附加顶点来进一步细分网;确定第二附加顶点与曲面之间的误差;调整特定体素内的第二附加顶点以减小误差。在一些实施方式中,该方法还包括基于网生成特征曲面,该特征曲面可由显示设备显示。

9、在一些实施方式中,一种系统包括至少一个处理器和耦合到至少一个处理器的存储器,存储器存储有指令,当由至少一个处理器执行时,指令使至少一个处理器执行操作。这些操作包括:接收表示区分体积的内部和外部的曲面的输入数据;确定包括曲面的体素网格,其中,体素网格包括多个体素;识别曲面相交的体素网格的特定体素;生成逼近曲面的网,网包括由特定体素中的网的顶点定义的多个多边形。生成网包括使用求根技术确定顶点的位置,该求根技术求得描述曲面的曲面函数的根。

10、一些实施方式可以包括一种系统,该系统包括耦合到非暂时性计算机可读介质的至少一个处理器,该非暂时性计算机可读介质上存储有软件指令,当由一个或多个处理器执行时,指令使一个或多个处理器执行操作。这些操作可以包括上述任何方法的一个或多个特征。

11、在一些实施方式中,一种非暂时性计算机可读介质在其上存储了软件指令,当由设备的处理器执行时,软件指令使处理器执行操作。这些操作可以包括上述任何方法或系统的一个或多个特征。

12、本技术的各实施方式涉及使用针对网顶点位置的迭代来生成逼近曲面的多边形网。在一些实施方式中,一种方法包括:一个或多个处理器接收表示区分体积的内部和外部的曲面的输入数据。一个或多个处理器确定包括曲面的体素网格,体素网格包括多个体素。一个或多个处理器识别曲面相交的体素网格的特定体素。一个或多个处理器生成逼近曲面的网,该网包括由特定体素中的顶点定义的多边形。生成网包括基于特定体素的子集中曲面与特定体素的子集相交的位置的插值,确定特定体素的子集中的网的多边形的顶点的子集的逼近位置;确定特定体素的逼近体素值和分配的体素值之间的误差,其中,逼近体素值基于逼近位置,并且分配的体素值从输入数据确定;使用逐次超松弛技术调整顶点的子集中的至少一个顶点的逼近位置以减少误差。

13、描述了该方法的各种实施方式和示例。例如,在一些实施方式中,调整至少一个顶点的逼近位置包括使用一个或多个处理器迭代确定误差和调整,直到误差满足预定标准。在一些实施方式中,响应于执行预定次数的迭代或响应于误差满足一个或多个预定阈值,误差满足预定标准。在一些实施方式中,多边形顶点子集的逼近位置是特定体素子集的边上曲面与边相交的位置的插值确定的。

14、在一些实施方式中,该方法还包括一个或多个处理器基于输入数据将多个体素中的每个体素映射到来自一组存储的相交情况的相应相交情况,其中,每个映射的相交情况指示曲面通过体素的相交路径,并且识别特定体素包括基于映射的相交情况识别曲面相交的特定体素的边或其他线段。在一些实施方式中,在一些实施方式中,确定网的多边形的顶点的子集的逼近位置包括使用行进立方体技术或曲面网络技术来确定顶点的初始逼近位置。

15、在一些实施方式中,逐次超松弛技术用于确定多边形的顶点的子集的多个逼近位置,特定体素的子集包括网的多个相邻体素。在一些实施方式中,特定体素的子集包括体素网格的多个相邻体素,并且该方法还包括确定在特定体素的相邻体素的第二子集中的网的多边形的顶点的第二子集的逼近位置。

16、在一些实施方式中,确定误差包括基于逼近位置确定逼近体素值,并将逼近体素值与分配的体素值进行比较,其中,确定逼近体素值包括:对于每个逼近体素值,确定和与逼近体素值相关联的体素相交的网的体积,并基于网的体积确定逼近体素值。在一些实施方式中,确定和与逼近体素值相关联的体素相交的网的体积包括确定与逼近体素值相关联的体素内的网的三维积分。

17、在一些实施方式中,该方法还包括基于网生成特征曲面,该特征曲面可由显示设备显示。在一些实施方式中,每个顶点被约束到特定体素的相关联体素的体素空间的维度。在一些实施方式中,输入数据包括标量值,标量值指示体积对体素的密度或占用率。

18、在一些实施方式中,一种系统包括至少一个处理器和耦合到至少一个处理器的存储器,存储器存储有指令,当由至少一个处理器执行时,指令使至少一个处理器执行操作。这些操作包括:接收表示区分体积的内部和外部的曲面的输入数据;确定包括曲面的体素网格,其中,体素网格包括多个体素;识别曲面相交的体素网格的特定体素;生成逼近曲面的网,网包括由特定体素中的网的顶点定义的多个多边形。生成网包括基于特定体素的子集中的位置的插值,确定特定体素的子集中的网的多边形的顶点的子集的逼近位置,该位置为曲面与特定体素的子集相交的位置;确定特定体素的逼近体素值和分配的体素值之间的误差,其中,逼近体素值基于逼近位置,并且分配的体素值由输入数据确定;使用逐次超松弛技术调整顶点的子集中的至少一个顶点的逼近位置以减少误差。

19、描述了该系统的各种实施方式和示例。例如,在一些实施方式中,调整至少一个顶点的逼近位置的操作包括迭代确定误差以及调整直到误差满足预定标准。在一些实施方式中,逐次超松弛技术用于确定多边形的顶点的子集的多个逼近位置,并且特定体素的子集包括网的多个相邻体素。在一些实施方式中,特定体素的子集包括体素网格的多个相邻体素,并且至少一个处理器执行进一步的操作,包括:确定特定体素的相邻体素的第二子集中的网的多边形的顶点的第二子集的逼近位置。

20、在一些实施方式中,确定误差的操作包括基于逼近位置确定逼近体素值,并将逼近体素值与分配的体素值进行比较,其中,确定逼近体素值包括:对于每个逼近体素值,确定和与逼近体素值相关联的体素相交的网的体积,并基于网的体积确定逼近体素值。在一些实施方式中,确定与逼近体素值相关联的体素相交的网的体积的操作包括确定与逼近体素值相关联的体素内的网的三维积分。在一些实施方式中,每个顶点被约束到特定体素的相关联体素的体素空间的维度。在一些实施方式中,至少一个处理器执行进一步的操作,包括:基于网生成特征曲面,该特征曲面可由显示设备显示。

21、在一些实施方式中,一种非暂时性计算机可读介质在其上存储了软件指令,当由设备的处理器执行时,软件指令使处理器执行操作。这些操作包括:接收表示区分体积的内部和外部的曲面的输入数据;确定包括曲面的体素网格,其中,体素网格包括多个体素;识别曲面相交的体素网格的特定体素;生成逼近曲面的网,网包括由特定体素中的网的顶点定义的多个多边形。生成网包括基于特定体素的子集中的位置的插值,确定特定体素的子集中的网的多边形的顶点的子集的逼近位置,该位置为曲面与特定体素的子集相交的位置;确定特定体素的逼近体素值和分配的体素值之间的误差,其中,逼近体素值基于逼近位置,并且分配的体素值由输入数据确定;使用逐次超松弛技术调整顶点的子集中的至少一个顶点的逼近位置以减少误差。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1