CN109472744A - 三维模型缩小方法 - Google Patents
三维模型缩小方法 Download PDFInfo
- Publication number
- CN109472744A CN109472744A CN201811266824.8A CN201811266824A CN109472744A CN 109472744 A CN109472744 A CN 109472744A CN 201811266824 A CN201811266824 A CN 201811266824A CN 109472744 A CN109472744 A CN 109472744A
- Authority
- CN
- China
- Prior art keywords
- vertex
- threedimensional model
- deleted
- edge fold
- adjacent
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000012217 deletion Methods 0.000 claims description 7
- 230000037430 deletion Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004898 kneading Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000926 separation method 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
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/403—Edge-driven scaling; Edge-based scaling
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种三维模型缩小方法,包括:步骤1,分别计算所述三维模型中的各个顶点与其相邻各顶点之间的多个边缘折叠加权值;步骤2,根据上述计算所得的多个边缘折叠加权值确定所述三维模型中待删除的顶点;步骤3,删除所述待删除顶点。本发明的技术方案,能够在尽量保证模型形状不变的情况下,缩减模型面数和顶点数,达到明显降低模型文件大小的目的,以提高三维模型的网络传输速度,以及在终端的加载速度,降低在终端的硬件内存占用。
Description
技术领域
本发明关于三维模型的变形领域,具体关于一种通过优化三维模型引擎来实现三维模型的缩小的方法。
背景技术
使用三维模型建模软件(Maya,3Dmax等)制作出来的三维模型文件比较大,面数和顶点数比较多,而在网络浏览器、手机、广告机等设备中展示三维模型时往往并不需要如此高的精度。较高的模型面数和顶点数造成了在网络中传输三维模型文件缓慢,以及终端加载缓慢,硬件内存占用高等问题。然而现有的三维模型引擎中并未提供模型面数缩减算法。
发明内容
本发明目的在于能够在尽量保证模型形状不变的情况下,缩减模型面数和顶点数,达到明显降低模型文件大小的目的
本发明公开了一种三维模型缩小方法,包括:步骤1,分别计算所述三维模型中的各个顶点与其相邻各顶点之间的多个边缘折叠加权值;步骤2,根据上述计算所得的多个边缘折叠加权值确定所述三维模型中待删除的顶点;步骤3,删除所述待删除顶点。
所述三维模型缩小方法中的步骤2进一步包括:步骤2a,计算上述各个顶点与其各相邻顶点之间的多个边缘折叠加权值中的最小值,其中,每个顶点都具有一个与其各相邻顶点之间的多个边缘折叠加权值中的最小值,所述边缘折叠加权值中的最小值所对应的相邻顶点为所述各个顶点的删除取代顶点;步骤2b,确定上述对应于每个顶点的边缘折叠加权值中的最小值中的最小值;步骤2c,确定上述边缘折叠加权值中的最小值中的最小值所对应的顶点为待删除顶点。
所述三维模型缩小方法中的步骤3之后还包括:步骤4,使用所述待删除顶点的删除取代顶点代替所述被删除的待删除顶点。
所述三维模型缩小方法中的步骤1进一步包括:根据所述各个顶点与其各相邻顶点所确定的各个面的面法线之间的点积,计算所述三维模型中的各个顶点与其相邻各顶点之间的多个边缘折叠加权值。
所述三维模型缩小方法中进一步包括,按照实际需求,重复执行步骤1-3,直到删除的顶点达到预设需求。
根据本发明的三维模型缩小方法,能够提高三维模型的网络传输速度,以及在终端的加载速度,降低在终端的硬件内存占用。
附图说明
并入本说明书并形成本说明书的一部分的附图示出了本发明的实施例,并且连同在上面给出的说明和在下面给出的对优选实施例的详细说明一起用于解释本发明的原理。
图1示出了本发明实施例中的标明了顶点的三维模型示意图;
图2示出了本发明实施例中的标明了顶点和面的三维模型示意图;
图3示出了本发明实施例中的标明了顶点、面和面法线三维模型示意图;
图4示出了本发明实施例中方法步骤的示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解的是,本发明的保护范围并不受具体实施方式的限制。
本发明所针对的三维模型,由多个三角形构成,每个三角形包括三个顶点(Vertex)以及由所述三个顶点构成的面(Face)。三维模型的数据结构,由顶点数组和面数组进行表示,所述面数组中包括每个面多对应的三个顶点的序号。
以下将结合附图1-4,对本发明进行说明,本领域技术人员可以容易理解的是,对任何其他形式或数量的顶点、面、以及顶点和面所构成的三维模型进行缩小时,同样也可以通过以下方法实现。
将三维模型的顶点设为P1、P2、P3……Pn,。每个顶点都有x、y、z的三维坐标,如P1.x表示P1的x坐标,P1.y表示P1的y坐标,P1.z表示P1的z坐标。
本实施例中,通过计算顶点和相邻顶点之间的“边缘折叠加权值”,从而找出所述三维模型中最不“明显突出”的顶点,然后删除该顶点和它所涉及的面,并用相邻的顶点代替被删除的顶点。当上述计算执行的次数越多,去掉的顶点也越多,模型就会越小,而且因为是从最不“明显突出”的顶点进行删减,所以能保证模型的形状发生的变化为最小。
根据上文中所记载的三维模型格式的原理,任意一个顶点都会有一个或多个相邻的顶点,任意一个顶点也会隶属于一个面或多个面。
下面将以顶点P1为例,详细说明模型缩小的具体过程。
首先,结合图1所示,本实施例中,P1的相邻顶点有a个,分别记为N1_1,N1_2……N1_a,图1中仅示意性地画出了4个相邻顶点N1_1,N1_2,N1_3,N1_4。
接着,计算顶点P1和相邻顶点N1_1指尖的边缘折叠加权值C1_1,计算所得的C1_1越高,表明顶点P1越“明显突出”,如果删除该顶点,则会影响其所在三维模型的形状,所以,该顶点不应该被删除。
下面将详述计算边缘折叠加权值C1_1的具体步骤。
结合图2、3所示,顶点P1所隶属的面有b个,本实施例中,b示例性地取值为4,其中必然有同时包含顶点P1和顶点N1_1的多个面。同时包含顶点P1和顶点N1_1的面为F1_1,F1_2……F1_x,在本实施例中,x=2,即F1_2=F1_x。仅包含顶点P1,而不包含顶点N1_1的面为F1_x+1……F1_b,在本实施例中为F1_3,F1_4,其中,F1_4是被遮挡住的面。本领域技术人员可以显而易见的得出,当b取其他值时,上述方法也一样能够成立。
接下来,依次计算F1_1的面法线(即垂直于该面的直线向量)与其它面的法线之间的点积(见后面的解释),即F1_1与F1_2,F1_1与F1_3……F1_1与F1_b的两个面的法线之间的点积,从中找出最接近1的一个值。最接近1,则表示两条法线最相近,也说明这两个面之间最平滑。假设面F1_1与其中某一个面F1_m的法线之间的点积的值为D1_1,是F1_1与其他面的法线之间的点积值中最接近1的。
然后对F1_2执行上述第3步的计算,即分别计算F1_2与F1_1,F1_2与F1_3,F1_2与F1_b的法线之间的点积,然后从中找出最接近1的一个值,设为D1_2。
接下来,继续对F1_3……F1_x(如果x大于2)进行如上操作,分别计算出D1_3……D1_x。
接着,在上面步骤所计算出的D1_1、D1_2、……D1_x这组数值中,找出最大值,设为D1_s。
接着,顶点P1和顶点N1_1的边缘折叠加权值C1_1=(P1和N1_1之间的距离)*(1-D1_s)。
接着,依次对P1与N1_2…….N1_a进行第2—6步的计算,算出C1_2…….C1_a。
接着,从C1_1、C1_2……C1_a中找出最小值,假设为C1_t,则这是对于P1来说的最小的边缘折叠加权值,即设minC1=C1_t,此时,顶点N1_t就是与顶点P1相邻并且边缘折叠加权值最小的顶点,即minN1=N1_t。
此时,如果顶点P1要被删除,则P1删除后的位置要由顶点N1_t来取代,也就是说,顶点P1的相邻顶点N1_t为顶点P1的删除取代顶点,。
接下来,对顶点P2……Pn重复进行进行第1—8步计算,计算得到minC2…..minCn和minN2……minNn。
在minC1、minC2……minCn当中找出最小值,设为minCu,此时,其所对应的顶点Pu,就是被最先被删减掉的顶点。
将顶点Pu删除后,使用顶点Nu_t取代顶点Pu原来的位置,并将顶点Nu_t与Pu原来所相关的面关联起来。
通过以上步骤,能够删除三维模型中最不“明显突出”的顶点,通过重复执行以上步骤,能够删除三维模型中更多的不“明显突出”的顶点。
通过本发明的上述技术方案,三维模型可以在几乎不影响屏幕展示效果的情况缩小到原来文件大小的百分之一到二分之一之间,视模型形状和原来的顶点密度而有不同的效果。
本发明的三维模型缩小方法,可预先批量对三维模型进行处理后放置到三维模型处理的运行环境中,也可以内置到网站或App后台代码中实时运行。当实时运行时,可以预先设定删除参数,例如,0.1代表删减掉10%的顶点。用户在浏览器或App观看三维模型时,如果三维模型在屏幕上显示的较小,此时前端并不需要该三维模型的所有顶点,前端程序根据模型在屏幕中的大小,通知后台程序模型设定删除参数。在屏幕中越小,参数越大,最大为0.99,也就是删除99%的顶点。在后台将三维模型传输给前端之前,使用预设的删除参数对三维模型进行顶点删除,然后把大小缩减后的新文件传输给前端。这样就加快了传输速度和加载速度,并且降低了前端的内存占用。
本领域技术人员可以理解的是,虽然在说明书中以上述具体的实施例进行说明,但对于其他各种形式和数量的的顶点、面,以及顶点和面所构成的三维模型,均可以使用以上的方法进行三维模型缩小。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (5)
1.一种三维模型缩小方法,其特征在于,包括:
步骤1,分别计算所述三维模型中的各个顶点与其相邻各顶点之间的多个边缘折叠加权值;
步骤2,根据上述计算所得的多个边缘折叠加权值确定所述三维模型中待删除的顶点;
步骤3,删除所述待删除顶点。
2.如权利要求1所述的三维模型缩小方法,其特征在于,所述步骤2进一步包括:
步骤2a,计算上述各个顶点与其各相邻顶点之间的多个边缘折叠加权值中的最小值,其中,每个顶点都具有一个与其各相邻顶点之间的多个边缘折叠加权值中的最小值,所述边缘折叠加权值中的最小值所对应的相邻顶点为所述各个顶点的删除取代顶点;
步骤2b,确定上述对应于每个顶点的边缘折叠加权值中的最小值中的最小值;
步骤2c,确定上述边缘折叠加权值中的最小值中的最小值所对应的顶点为待删除顶点。
3.如权利要求1所述的三维模型缩小方法,其特征在于,在所述步骤3之后还包括:
步骤4,使用所述待删除顶点的删除取代顶点代替所述被删除的待删除顶点。
4.如权利要求1所述的三维模型缩小方法,其特征在于,所述步骤1进一步包括:
根据所述各个顶点与其各相邻顶点所确定的各个面的面法线之间的点积,计算所述三维模型中的各个顶点与其相邻各顶点之间的多个边缘折叠加权值。
5.如权利要求1所述的三维模型缩小方法,其特征在于,进一步包括,按照实际需求,重复执行步骤1-3,直到删除的顶点达到预设需求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811266824.8A CN109472744B (zh) | 2018-10-29 | 2018-10-29 | 三维模型缩小方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811266824.8A CN109472744B (zh) | 2018-10-29 | 2018-10-29 | 三维模型缩小方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109472744A true CN109472744A (zh) | 2019-03-15 |
CN109472744B CN109472744B (zh) | 2023-02-17 |
Family
ID=65666028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811266824.8A Active CN109472744B (zh) | 2018-10-29 | 2018-10-29 | 三维模型缩小方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109472744B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110570518A (zh) * | 2019-09-02 | 2019-12-13 | 紫光云技术有限公司 | 一种基于模型数据高度压缩的海量模型加载方法 |
CN112652070A (zh) * | 2020-12-21 | 2021-04-13 | 深圳市彬讯科技有限公司 | 三维模型的减面方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441772A (zh) * | 2008-12-01 | 2009-05-27 | 牡丹江新闻传媒集团有限公司 | 一种三维辅助的二维图形绘制方法 |
CN101984467A (zh) * | 2010-11-10 | 2011-03-09 | 中国科学院自动化研究所 | 一种带特征线风格化的三维网格模型的非真实感渲染方法 |
CN103295266A (zh) * | 2013-05-31 | 2013-09-11 | 东莞中山大学研究院 | 一种基于距离加权最小折叠代价的三维模型边折叠简化的方法 |
CN103295267A (zh) * | 2013-05-31 | 2013-09-11 | 东莞中山大学研究院 | 一种基于最小折叠代价的三维模型边折叠简化的方法 |
CN107895401A (zh) * | 2017-11-23 | 2018-04-10 | 塔普翊海(上海)智能科技有限公司 | 三维模型的数据简化系统及其简化方法和应用 |
-
2018
- 2018-10-29 CN CN201811266824.8A patent/CN109472744B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441772A (zh) * | 2008-12-01 | 2009-05-27 | 牡丹江新闻传媒集团有限公司 | 一种三维辅助的二维图形绘制方法 |
CN101984467A (zh) * | 2010-11-10 | 2011-03-09 | 中国科学院自动化研究所 | 一种带特征线风格化的三维网格模型的非真实感渲染方法 |
CN103295266A (zh) * | 2013-05-31 | 2013-09-11 | 东莞中山大学研究院 | 一种基于距离加权最小折叠代价的三维模型边折叠简化的方法 |
CN103295267A (zh) * | 2013-05-31 | 2013-09-11 | 东莞中山大学研究院 | 一种基于最小折叠代价的三维模型边折叠简化的方法 |
CN107895401A (zh) * | 2017-11-23 | 2018-04-10 | 塔普翊海(上海)智能科技有限公司 | 三维模型的数据简化系统及其简化方法和应用 |
Non-Patent Citations (2)
Title |
---|
张永志等: "适于渐进传输的三维模型LOD简化方法", 《四川兵工学报》 * |
李胜辉等: "一种顾及多重约束的三维地形简化方法", 《武汉大学学报(信息科学版)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110570518A (zh) * | 2019-09-02 | 2019-12-13 | 紫光云技术有限公司 | 一种基于模型数据高度压缩的海量模型加载方法 |
CN112652070A (zh) * | 2020-12-21 | 2021-04-13 | 深圳市彬讯科技有限公司 | 三维模型的减面方法、装置、设备及介质 |
CN112652070B (zh) * | 2020-12-21 | 2023-01-13 | 深圳市彬讯科技有限公司 | 三维模型的减面方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109472744B (zh) | 2023-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6661420B2 (en) | Three-dimensional skeleton data compression apparatus | |
CA2995722A1 (en) | Physically based simulation methods for modeling and animating two- and three-dimensional deformable objects | |
CN104077446B (zh) | 从数字化三维模型中提取二维电气施工图的方法及系统 | |
JP2008165804A (ja) | 流れのシミュレーション計算方法およびシステム | |
Twigg et al. | Optimization for sag-free simulations | |
CN101303774B (zh) | 基于三维实体模型的四边形有限元网格生成方法 | |
JP4936522B2 (ja) | 画像処理方法、画像処理装置 | |
CN109472744A (zh) | 三维模型缩小方法 | |
CN112560125B (zh) | 晶格结构模型的生成方法、生成系统、及前处理系统 | |
CN114255160B (zh) | 数据处理方法、装置、设备及存储介质 | |
US20160107388A1 (en) | Conversion of stereolithographic model into logical subcomponents | |
O'Brien et al. | Automatic simplification of particle system dynamics | |
CN113442440A (zh) | 一种基于切片处理的3d打印方法 | |
CN109360266A (zh) | 一种道路建模方法、相关装置和设备 | |
US8855976B2 (en) | Numerically simulating structural behaviors of a product using explicit finite element analysis with a mass scaling enhanced subcycling technique | |
CN106803280A (zh) | 一种基于变分框架特征感知的细分曲面重建方法 | |
CN109785449A (zh) | 基于ffd的人物脸部编辑及贴花方法 | |
CN104537704B (zh) | 一种鸟类躯干模型的羽毛实时动态生成方法 | |
JP2005078416A (ja) | 解析モデル生成方法および装置ならびにプログラムおよびその記憶媒体 | |
Aldrich et al. | Collision-Driven Volumetric Deformation on the GPU. | |
CN117953181B (zh) | 一种面向web3d的顶点分层与增量式lod方法及系统 | |
Ströter et al. | TEdit: A Distributed Tetrahedral Mesh Editor with Immediate Simulation Feedback. | |
Choi et al. | Image morphing using mass-spring system | |
JP2013088988A (ja) | メッシュ作成装置、メッシュ作成方法、メッシュ作成プログラム | |
JP7036207B2 (ja) | メッシュ生成システム、メッシュ生成プログラムおよびメッシュ生成方法 |
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 |