[发明专利]基于GPU的自适应曲面细分方法有效

专利信息
申请号: 201710058646.9 申请日: 2017-01-23
公开(公告)号: CN106887042B 公开(公告)日: 2020-05-19
发明(设计)人: 何震震;肖创柏;禹晶 申请(专利权)人: 北京工业大学
主分类号: G06T17/30 分类号: G06T17/30
代理公司: 北京思海天达知识产权代理有限公司 11203 代理人: 刘萍
地址: 100124 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 基于GPU的自适应曲面细分方法涉及计算机图形学领域。现存的细分方法,随着细分的进行,顶点和边的数量会急剧增加,实际情况是,在细分迭代数次后,某些区域(如较平坦部分或者初始控制网格较稠密的部分)其控制网格已较好地逼近极限细分曲面,而在另外一些区域(如曲率变化较大的部分)其控制网格还比较粗糙,需要继续细分。为了减少不必要的计算资源的浪费,自适应的曲面细分算法就很重要了。本发明有效的解决曲面光滑度和数据量之间的矛盾,使得在保证曲面细分显示效果的前提下提高渲染帧率。采取了两种基于三角形面片的细分模式:PN三角形和Phong细分进行验证,实验证明,基于GPU的自适应曲面细分方法具有很好的现实和理论意义。
搜索关键词: 基于 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),自适应曲面细分:准备好顶点缓冲后,在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表示使用最大细分因子的最小距离;disFrange表示近平面与远平面之间的距离,Factor1为使用距离自适应策略得到的调节因子;得到的Factor1的值位于[0,1]之间;得到调节因子后,使用线性差值公式:x1=1+Factor*(x‑1)其中,x1为使用距离自适应策略调解后的细分因子大小,x为初始细分因子大小;垂直面自适应:对于每一个面片处理如下:其中edgedot为点积结果,Nj,Nk表示三角形面片中任意两个顶点的组合,V为视向量;其中edgedot为归一化后的两个向量之间的乘积;根据公式:Factor2=1‑|edgedot|同样使用线性插值公式:x2=1+Factor2*(x1‑1)其中,Factor2为使用垂直面自适应策略得到的调节因子;x2为经过垂直面自适应策略调解后得到的细分因子大小,x1使用距离自适应策略调解后的细分因子大小面片大小自适应:对于模型中的面片首先根据面片的每一条边进行细分因子的动态计算;对于一个给定的面片,计算公式如下:其中,P1,P2表示三角形面片的任意两点;D表示用户给定的距离大小;Factor3为求得的调节因子;得到调节因子Factor3后,同样使用线性差值公式:x3=1+Factor3*(x2‑1)其中,x3为面片大小自适应策略调解后的细分因子大小,x2为经过垂直面自适应策略调解后得到的细分因子大小裂缝消除:对于相邻三角形的相邻边,设置该边的细分因子为相邻三角形中最大的细分因子;三角形ABC,与三角形ACD相邻,AC为共享边,XAC表示边AC的细分因子大小;为三角形ABC中AC边的细分因子大小,为三角形ACD边AC边的细分因子大小;第二步:hull着色程序,对每个输出控制点执行一次,设置细分domain为三角形,输出控制点的数量为3,并指定patch函数为第二步中的patch函数;第三步:domain着色程序,在该程序中分别实现了PN三角形细分策略及Phong细分策略;使用PN三角形细分策略时,对于给定u,v,w,u+v+w=1,使用三阶贝塞尔三角形公式:求出细分得到的顶点的三维坐标;使用二阶贝塞尔三角形公式得到各个顶点的法向量;公式如下:对于给定的uvw坐标,求出顶点的法向量;使用Phong细分模式时,三角形面片的控制点为:pl,pm和pn,各个顶点对应的法向量分别为nl,nm和nn;对于给定的uvw坐标,使用以下公式:其中,p(u,v,w)=pl*u+pm*v+pn*w令q=p(u,v,w),那么:πl(p(u,v,w))=πl(q)=q‑((q‑pl)Tnl)nlπm(p(u,v,w))=πm(q)=q‑((q‑pm)Tnm)nmπn(p(u,v,w))=πn(q)=q‑((q‑pn)Tnn)nnT表示转置;即能求出细分得到的顶点的三维坐标。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201710058646.9/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top