基于细分方法的分子表面网格生成方法

文档序号:6365819阅读:396来源:国知局
专利名称:基于细分方法的分子表面网格生成方法
技术领域
本发明涉及ー种基于细分方法(Subdivision Method)的分子表面网格生成方法,属于计算机科学与分子生物学相结合的技术领域。
背景技术
近年来,分子生物学、结构生物学和计算机技术的结合已成为一种趋势。这两门学科主要研究生物大分子的结构和功能,对分子表面模型的构造非常迫切。由于细分方法在曲面造型技术中具有绝对的优势,细分曲面模型构造逐渐成为学术界研究的热点,但是将细分的方法应用在分子表面的研究还较少。本发明也正是在这样ー个背景下提出了基于细分方法的分子表面网格生成方法。分子表面模型构造已在制药、生物、医学、量子化学等领域发挥着越来越重要的作用,对ー些蛋白质分子高质量可视化的需求与日俱增。所以本发明具有较高的学术意义和应用价值
人们对分子表面模型构造的研究始于19世纪70年代。这个时候有很多学者开始讨论分子表面模型的定义,但关于分子表面模型的理论体系还未形成。直到1983年,MichaelL. Connolly 发表了《Analysis of Molecular Surface Calculation》,详细阐述分子表面的形成过程,并给出计算分子表面的公式。至此,才开创了分子表面研究的先河。1971 年,Lee 和 Richards 提出了 SAS (solvent-accessible surface,溶剂可接触表面)分子表面模型,如图I所示。它模拟一个探针小球在分子表面滚动,在滚动过程中,探针小球中心扫描过的点的轨迹就形成了 SAS分子表面模型。1977年,Richards进ー步提出了光滑的分子表面模型(Smooth Molecular Surface). 1978年,Greer和Bush在Richards工作的基础上提出了 SES (solvent-excluded surface,溶剂非可接触表面)分子表面模型。它模拟探针小球在分子表面滚动,在滚动过程中,探针小球与所接触到的原子的边界所形成的轨迹即为SES。具体形成过程如下
探针小球(Probe)在分子表面滚动过程中,它同时与三个或者更多原子接触时的位置称为一个固定位置(如图I,探针球Probe和三个原子atoml, atom2, atom3同时接触),在这一位置,探针球和三个原子的接触点pl,p2, p3形成了ー个三角凹面(此三角凹面属于探针球面的一部分)。然后,探针球Probe绕着atom2与atom3所形成的轴线滚动直到和原子atom4接触时停止(如图I)。在这ー滚动过程中,探针球与原子atom2, atom3的接触点从p2到p4,从p3到p5划过一道弧线,这样,就形成了由p2,p4,p5,p3所围成的马鞍凹环面。当探针小球只和ー个原子接触吋,它在这一原子上滚动所形成的面即为凸球面,如图2中三角网格所示。探针小球在滚动过程中所形成的所有三角凹面、马鞍环面、凸球面共同组成了 SES分子表面。由以上介绍可知,SES主要由三种面片组成三角凹面片、马鞍环面片和凸球面片。如图3所示,红色球为当前考虑原子,其它六个蓝色球是它的邻近原子(邻近原子的定义在本文第三部分已说明),与其对应的SES分子表面网格图如图3所示。根据本文第二部分对分子表面SES的阐述,探针球与当前原子以及此原子的两个邻近原子同时接触时形成ー个固定位置,探针球的每个固定位置将形成一个三角凹面片,如图3中三角形网格所示。探针球从ー个固定位置滚动到另ー个固定位置的过程中将形成ー个马鞍环面,如图3中四边形网格所示。探针球只与当前原子接触滚动过程中所形成的面即为凸球面,如图3中三角形网格所示。此后,对分子表面的研究成为学术界的ー个热点,先后有不少学者发表了很多关于分子表面模型的文章。1995 年 8 月,Michel F. Sanner, Arthur J. Olson 在 Connolly的基础上提出了ー种基于精简表面的高效计算分子表面的方法。2000年,Laug,P.,Borouchaki, H.又提出了分子表面有限网格自动生成方法。2007年5月杨俊清提出了基于四边形网格细分曲面生成方法。该方法是基于Catmull - Clark细分模式,具有局部性好、简单、易操作的特点,可成功应用于工程实际,解决细分曲面的生成问題 。2008年,Shuhua Lai和Kenjiro T. Miura提出了基于Doo-Sabin细分方法的分子光滑表面重构方法。2009 年 2 月,Joonghyun Ryua, Youngsong Choa, Deok-Soo Kimb 等人在计算机辅助设计上发表了《分子表面的三角化》,提出了时间复杂度为0(n)的分子表面三角化算法。2009 年,Adriano N. Raposo and Joao A. Queiroz and Abel J. P. Gomes 等人提出了基于等值面算法的分子表面三角化方法。OpenGL(全称Open Graphics Librar)是个定义了一个跨编程语言、跨平台的编程接ロ的规格,它用于三维图形图像(ニ维的亦可)的渲染。OpenGL是个专业的图形程序接ロ,是ー个功能強大,调用方便的底层图形库。CUDA (Compute Unified Device Architecture,全称计算统一设备架构)是NVIDIA为自家的GPU编写了一套编译器NVCC及其相关的库文件。CUDA主要在驱动程序方面和函数库方面进行了扩充。在CUDA库中提供了标准的FFT与BLAS库,一个为NVDIA GPU设计的C编译器。CUDA是ー种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了 CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员现在可以使用应用最广泛的高级编程语言C语言来为CUDA架构编写程序。因此可以在支持CUDA的处理器上以超高性能运行。将来还会支持其它语言,包括FORTRAN以及C++。CUDA软件堆栈包含多个层次,主要有硬件驱动(CUDA Drivers)、应用编程接ロ(CUDA Libraries)及运行时库(Runtime Libraries)等三个层次,还有两个高层公共数学函数库CUFFT (快速傅立叶变换)与CUBLAS(基本线性代数变换)。CUDA的基本思想是尽量应用线程级并行(Thread Level Parallel),这些线thread在硬件中能够得到很好地动态调度和运行。CPU上通过循环而实现的大量数据的重复操作,在CUDA中则是以网格(grid)的形式被分割为多个大小相等的线程块(block),每一个线程块最多可以包含512个线程(thread)。同一个block的所有thread有着相同的指令地址,能够并行运行,thread之间的通信则是依靠共享存储器实现的。所有block的执行都是没有顺序的,是真正的完全并行。

发明内容
本发明的目的在于针对已有技术存在的缺陷,提供ー种基于细分方法的分子表面网格生成方法,该方法在分子表面构造中达到很好的效果,且效率更高。
为达到上述目的,本发明的构思是针对SES分子表面的三种面片,提出了具体的网格细分生成算法;对马鞍环面片采用扇形极限细分法,对三角凹面片和凸球面采用基于三角形边细分的球面映射法。并借助CUDA并行技术加速网格化和显示过程。根据上述发明构思,本发明采用下述技术方案
ー种基于细分方法的分子表面网格生成方法,其操作步骤如下①对组成分子的所有原子进行预处理,使用分子表面原子滚动算法简称MSARA算法,提取出暴露在SES分子表面的原子,即探针求probe在滚动过程中可以接触到;剔除棹被覆盖在分子内部,从外面看不到的那些内部原子;
②分别对组成SES的三类面片ー马鞍环面片、三角凹面片和凸球面,进行细分对马鞍环面片采用扇形极限细分法;对三角凹面片和凸球面片采用基于三角形边细分的球面映射法,它是ー种结合调和映射和球面均值的细分方法,专门对三角凹面片和凸球面进行细分;
③使用OpenGL工具对细分后所得到的三维数据进行显示;
④借助CUDA并行技术加速网格化和显示过程。所述步骤①中所述的MSARA算法的算法流程如下
(1)建立一个链表’L_atom’存储从PDB文件中读出所有原子信息并标记为内部原子,每ー个链表节点存储原子的三维坐标和ー个指向该原子所有邻接原子的指针,接着按下面的步骤遍历链表’ L_atom’ ;
(2)atom_ii’L_atom’中的某个原子,遍历此原子的邻接原子链表‘L_neighbor’ ;
(3)从‘L_neighbor’ 中取出两个原子 atom_j, atom_k ,当 atom_j 与 atom_k 也相邻
时根据Connolly公式pijk = bijk 土 h· ■ Ulfk ,其中byk为基准点的空间坐标;h,为探针
球到基准平面的距离Aik为基准平面的単位法向量。计算探针球的中心坐标P,若atom_
j与atom_k不相邻则继续在’ L_neighbor’中取下两个原子进行同样的计算;
(4)各自计算探针球中心P到原子atom_j, atom_k所有的邻接原子中心的距离dl,d2, ".,dn…如果dl, d2, ···,dn…都大于它们的半径之和,则标记atom_i原子为表面原子,否则继续遍历aotm_i的邻接原子链表’ L_neighbor’。所述步骤②对马鞍环面片采用扇形极限细分法和对三角凹面片和凸球面片采用基于三角形边细分的球面映射法来完成的其实现步骤如下
(1)首先,使用扇形极限细分法对马鞍环面片细分图中圆弧进行细分,所谓扇形极限细分即对扇形圆弧进行等弧长细分,然后对半径为111,!12,!13,···,!^的圆弧同样采用扇形极限细分法进行细分;当细分一定的次数后就形成了马鞍环面网格;
(2)先选择正八面体作为初始网格,然后在初始网格基础上对每个三角形进行细分;每个三角形经边细分后将产生四个三角形,这个细分过程是ー个递归的过程;ー个三角形细分成4个三角形,接着继续细分成4*4=16个三角形,依此类推;
(3)对步骤(2)中使用三角形细分法新生成的点作一些处理,即对它们进行规范化把它们映射到球的表面上;细分一次就映射一次,摒弃中间的过程从结果来看,就好比在原来的球面上插入一系列的点;当细分的次数足够多,使得这些一系列的点足够的密,由这些点组成的小三角形面片形成的面就无限逼近原来的球面了。所述步骤③中使用OpenGL工具对细分后所得到的三维数据进行显示的实现步骤如下
(1)三角凹面片和凸球面片的显示是将细分后得到的三角形网格数据在OpenGL环境下进行三角形面片的渲染完成分子表面中三角凹面和凸球面的显示;
(2)同理,马鞍面片的显示是将细分后得到的四边形网格数据在OpenGL环境下进行四边形面片的渲染完成分子表面中马鞍面的显示;0penGL定义的面包括点、线和面三部分,每两个三角形単元都是通过它们共有的一条边来连接,每条边都是通过两个端点的节点坐标来绘制,即单元和节点的拓扑关系;将所有的三角形単元面片绘制出来就完成了三角凹面和凸球面的绘制;同一类面片的三角形単元数目越多,拼接出来的表面就越逼近于真实;三角形单元的三个顶点是逆时针顺序的,绘制函数如下
glBegin(GLTRIANGLES);
glVertex3d(xl, yl, zl) ;//三角形的第一个顶点
glVertex3d(x2, y2, z2) ;//三角形的第二个顶点
glVertex3d(x3, y3, z3) ;//三角形的第三个顶点
glEndO ;
同理对于马鞍环面,则是由有限四边形单元网格组成,每两个四边形单元都是通过它们共有的一条边来连接,每条边都是通过两个端点的节点坐标来绘制,将所有的四边形单元绘制出来就完成了马鞍环面的绘制。所述步骤④中借助CUDA并行技术加速网格化和显示过程。其实现步骤如下
(1)利用CPU擅长的复杂逻辑运算能力和GPU超强的并行计算能力,将分子表面模型快速构造方法中串行处理部分和并行计算部分提取出来;
(2)让CPU在主机端完成串行处理部分的工作读入分子模型数据,计算原子邻接关系,提取分子表面原子,提取三类网格面片,将三类网格数据从主机端拷贝到设备端;让GTO在设备端完成三类面片细分的并行计算任务,最大限度地利用计算机的处理能力。


图I是SES分子表面形成过程示意图。图2是原子实体图。图3是三类网格面片图。图4是正六边形向圆形极限逼近图。图5是扇形极限逼近图。图6马鞍环面细分示意图。图7马鞍面片网格图。图8三角细分过程图。图9正八面体形成示意图。图10球面一次、二次细分网格图。图11凸球面和三角凹面片细分网格图。
图12主程序框图。图13子程序框图I 图14子程序框图2
图15子程序框图3 图16子程序框图4 图17最終的分子表面细分网格图。本发明与已有技术相比具有如下特点
(I)本发明在对分子表面网格化之前对组成分子的原子进行了预处理。剔除了被其它表面原子覆盖在分子内的内部原子,大大減少了在分子表面网格化和显示阶段所花的时间。 (2)本发明所使用的细分方法可从任意形状网格出发构造分子光滑的表面而无需考虑几何连通性问题;而且能够很好地产生拓扑结构复杂的分子表面。(3)本发明使用CUDA并行技术加速网格化和显示过程,使得分子表面的网格化和显不效率大大提尚。
具体实施例方式本发明的优选实施例结合附图详述如下
实施例一
參见图12,本基于细分方法的分子表面网格生成方法,其操作步骤如下
①对组成分子的所有原子进行预处理,使用分子表面原子滚动算法简称MSARA算法,提取出暴露在SES分子表面的原子,即探针求probe在滚动过程中可以接触到;剔除棹被覆盖在分子内部,从外面看不到的那些内部原子;
②分别对组成SES的三类面片ー马鞍环面片、三角凹面片和凸球面,进行细分对马鞍环面片采用扇形极限细分法;对三角凹面片和凸球面片采用基于三角形边细分的球面映射法,它是ー种结合调和映射和球面均值的细分方法,专门对三角凹面片和凸球面进行细分;
③使用OpenGL工具对细分后所得到的三维数据进行显示;
④借助CUDA并行技术加速网格化和显示过程。实施例ニ
參见图12 16,本实施例与实施例一基本相同,特别之处如下
所述步骤①中所述的MSARA算法的算法流程如下
(5)建立一个链表’L_atom’存储从PDB文件中读出所有原子信息并标记为内部原子,每ー个链表节点存储原子的三维坐标和ー个指向该原子所有邻接原子的指针,接着按下面的步骤遍历链表’ L_atom’ ;
(6)atom_ii’L_atom’中的某个原子,遍历此原子的邻接原子链表‘L_neighbor’ ;
(7)从‘L_neighbor’ 中取出两个原子 atom_j, atom_k ,当 atom_j 与 atom_k 也相邻
时根据Connolly公式=b +,其中byk为基准点的空间坐标;h,为探针球到基准平面的距离;ttiPc为基准平面的単位法向量。计算探针球的中心坐标P,若atom_
j与atom_k不相邻则继续在’ L_neighbor’中取下两个原子进行同样的计算;
(8)各自计算探针球中心P到原子atom_j, atom_k所有的邻接原子中心的距离dl,d2, ".,dn…如果dl, d2, ···,dn…都大于它们的半径之和,则标记atom_i原子为表面原子,否则继续遍历aotm_i的 邻接原子链表’ L_neighbor’ .。所述步骤②对马鞍环面片采用扇形极限细分法和对三角凹面片和凸球面片采用基于三角形边细分的球面映射法来完成的其实现步骤如下
(1)首先,使用扇形极限细分法对马鞍环面片细分图中圆弧进行细分,所谓扇形极限细分即对扇形圆弧进行等弧长细分,然后对半径为111,!12,!13,···,!^的圆弧同样采用扇形极限细分法进行细分;当细分一定的次数后就形成了马鞍环面网格;
(2)先选择正八面体作为初始网格,然后在初始网格基础上对每个三角形进行细分;每个三角形经边细分后将产生四个三角形,这个细分过程是ー个递归的过程;ー个三角形细分成4个三角形,接着继续细分成4*4=16个三角形,依此类推;
(3)对步骤(2)中使用三角形细分法新生成的点作一些处理,即对它们进行规范化把它们映射到球的表面上;细分一次就映射一次,摒弃中间的过程从结果来看,就好比在原来的球面上插入一系列的点;当细分的次数足够多,使得这些一系列的点足够的密,由这些点组成的小三角形面片形成的面就无限逼近原来的球面了。所述步骤③中使用OpenGL工具对细分后所得到的三维数据进行显示的实现步骤如下
(1)三角凹面片和凸球面片的显示是将细分后得到的三角形网格数据在OpenGL环境下进行三角形面片的渲染完成分子表面中三角凹面和凸球面的显示;
(2)同理,马鞍面片的显示是将细分后得到的四边形网格数据在OpenGL环境下进行四边形面片的渲染完成分子表面中马鞍面的显示;OpenGL定义的面包括点、线和面三部分,每两个三角形単元都是通过它们共有的一条边来连接,每条边都是通过两个端点的节点坐标来绘制,即单元和节点的拓扑关系;将所有的三角形単元面片绘制出来就完成了三角凹面和凸球面的绘制;同一类面片的三角形単元数目越多,拼接出来的表面就越逼近于真实;三角形单元的三个顶点是逆时针顺序的,绘制函数如下
glBegin(GLTRIANGLES);
glVertex3d(xl, yl, zl) ;//三角形的第一个顶点
glVertex3d(x2, y2, z2) ;//三角形的第二个顶点
glVertex3d(x3, y3, z3) ;//三角形的第三个顶点
glEndO ;
同理对于马鞍环面,则是由有限四边形单元网格组成,每两个四边形单元都是通过它们共有的一条边来连接,每条边都是通过两个端点的节点坐标来绘制,将所有的四边形单元绘制出来就完成了马鞍环面的绘制。所述步骤④中借助CUDA并行技术加速网格化和显示过程。其实现步骤如下
(I)利用CPU擅长的复杂逻辑运算能力和GPU超强的并行计算能力,将分子表面模型快速构造方法中串行处理部分和并行计算部分提取出来;
(2)让CPU在主机端完成串行处理部分的工作读入分子模型数据,计算原子邻接关系,提取分子表面原子,提取三类网格面片,将三类网格数据从主机端拷贝到设备端;让GTO在设备端完成三类面片细分的并行计算任务,最大限度地利用计算机的处理能力。实施 例三
本基于细分方法的分子表面网格生成方法的操作步骤如下(对应的主程序框图如图12所示)
①对组成分子的所有原子进行预处理,使用分子表面原子滚动算法(简称MSARA算法)提取出暴露在SES分子表面(即探针求probe在滚动过程中可以接触到)的原子。剔除掉被覆盖在分子内部,从外面看不到的那些内部原子。②分别对组成SES的三类面片(马鞍环面片、三角凹面片和凸球面)进行细分对马鞍环面片采用扇形极限细分法;对三角凹面片和凸球面片采用基于三角形边细分的球面映射法。③使用OpenGL工具对细分后所得到的三维数据进行显示。④借助CUDA并行技术加速网格化和显示过程。一、分子表面原子提取算法
本发明采用分子表面原子滚动算法(简称MSARA算法)提取分子表面原子。其算法过程如下,对应的程序框图如图13所示。(9)建立一个链表’L_atom’存储从PDB文件中读出所有原子信息并标记为内部原子。每ー个链表节点存储原子的三维坐标和ー个指向该原子所有邻接原子的指针。接着按下面的步骤遍历链表’ L_atom’ .
(10)例如,atom_i是’L_atom’中的某个原子,遍历此原子的邻接原子链表‘L_neighbor ;
(11)从‘L_neighbor’ 中取出两个原子 atom_j, atom_k ,当 atom_j 与 atom_k 也相邻时根据Connolly在其发表的文献中给出的公式计算探针球的中心坐标P,若atom_j与atom_k不相邻则继续在’ L_neighbor’中取下两个原子进行同样的计算。(12) 各自计算探针球中心P到原子atom_j, atom_k所有的邻接原子中心的距离dl, d2, ".,dn…如果dl, d2, ···,dn…都大于它们的半径之和,则标记atom_i原子为表面原子,否则继续遍历aotm_i的邻接原子链表’ L_neighbor’ .
ニ、马鞍环面片细分过程
在阐述马鞍环面片的细分过程之前,首先我们看看有关细分的极限理论。如图4已知正六边形ABCDEF,作它的内切圆,设OA = a, Z AOF = β
则ZAOB = ZAOF =0。P 是 AB 的中点,故 Z AOP = Q /2,则 OP = a· cos 三。设 OA
与内切圆的交点为A;,则Of= OP = a* cos 。于是可根据A的坐标求得A;的坐标。同理可求得ぎ,C1 , Ot , E' , F''的坐标,顺次连接这些点,就形成了ー个正12边形。并继续作它的内切圆,同理可求得这个内切圆的半径为
权利要求
1.一种基于细分方法的分子表面网格生成方法,其操作步骤如下 ①对组成分子的所有原子进行预处理,使用分子表面原子滚动算法简称MSARA算法,提取出暴露在SES分子表面的原子,即探针求probe在滚动过程中可以接触到;剔除掉被覆盖在分子内部,从外面看不到的那些内部原子; ②分别对组成SES的三类面片一马鞍环面片、三角凹面片和凸球面,进行细分对马鞍环面片采用扇形极限细分法;对三角凹面片和凸球面片采用基于三角形边细分的球面映射法,它是一种结合调和映射和球面均值的细分方法,专门对三角凹面片和凸球面进行细分; ③使用OpenGL工具对细分后所得到的三维数据进行显示; ④借助CUDA并行技术加速网格化和显示过程。
2.按照权利要求I所述的基于细分方法的分子表面网格生成方法,其特征在于所述步骤①中所述的MSARA算法的算法流程如下 (1)建立一个链表’L_atom’存储从PDB文件中读出所有原子信息并标记为内部原子,每一个链表节点存储原子的三维坐标和一个指向该原子所有邻接原子的指针,接着按下面的步骤遍历链表’ L_atom’ ; (2)atom_i是’L_atom’中的某个原子,遍历此原子的邻接原子链表‘L_neighbor’; (3)从‘L_neighbor’ 中取出两个原子 atom_j, atom_k ,当 atom_j 与 atom_k 也相邻时根据Connolly公式n = +I1 .u ,其中为基准点的空间坐标;h,为探 Fijk — wIjk 丄 llIjk tiIjk针球到基准平面的距离为基准平面的单位法向量; 计算探针球的中心坐标P,若atom_j与atom_k不相邻则继续在’L_neighbor’中取下两个原子进行同样的计算; (4)各自计算探针球中心P到原子atom_j,atom_k所有的邻接原子中心的距离dl,d2, ".,dn…如果dl, d2,…,dn…都大于它们的半径之和,则标记atom_i原子为表面原子,否则继续遍历aotm_i的邻接原子链表’ L_neighbor’ .。
3.按照权利要求I所述的基于细分方法的分子表面网格生成方法,其特征在于所述步骤②对马鞍环面片采用扇形极限细分法和对三角凹面片和凸球面片采用基于三角形边细分的球面映射法来完成的其实现步骤如下 (1)首先,使用扇形极限细分法对马鞍环面片细分图中圆弧进行细分,所谓扇形极限细分即对扇形圆弧进行等弧长细分,然后对半径为111,!12,!13,···,!^的圆弧同样采用扇形极限细分法进行细分;当细分一定的次数后就形成了马鞍环面网格; (2)先选择正八面体作为初始网格,然后在初始网格基础上对每个三角形进行细分;每个三角形经边细分后将产生四个三角形,这个细分过程是一个递归的过程;一个三角形细分成4个三角形,接着继续细分成4*4=16个三角形,依此类推; (3)对步骤(2)中使用三角形细分法新生成的点作一些处理,即对它们进行规范化把它们映射到球的表面上;细分一次就映射一次,摒弃中间的过程从结果来看,就好比在原来的球面上插入一系列的点;当细分的次数足够多,使得这些一系列的点足够的密,由这些点组成的小三角形面片形成的面就无限逼近原来的球面了。
4.按照权利要求I所述的基于细分方法的分子表面网格生成方法,其特征在于所述步骤③中使用OpenGL工具对细分后所得到的三维数据进行显示的实现步骤如下 (1)三角凹面片和凸球面片的显示是将细分后得到的三角形网格数据在OpenGL环境下进行三角形面片的渲染完成分子表面中三角凹面和凸球面的显示; (2)同理,马鞍面片的显示是将细分后得到的四边形网格数据在OpenGL环境下进行四边形面片的渲染完成分子表面中马鞍面的显示;0penGL定义的面包括点、线和面三部分,每两个三角形单元都是通过它们共有的一条边来连接,每条边都是通过两个端点的节点坐标来绘制,即单元和节点的拓扑关系;将所有的三角形单元面片绘制出来就完成了三角凹面和凸球面的绘制;同一类面片的三角形单元数目越多,拼接出来的表面就越逼近于真实;三角形单元的三个顶点是逆时针顺序的,绘制函数如下glBegin(GLTRIANGLES); glVertex3d(xl, yl, zl) ;//三角形的第一个顶点 glVertex3d(x2, y2, z2) ;//三角形的第二个顶点 glVertex3d(x3, y3, z3) ;//三角形的第三个顶点glEndO ; 同理对于马鞍环面,则是由有限四边形单元网格组成,每两个四边形单元都是通过它们共有的一条边来连接,每条边都是通过两个端点的节点坐标来绘制,将所有的四边形单元绘制出来就完成了马鞍环面的绘制。
5.按照权利要求I所述的基于细分方法的分子表面网格生成方法,其特征在于所述步骤④中借助CUDA并行技术加速网格化和显示过程; 其实现步骤如下 (1)利用CPU擅长的复杂逻辑运算能力和GPU超强的并行计算能力,将分子表面模型快速构造方法中串行处理部分和并行计算部分提取出来; (2)让CPU在主机端完成串行处理部分的工作读入分子模型数据,计算原子邻接关系,提取分子表面原子,提取三类网格面片,将三类网格数据从主机端拷贝到设备端;让GTO在设备端完成三类面片细分的并行计算任务,最大限度地利用计算机的处理能力。
全文摘要
本发明公开了一种基于细分方法的分子表面网格生成方法。针对SES分子表面的三种面片提出了具体的网格细分生成算法。对马鞍环面片采用扇形极限细分法;对三角凹面片和凸球面片采用基于三角形边细分的球面映射法。并使用OpenGL工具在vs2010开发环境下实现了这一算法,并借助CUDA并行技术加速网格化和显示过程。实验结果表明,该方法在分子表面构造中达到了很好的效果,且效率更高。
文档编号G06T17/30GK102663822SQ20121005724
公开日2012年9月12日 申请日期2012年3月7日 优先权日2012年3月7日
发明者卢诗义, 吴三子, 张景峤, 戴基亭, 罗文 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1