CN116310048B - 一种基于曲率细分计算光线跟踪与nurbs曲面交点的方法 - Google Patents
一种基于曲率细分计算光线跟踪与nurbs曲面交点的方法 Download PDFInfo
- Publication number
- CN116310048B CN116310048B CN202310325012.0A CN202310325012A CN116310048B CN 116310048 B CN116310048 B CN 116310048B CN 202310325012 A CN202310325012 A CN 202310325012A CN 116310048 B CN116310048 B CN 116310048B
- Authority
- CN
- China
- Prior art keywords
- curved surface
- bezier
- curve
- nurbs
- curvature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012360 testing method Methods 0.000 claims abstract description 11
- 239000013598 vector Substances 0.000 claims abstract description 9
- 230000001133 acceleration Effects 0.000 claims abstract description 8
- 238000011156 evaluation Methods 0.000 claims abstract description 6
- 230000000694 effects Effects 0.000 abstract description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013486 operation strategy Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种基于曲率细分计算光线跟踪与NURBS曲面交点的方法,包括以下步骤:S1:将NURBS曲线和NURBS曲面转换为Bézier曲线和Bézier曲面;S2:使用基于曲率的插入节点向量细分算法,将Bézier曲面细分为更小的Bézier曲面,用以满足对曲面的平坦度标准;S3:为Bézier曲面的凸包生成AABB包围盒并构建全局加速结构,通过光线‑AABB求交测试找到可能相交的Bézier曲面;S4:使用牛顿迭代在uv空间求出光线与未裁剪曲面的交点,迭代过程中需要进行多次曲面评估。该方法大大加速了求得光线跟踪与NURBS曲线和曲面求交点的流程,从而增加了其在三维模型显示系统上的效果与效率。
Description
技术领域
本发明涉及光线跟踪技术领域,尤其涉及一种基于曲率细分计算光线跟踪与NURBS曲面交点的方法。
背景技术
光线跟踪是计算机图形学中广泛使用的方法,用于在三维场景中追踪光线并计算它们与物体表面的交点。由于光线跟踪可以提供高质量的图像,因此它已经成为了许多三维应用程序的标准之一,
在光线跟踪过程中,NURBS曲线和曲面经常作为基本的几何表示形式被使用,由于NURBS曲线和曲面的复杂性和高精度要求,求解光线与其的交点成为了一个关键的挑战。
经检索,申请号CN115453753A的中国专利文件,公开了基于NURBS表面的光学系统高精度光线追迹方法及装置,其目的是解决如何基于NURBS数学表征方法,结合规模化光线分包策略、并行运算策略、特定离散采样方案等,通过设计分级的BVH加速数据结构,在获取优异的迭代初值下,通过拟牛顿法,实现高精度追迹精度的问题,但是,在更快地求解光线和曲面交点,更效率地实现求解计算过程,没有很好提及,并且应用过程中,还存在更多上述未重点提及的复杂场景。
目前,基于曲面细分算法的方法已经成为了解决光线与其的交点这个问题的主流方法,也同样出现如下问题:一是修剪后的NURBS曲面是几何建模领域一种最常用的建模方式,且使用该方法建模的数量近些年来迅速增长;二是光线跟踪已成为一种发展迅速的生成几何模型的计算机真实图形图像的方法。
NURBS曲面在造型系统中占有重要地位,它能统一表示平面、二次面、β样条和Bézier等各种形式的曲面,支持NURBS的造型系统,可以从功能上能造出绝大多数实用的复杂曲面,随着计算机系统软硬件性能的不断提高,真实图形显示已成为CAD/CAM系统的重要内容之一,光线跟踪作为计算机显示真实图形最重要的算法之一,如果能对NURBS曲面进行光线跟踪,则能精确地显示出造型系统所能生成的任何形体,与此同时,如何实现更高的精度、更快的求解速度以及对于复杂的场景具有更好的适应性和可扩展性,也是需要考虑的重点。
发明内容
本发明的目的是为了解决现有技术中存在的缺陷,而提出的基于曲率细分计算光线跟踪与NURBS曲面交点的方法。
为了实现上述目的,本发明采用了如下技术方案:
一种基于曲率细分计算光线跟踪与NURBS曲面交点的方法,包括以下步骤:
S1:将NURBS曲线和NURBS曲面转换为Bézier曲线和Bézier曲面;
S2:使用基于曲率的插入节点向量细分算法,将Bézier曲面细分为更小的Bézier曲面,用以满足对曲面的平坦度标准;
S3:为Bézier曲面的凸包生成AABB包围盒并构建全局加速结构,通过光线-AABB求交测试找到可能相交的Bézier曲面;
S4:使用牛顿迭代在uv空间求出光线与未裁剪曲面的交点,迭代过程中需要进行多次曲面评估;
S5:通过牛顿迭代计算出光线与未裁剪曲面的交点,并在uv空间通过进行奇偶裁剪测试对该交点进行验证准确性。
进一步地,步骤S2中进行Bézier曲面的细分具体包括以下步骤:
Bézier曲面的细化程度会通过最大曲率和长度的乘积得出;
通过对曲面上的曲线进行一阶和二阶求导近似,得到一阶和二阶导数曲线控制点;
基于二阶控制点划分网格,进行Bézier曲面的细分。
相比于现有技术,本发明的有益效果在于:
本发明通过对光线跟踪NRUBS曲线和NURBS曲面的流程2中的曲面细分算法进行改进,通过基于曲率的方法插入矢量节点向量对平面进行细分,得到满足平坦度要求的曲面,且初始猜测值接近正确值,满足通过牛顿迭代过程对光线和曲面求交点的要求。之后通过为Bézier曲面的凸包生成AABB包围盒并构建全局加速结构,通过光线-AABB求交测试找到可能相交的Bézier曲面;使用牛顿迭代在uv空间求出光线与未裁剪曲面的交点,迭代过程中需要进行多次曲面评估(给定uv求出曲面该点的三维坐标和导数);之后将通过在uv空间通过进行奇偶裁剪测试对该交点进行验证。
该方法大大加速了求得光线跟踪与NURBS曲线和曲面求交点的流程,从而增加了其在三维模型显示系统上的效果与效率。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明提出的基于曲率细分计算光线跟踪与NURBS曲面交点的方法的流程示意图;
图2为本发明实施例中的弦高公差示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例一
如图1所示,一种基于曲率细分计算光线跟踪与NURBS曲面交点的方法,包括以下步骤:
S1:将NURBS曲线和NURBS曲面转换为Bézier曲线和Bézier曲面;
S2:使用基于曲率的插入节点向量细分算法,将Bézier曲面细分为更小的Bézier曲面,用以满足对曲面的平坦度标准;
S3:为Bézier曲面的凸包生成AABB包围盒并构建全局加速结构,通过光线-AABB求交测试找到可能相交的Bézier曲面;
S4:使用牛顿迭代在uv空间求出光线与未裁剪曲面的交点,迭代过程中需要进行多次曲面评估(给定uv求出曲面该点的三维坐标和导数);
S5:通过牛顿迭代计算出光线与未裁剪曲面的交点,并在uv空间通过进行奇偶裁剪测试对该交点进行验证准确性。
在步骤S2中,光线和曲面求交点过程的牛顿迭代过程条件需要曲面平坦且初始猜测值接近正确值。
实施例二
如图1-图2所示,一种基于曲率细分计算光线跟踪与NURBS曲面交点的方法,包括以下步骤:
步骤S1:该步骤中通过节点插值的方法将NURBS曲线和NURBS曲面分割为有理Bézier曲线和Bézier曲面;
步骤S2:使用基于曲率的插入节点向量细分算法,将Bézier曲面细分为更小的Bézier曲面,用以满足对曲面的平坦度标准;
其中,该步骤中基于曲率的细分算法内容,具体如下:
如图2所示,一条B样条曲线c(t)曲线上区间[ti,ti+1)应该被细化的程度由该区间的最大曲率和它在该区间跨度上长度的乘积给出,其中,长曲线段会被分割以确保数值求解器的初始猜测合理地接近实际根,高曲率区域也会被分割以避免产生多个根,将最大曲率作为平坦度的衡量标准时,得到的启发式算法对于圆以外的曲线会比较保守。
在本实施例中,添加到当前曲线跨度上节点数的值由下式给出:
其中,需要限制曲线与其线性近似的偏差。
需要具体说明的是,大圆会比小圆被分解成更多的曲线,用线段对一个曲线跨度为半径为r的圆进行近似时,近似精度的度量可以用给出切面与圆最大偏差的弦高h来表示,具体方式为:
在这个公差范围内产生曲线所需的n2段数用来计算可以得到:
结合公式(1),给一个区间添加的节点数为n1*n2:
其中,C允许用户控制细化精度。
由于最大曲率和弧长通常很难得到,因此,将根据公式估计得到它们的值,c在这个区间上的弧长是:
曲率定义为:
化简曲率得到
综上,需要进一步说明的是,上述对曲率的估计值会偏大,误差会出现在细化得太细而非不够细的一边,因此,为了得到二阶导数的速度而不是曲率,这是一个能够接受的方案。
区间[ti,ti+1)上的最大曲率为:
如果假设曲线是多项式,那么区间[ti,ti+1)的一阶导数为:
其中,{Pj}为曲线的控制点。
进一步具体地,有理曲线的导数要更加复杂,虽然导数的多项式通常不能很好地逼近有理导数,但在展平的情况下,将前者应用于有理曲线时,可以得到合理的结果,在本算法的其余部分,将假定有理控制点已投射到欧几里德(Euclidean)三维空间中。
由于ΣBj,k-1(t)=1,可以通过求得导数曲线控制点Vj的平均值来得到近似平均速度:
其中平均速度为:
对区间[ti,ti+1)求得的二阶导数是:
式中,
利用凸包性质,将二阶导数的极大值近似为二阶导数曲线控制点Aj的极大值:
得到的公式为:
对于网格的每一行,都会应用上述公式来计算每个u节点区间需要添加节点的个数,最终的结果是所有行的最大值,对每一列重复这个过程,以细化v节向量。
插入的节点在现有的节点间隔内均匀地分布,对曲线细化的最后一步,需要“关闭”细化的节点向量tu和tv中的所有节点间隔,其中,需要给tu的每个内部节点赋予乘积ku-1,给每个末端节点赋予乘积ku。
另外,相类似地,分别给tv的内部和外部节点赋予kv-1和kv的乘积,得到的结果是对应于tu×tv的每个非空区间[ui,ui+1)×[vj,vj+1)的Bézier曲面,使用相应的细化曲面网格的凸包对其进行绑定;
步骤S3:通过步骤S2中找到的细化控制网格的点来构建包围体层次结构,为Bézier曲面的凸包生成AABB包围盒并构建全局加速结构,通过光线-AABB求交测试找到可能相交的Bézier曲面;
步骤S4:使用牛顿迭代在uv空间求出光线与未裁剪曲面的交点,迭代过程中需要进行多次曲面评估(给定uv求出曲面该点的三维坐标和导数);
步骤S5:通过牛顿迭代计算出光线与未裁剪曲面的交点,并且将该交点在uv空间进行奇偶裁剪测试以验证准确性。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种基于曲率细分计算光线跟踪与NURBS曲面交点的方法,其特征在于,包括以下步骤:
S1:将NURBS曲线和NURBS曲面转换为Bézier曲线和Bézier曲面;
S2:使用基于曲率的插入节点向量细分算法,将Bézier曲面细分为更小的Bézier曲面,用以满足对曲面的平坦度标准;
S3:为Bézier曲面的凸包生成AABB包围盒并构建全局加速结构,通过光线-AABB求交测试找到可能相交的Bézier曲面;
S4:使用牛顿迭代在uv空间求出光线与未裁剪曲面的交点,迭代过程中需要进行多次曲面评估;
S5:通过牛顿迭代计算出光线与未裁剪曲面的交点,并在uv空间通过进行奇偶裁剪测试对该交点进行验证准确性;
步骤S2中进行Bézier曲面的细分具体包括以下步骤:
Bézier曲面的细化程度会通过最大曲率和长度的乘积得出;
通过对曲面上的曲线进行一阶和二阶求导近似,得到一阶和二阶导数曲线控制点;
基于二阶控制点划分网格,进行Bézier曲面的细分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310325012.0A CN116310048B (zh) | 2023-03-29 | 2023-03-29 | 一种基于曲率细分计算光线跟踪与nurbs曲面交点的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310325012.0A CN116310048B (zh) | 2023-03-29 | 2023-03-29 | 一种基于曲率细分计算光线跟踪与nurbs曲面交点的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116310048A CN116310048A (zh) | 2023-06-23 |
CN116310048B true CN116310048B (zh) | 2024-01-26 |
Family
ID=86837744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310325012.0A Active CN116310048B (zh) | 2023-03-29 | 2023-03-29 | 一种基于曲率细分计算光线跟踪与nurbs曲面交点的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116310048B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116910834B (zh) * | 2023-07-24 | 2024-03-15 | 中国科学院数学与系统科学研究院 | 基于nurbs曲面快速求交算法的cad模型构建方法 |
CN117058300B (zh) * | 2023-08-11 | 2024-05-03 | 上海慕灿信息科技有限公司 | 一种基于kd树加速光线与未裁剪曲面交点计算的方法 |
CN117494509B (zh) * | 2023-11-02 | 2024-05-28 | 上海慕灿信息科技有限公司 | 一种基于多物理场的块结构自适应网格细化方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110208769A (zh) * | 2019-07-05 | 2019-09-06 | 西安电子科技大学 | 基于nurbs曲面的射线追踪方法及系统 |
CN111610751A (zh) * | 2020-05-21 | 2020-09-01 | 天津工业大学 | 过点集nurbs插值曲线的插值误差多次细分迭代计算方法 |
CN115453753A (zh) * | 2022-09-23 | 2022-12-09 | 中国科学院长春光学精密机械与物理研究所 | 基于nurbs表面的光学系统高精度光线追迹方法及装置 |
CN115730438A (zh) * | 2022-11-18 | 2023-03-03 | 浙江大学 | 产品nurbs曲面映射逆向求解gpu并行处理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7212205B2 (en) * | 2002-11-12 | 2007-05-01 | Matsushita Electric Industrial Co., Ltd. | Curved surface image processing apparatus and curved surface image processing method |
US20070018988A1 (en) * | 2005-07-20 | 2007-01-25 | Michael Guthe | Method and applications for rasterization of non-simple polygons and curved boundary representations |
-
2023
- 2023-03-29 CN CN202310325012.0A patent/CN116310048B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110208769A (zh) * | 2019-07-05 | 2019-09-06 | 西安电子科技大学 | 基于nurbs曲面的射线追踪方法及系统 |
CN111610751A (zh) * | 2020-05-21 | 2020-09-01 | 天津工业大学 | 过点集nurbs插值曲线的插值误差多次细分迭代计算方法 |
CN115453753A (zh) * | 2022-09-23 | 2022-12-09 | 中国科学院长春光学精密机械与物理研究所 | 基于nurbs表面的光学系统高精度光线追迹方法及装置 |
CN115730438A (zh) * | 2022-11-18 | 2023-03-03 | 浙江大学 | 产品nurbs曲面映射逆向求解gpu并行处理方法 |
Non-Patent Citations (1)
Title |
---|
直线/NURBS曲线等基于曲线束的求交方法;陈小雕 等;计算机辅助设计与图形学学报(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116310048A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116310048B (zh) | 一种基于曲率细分计算光线跟踪与nurbs曲面交点的方法 | |
US8537158B2 (en) | Parallel triangle tessellation | |
JP4934789B2 (ja) | 補間処理方法および補間処理装置 | |
CN108629838B (zh) | 三维牙冠网格模型的孔洞修补方法及装置 | |
JP5436416B2 (ja) | 近似処理方法、および近似処理装置 | |
KR100717676B1 (ko) | Cad 시스템 및 cad 프로그램을 기록한 기록 매체 | |
CN111581776B (zh) | 一种基于几何重建模型的等几何分析方法 | |
CN113724401B (zh) | 一种三维模型切割方法、装置、计算机设备和存储介质 | |
EP2869226A1 (en) | Updating a CAD model to reflect global or local shape changes | |
CN112233249A (zh) | 基于密集点云的b样条曲面拟合方法及装置 | |
Liu et al. | Quality improvement of surface triangular mesh using a modified Laplacian smoothing approach avoiding intersection | |
US20050078109A1 (en) | Three-dimensional shape display program, three-dimensional shape display method, and three-dimensional shape display apparatus | |
CN115758938A (zh) | 面向粘性边界流场数值模拟的附面层网格生成方法 | |
JPH08153214A (ja) | 3次元直交格子データの生成方法 | |
Gong et al. | Three-dimensional reconstruction of medical image based on improved marching cubes algorithm | |
Feng et al. | B-spline free-form deformation of polygonal object as trimmed Bezier surfaces | |
US20220391548A1 (en) | Filling a mesh hole | |
US10902675B2 (en) | Graphical modelling by smoothing polyhedral meshes with multi-sided patches | |
CN115130340A (zh) | 基于分数布朗运动的管道建模方法 | |
Lin et al. | Dual-RBF based surface reconstruction | |
JP2005149245A (ja) | Cadシステム、曲面解析装置、曲面再生装置、その方法及びそのプログラム | |
CN112614046B (zh) | 一种二维平面上绘制三维模型的方法及装置 | |
CN117217130B (zh) | 一种逐层推进的壁面距离确定方法、装置以及介质 | |
CN117437378B (zh) | 一种基于四边形的网格生成方法、系统、设备和介质 | |
CN111292422A (zh) | 一种基于曲面法线改进网格生成质量的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |