三维模型自适应变形方法与流程

文档序号:13912802阅读:1710来源:国知局

本发明涉及三维模型的变形方法,具体涉及通过优化三维模型引擎来实现三维模型的自适应变形方法。



背景技术:

opengl是三维模型构建领域中最为广泛接纳的2d/3d图形api(应用程序编程接口,其定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口,可用于三维模型或二维模型,是一个功能强大,调用方便的底层图形库,其自诞生至今已催生了各种计算机平台及设备上的数千优秀应用程序。opengles(openglforembeddedsystems)是opengl三维图形api的子集,针对手机、pda和游戏主机等嵌入式设备而设计。

webgl(全写webgraphicslibrary)是一种3d绘图协议,这种绘图技术标准允许把javascript和opengles2.0结合在一起,通过增加opengles2.0的一个javascript绑定,webgl可以为html5canvas提供硬件3d加速渲染,这样web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3d场景和模型了,还能创建复杂的导航和数据视觉化。webgl技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3d结构的网站页面,甚至可以用来设计3d网页游戏等等。

direct3d是基于微软的通用对象模式com(commonobjectmode)的3d图形api。它是由微软direct3d界面(microsoft)一手树立的3dapi规范,微软公司拥有该库版权,它所有的语法定义包含在微软提供的程序开发组件的帮助文件、源代码中。direct3d是微软公司directxsdk集成开发包中的重要部分,适合多媒体、娱乐、即时3d动画等广泛和实用的3d图形计算。自1996年发布以来,direct3d以其良好的硬件兼容性和友好的编程方式很快得到了广泛的认可,现在几乎所有的具有3d图形加速的主流显示卡都对direct3d提供良好的支持。但它也有缺陷,由于是以com接口形式提供的,所以较为复杂,稳定性差,另外,目前只在windows平台上可用。

当前的大部分三维图形引擎基于上述3d图形api,三维图形引擎需要解决场景构造、对象处理、场景渲染、事件处理、碰撞检测等问题。场景渲染是场景中最重要的子模块之一,负责实现基本图元的绘制,光线处理和纹理处理等。实际上是三维真实感图形的再现过程。纹理图像提供了模型的真实感,可以有效的用来掩盖模型的多边形细节。

但是,现有三维图形引擎中,将三维模型进行变形时,需要设置的参数较多,并且计算机运行效率较低,计算机内存占过多。



技术实现要素:

本发明的技术方案,可以仅根据参考环形的简单参数,高效地实现将任意的三维模型变形为环形的三维图形。

本发明公开了一种三维模型的自适应变形方法,其特征在于,包括:

步骤1,计算所述三维模型的包围盒及中心点坐标;

步骤2,确定参考环形的参数;

步骤3,根据所述三维模型中的顶点坐标以及所述参考环形参数计算所述顶点的旋转角度;

步骤4,设定基准参考点坐标,并根据所述旋转角度计算旋转参考点坐标;

步骤5,根据所述旋转参考点坐标以及所述顶点坐标计算变形后的顶点坐标。

在本发明的方法中,所述参考环形的参数包括所述参考环形的中心点坐标,以及所述参考环形的周长。

在本发明的方法中,所述设定基准参考点坐标,并根据所述旋转角度计算旋转参考点坐标包括使用四元数旋转算法计算所述旋转参考点坐标。

在本发明的方法中,重复执行步骤3-步骤5,确定所述三维模型中所有顶点变形后的坐标。

在本发明的方法中,所述参考环形的周长大于等于所述三维模型的长度。

在本发明的方法中,所述根据所述三维模型中的顶点坐标以及所述参考环形参数计算所述顶点的旋转角度通过以下公式进行计算:

其中,θ1为所述顶点变形后所旋转的角度,x1为所述顶点的x轴坐标,x0为所述参考环形中心点的x轴坐标,c为所述参考环形的周长。

在本发明的方法中,进一步包括计算所述变形后的顶点距离所述参考环形中心点的距离。

在本发明的方法中,所述计算所述变形后的顶点距所述参考环形中心点的距离,通过以下公式进行计算:

r1’=rp-(zp-z1)

其中,r1’为所述变形后的顶点距所述参考环形中心点的距离,rp为所述包围盒中心点距所述参考环形中心点的距离,zp为所述包围盒中心点的z轴坐标,z1为所述顶点的z轴坐标。

在本发明的方法中,根据所述旋转参考点坐标以及所述顶点坐标计算变形后的顶点坐标,通过以下公式进行计算:

x1’=x0+xq’,y1’=y1,z1’=z0+zq’

其中,x1’为所述变形后的顶点的x轴坐标,x0为所述参考环形的中心点的x轴坐标,xq’为所述旋转参考点的x轴坐标,y1’所述变形后的顶点的y轴坐标,y1所述顶点的y轴坐标,z1’所述变形后的顶点的z轴坐标,z0为所述参考环形的中心点的z轴坐标,zq’为所述旋转参考点的z轴坐标。

附图说明

并入本说明书并形成本说明书的一部分的附图示出了本发明的实施例,并且连同在上面给出的说明和在下面给出的对优选实施例的详细说明一起用于解释本发明的原理。

图1示出了本发明示例性实施例中的三维模型变形前的透视图;

图2示出了本发明示例性实施例中的三维模型变形前,延y轴负方向的俯视图;

图3示出了本发明示例性实施例中的三维模型变形后的透视图;

图4示出了本发明示例性实施例中的三维模型变形后,延y轴负方向的俯视图;

图5示出了本发明示例性实施例中的自适应变形方法步骤流程示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解的是,本发明的保护范围并不受具体实施方式的限制。

本发明中所针对的三维模型,由多个三角形构成,每个三角形包括三个顶点以及由所述三个顶点构成的面。所述三维模型的数据结构,通过顶点数组和面数组进行表示,所述面数组中包括每个面多对应的三个顶点的序号。

本发明的技术方案实现了将指定三维模型自适应的变形为环形或者弧形的三维模型。

参见图1-图4,在本发明的示例性实施例中,将显示文字为“star”的三维模型,根据参考环形的形状,变形为环形的三维模型,以下将结合附图对本发明的具体技术方案进行说明。本领域技术人员可以容易理解的是,本发明实施例中为了说明性的目的,使用了附图1-4中的三维模型和参考环形,但是本发明的技术方案,可以对任意形状的三维模型进行自适应变形,从而形成环形或者弧形的三维模型。

图5示出了本发明方法步骤的示意性流程图,下面结合所述流程,对三维图形自适应变形方法进行具体说明。

首先,参见图1-2,计算待变形三维模型的包围盒(附图中未示出),所述包围盒为包含三维模型且边平行于模型坐标轴的最小六面体,在三维坐标系中,用minx、maxx、miny、maxy、minz、maxz表示三维模型包围盒,所述包围盒的长、宽、高分别为l,w,h,其中,l=maxx-minx,w=maxz-minz、h=maxy–miny,并确定出所述包围盒的中心点p(xp,yp,zp),其中,xp,yp,zp表示了所述包围盒的中心点p在三维坐标系中x轴,y轴,z轴的坐标。

接下来,确定要对上述三维模型进行变形的参考环形的中心点o(xo,yo,zo),所述环形的周长为c,半径为r,所述包围盒的中心点p与所述参考环形的中心点o的距离为rp。在本实施例中,xo=xp,yo=yp,rp=zp-zo,并且,c≥l。当c=l时,所述三维模型变形后所形成环形的长度与参考环形的周长相等,当c>l时,所述三维模型变形后所形成的形状是环形的一部分,即弧形,其长度小于参考环形的周长。

接下来,选取待变形三维模型中的一个顶点为例来说明在变形后,该顶点的位置如何确定。进行推而广之,确定所述待变形三维模型中的每一个顶点在变形之后的具体位置,以实现根据参考环形,对所述待变形三维模型进行变形。

在本实施例中,设定所述待变形三维模型中的一个顶点为顶点1,其在三维坐标系中的坐标分别为x1,y1,z1,顶点1距圆心o的距离为r1。

使用以下公式计算顶点1根据所述参考环形进行变形时,所旋转的角度θ1,

设定顶点1以参考环形为基准进行变形后的位置为顶点1’,其在三维坐标系中的坐标分别为x1’,y1’,z1’,顶点1’距离圆心o的距离为r1’,其中,所述r1’根据以下公式进行计算:

r1’=rp-(zp-z1)

接下来,设定基准参考点q,其在三维坐标系中的坐标分别为xq,yq,zq,其中,xq=0,yq=y1,zq=r1’。

根据基准参考点q(xq,yq,zq),以及上述步骤中所计算出的旋转角度θ1,通过本领域中所常用的四元数旋转算法计算旋转参考点q’(xq’,yq’,zq’)。

确定所述旋转参考点q’的坐标值xq’,yq’,zq’之后,根据以下公式确定顶点1基于参考环形变形后的顶点1’的坐标:

x1’=x0+xq’,y1’=y1,z1’=z0+zq’

通过以上步骤,确定了顶点1根据参考环形变化后的顶点1’的坐标,对于待变形三维模型的顶点数组中的其余顶点,重复以上对于顶点1的计算步骤,即可确定根据参考环形变形后的三维模型的所有顶点的位置,从而实现将待变形三维模型根据参考圆形进行变形后的三维模型。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

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