The adaptive surface subdivision method based on GPU involves computer graphics. The existing segmentation methods, with segmentation, the number of vertices and edges will increase dramatically, the reality is that in the subdivision iteration times, some regions (such as part of a flat part or the initial control mesh is dense) the control grid has a good approximation of the limit subdivision surface, and in some areas (such as the large curvature part) the control mesh is relatively rough, need to continue to breakdown. To reduce the waste of unnecessary computational resources, adaptive surface subdivision algorithms are important. The invention effectively solves the contradiction between the smoothness of the surface and the amount of data, so as to improve the rendering frame rate under the premise of ensuring the subdivision effect of the surface subdivision. Two subdivision patterns based on triangular patches are adopted: PN triangle and Phong subdivision for verification. The experimental results show that the adaptive surface subdivision method based on GPU has very good practical and theoretical significance.
【技术实现步骤摘要】
基于GPU的自适应曲面细分方法
本专利技术属于计算机图形学领域,涉及一种基于GPU的自适应曲面细分方法。
技术介绍
随着现代工业的发展,计算机辅助与制造发展迅速,其技术水平的发展已成为一个国家现代化水平的重要标志。其中计算机辅助几何设计(ComputerAidedGeometricDesign简称为CAGD)是对外形方面的几何信息的计算机表示,现在已经是计算机应用学科的一个重要分支。由于计算机离散化表示数据,计算机不能直接生成曲线,当然更不能直接生成曲面。我们在计算机屏幕上看到的曲线、曲面实际上是由无数个多边形构成的。当然多边形越多,那么曲面就会展现的更为真实。要得到精细的效果,需要提供包含大量控制点的实体模型,称之为高模模型,但这给模型设计带来了大量的工作量,提高了人力成本。曲面细分技术,是一种化繁为简的手段,在模型已有的表面上细分出顶点,逐步逼近理想曲面。1978年EdwinCatmull和JimClark提出经典的Catmull-Clark曲面细分算法,由于该算法的递归特性不适用于GPU编程,基于三角形的Loop细分算法也不适用GPU编程。近些年一大批适用于GPU编程的曲面细分算法被提出,比如:2008年CHARLESLOOP和SCOTTSCHAEFER两人于2008年提出了一种近似Catmull-Clark细分面的算法、同年TamyBoubekeur提出的Phong细分算法。由于细分曲面的顶点和面数以指数速度增长,绘制速度会随细分深度增加而迅速降低,所以在GPU技术出现之前细分曲面技术难以实用,直到由ATI公司基于GPU开发应用了曲面细分之后,曲面 ...
【技术保护点】
基于GPU的自适应曲面细分方法;其特征在于,在计算机中是依次按以下步骤实现的:步骤(1),Directx11初始化步骤(2),读取网格模型数据与初始化顶点缓存:在Directx11中集成了曲面细分管线,在GPU中实现PN三角形细分策略时,对于每一个三角形面片,由三个控制点生成一个有10个控制点的3阶贝塞尔三角形;在GPU中实现Phong细分算法时,对于每一个三角形面片,需要知道每个顶点的法向量;在自定义顶点结构中定义顶点的相关属性,PN三角形细分策略与Phong细分策略顶点格式相同,都包含一个坐标信息和法向量信息;步骤(3),创建顶点布局:在自定义顶点结构中定义顶点的相关属性,PN三角形细分策略与Phong细分策略顶点格式相同,都包含一个坐标信息和法向量信息;步骤(4),网格渲染:设置Input Assembler的图元拓扑类型,使其接收的是控制面片的结构,用IASetPrimitiveTopology设置D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,使得GPU以面片的方式读取顶点缓存;步骤(5),自适应曲面细分:准备好顶点缓冲后 ...
【技术特征摘要】
1.基于GPU的自适应曲面细分方法;其特征在于,在计算机中是依次按以下步骤实现的:步骤(1),Directx11初始化步骤(2),读取网格模型数据与初始化顶点缓存:在Directx11中集成了曲面细分管线,在GPU中实现PN三角形细分策略时,对于每一个三角形面片,由三个控制点生成一个有10个控制点的3阶贝塞尔三角形;在GPU中实现Phong细分算法时,对于每一个三角形面片,需要知道每个顶点的法向量;在自定义顶点结构中定义顶点的相关属性,PN三角形细分策略与Phong细分策略顶点格式相同,都包含一个坐标信息和法向量信息;步骤(3),创建顶点布局:在自定义顶点结构中定义顶点的相关属性,PN三角形细分策略与Phong细分策略顶点格式相同,都包含一个坐标信息和法向量信息;步骤(4),网格渲染:设置InputAssembler的图元拓扑类型,使其接收的是控制面片的结构,用IASetPrimitiveTopology设置D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,使得GPU以面片的方式读取顶点缓存;步骤(5),自适应曲面细分:准备好顶点缓冲后,在GPU中实现曲面细分算法,GPU以D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST组装方式对输入的顶点缓冲进行读取;在Directx11中,曲面细分阶段分为三个管线,分别为Hull着色阶段,Tessellator阶段以及Domain着色阶段;其中,Hull着色阶段由两部分构成,分别对应两个不同的hlsl程序,分别为Hull着色阶段和patch静态函数;在patch静态函数中决定了曲面片的细分程度,从而告知Tessellator阶段要细分出多少顶点;第一步:在patch静态函数中,进行自适应曲面细分算法的实现;自适应策略包括:背部剔除、距离自适应、垂直面自适应及面片大小自适应;计算出面片的细分因子后,需要进行裂缝消除;背部剔除:在进行计算细分因子之前,先做背部剔除测试,对于没有通过背部剔除测试的面片,只需要把该面片的每一条边的曲面细分因子置为0,那么渲染管线将不再渲染该面片;对于一个给定的三角形面片,对于每一条边,计算公式如下:其中edgedot为点积结果,Nj,Nk表示三角形面片中任意两个顶点的组合,V为视向量;对于左手坐标系,若该结果为负值,说明该面片的这条边为背向;当一个面片的三条边都为背向时说明该面片为背向;距离自适应:基于距离自适应的细分因子计算公式如下:Factor1=1-(Dis-minDis)/disFrange其中,Dis表示视点与面片边中点的距离,minDis表示使用最大细分因子的最小距离;di...
【专利技术属性】
技术研发人员:何震震,肖创柏,禹晶,
申请(专利权)人:北京工业大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。