CN114004939B - 一种基于建模软件脚本的三维模型优化方法及系统 - Google Patents
一种基于建模软件脚本的三维模型优化方法及系统 Download PDFInfo
- Publication number
- CN114004939B CN114004939B CN202111646766.3A CN202111646766A CN114004939B CN 114004939 B CN114004939 B CN 114004939B CN 202111646766 A CN202111646766 A CN 202111646766A CN 114004939 B CN114004939 B CN 114004939B
- Authority
- CN
- China
- Prior art keywords
- region
- sub
- dimensional model
- model
- regions
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
Abstract
本发明公开了一种基于建模软件脚本的三维模型优化方法及系统,通过获取三维模型文件;从三维模型文件中读取三维模型,将三维模型进行大小缩放,并放置到预设的三维场景中得到第一模型;对第一模型中三维模型与三维场景结合边缘位置进行修正得到第二模型;对第二模型进行光影渲染得到最终的三维模型,使多个模型或者模型与场景之间衔接处自然过渡,减少了系统内存资源和显示存储资源的消耗,修正后去除了毛刺以及不美观的凸起和凹陷引起的模型拼接导致过渡不连贯的问题,提高了模型加载的速度,极大地提高了用户体验度,本发明属于三维建模领域。
Description
技术领域
本发明属于计算机视觉技术、三维建模技术、计算机图像处理领域,具体涉及一种基于建模软件脚本的三维模型优化方法及系统。
背景技术
在Rhino、grasshoper等的3D软件的三维建模中,时常会出现很多重复化的繁琐操作和无法调整设计的建模模型达到协调的效果,并且在现有的这些3D建模软件中,由于其软件本身的局限性,无法将很多具象和效果体现出来,具有很多设计界限,无法塑造出更多元、更有机的形态。为打破现有3D模型软件的局限性,因此需要依赖于通过设计建模软件的脚本从而对设计的三维模型进行调优和批处理解决上述问题,现有的3D软件的功能过于模板化,很多个性化的模型的模块连接处过于生硬,衔接处无法自然过渡,有大量的毛刺、缝隙和贴图的毛边,由于个性化的模型过渡的不连贯,使得整体的模型无法体现出好的效果、并且这些毛刺、缝隙和贴图的毛边还需要消耗大量的系统内存资源和显示存储资源,使得三维模型显示起来加载的速度变慢。
发明内容
本发明的目的在于提出一种基于建模软件脚本的三维模型优化方法及系统,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
为了实现上述目的,根据本发明的一方面,提供一种基于建模软件脚本的三维模型优化方法,所述方法包括以下步骤:
S100,获取三维模型文件;
S200,从三维模型文件中读取三维模型,将三维模型进行大小缩放,并放置到预设的三维场景中得到第一模型;
S300,对第一模型中三维模型与三维场景结合边缘位置进行修正得到第二模型;
S400,对第二模型进行光影渲染得到最终的三维模型。
进一步地,将所述方法的步骤S100到S400封装到建模软件的脚本程序中,从而将该脚本程序运行在计算机中。
进一步地,在S100中,所述三维模型文件通过Rhino、grasshoper、Civil3D、InfraWorks等三维建模软件设计或者所述三维模型文件通过三维扫描仪或三坐标测量机采集工件、建筑物或者家具等获取的三维模型得到的OBJ文件、BREP文件、MAX文件、3DM文件、3DS文件、STL文件中任意一种。
进一步地,在S200中,预设的三维场景也叫三维虚拟场景,是利用三维建模软件,生成的一个基础环境模型,或者,预设的三维场景也可以为三维扫描仪或三坐标测量机采集的桥梁、机械或者建筑物获得的三维模型。
进一步地,在S300中,对第一模型中三维模型与三维场景结合边缘位置进行修正得到第二模型的方法包括:
S301,获取第一模型中三维模型与三维场景的连接位置(重叠位置)的曲线段作为结合边缘线;
S302,将三维模型与三维场景细分为多个子区域,识别出与子区域有共同边界线在结合边缘线上的中心结合区域和次级结合区域,具体方法为:
S3021,通过Catmull-Clark算法(Catmull-Clark subdivision)对三维模型进行1至4次细分后获得三维模型的多个细分的子区域,由三维模型的各个所述子区域构成集合MX;通过Catmull-Clark算法对三维场景进行1至4次细分后获得三维场景的多个细分的子区域,由三维场景的各个所述子区域构成集合CJ;Catmull-Clark算法生成的每个子区域至少包括4个顶点;
取集合MX中各个子区域的边界线与结合边缘线有重合的子区域作为第一结合区域集合S1={smxi1},smxi1是集合S1中第i1个子区域,变量i1∈[1,H1],H1是集合S1中子区域的数量;取集合CJ中各个子区域的边界线与结合边缘线有重合的子区域作为第二结合区域集合S2={scji2},scji2是集合S2中第i2个子区域,变量i2∈[1,H2],H2是集合S2中子区域的数量;
S3022,记smxi1的边界线上距离结合边缘线最远的点为i1基准点(当所述最远的点有多个,则随机取其中的一个作为i1基准点),或者,以smxi1的各个顶点中距离结合边缘线上各个点中最远的顶点为i1基准点,扫描集合S2中与smxi1有共同边界线在结合边缘线上的所有子区域,将这些子区域标记为中心结合区域;共同边界线为两个子区域之间的分界线段;
将以i1基准点为圆心、以MaxD为半径的圆形区域记为中心域G1,取集合MX和集合CJ中所有与中心域G1有交集但不是中心结合区域的所有子区域,将这些子区域标记为次级结合区域;其中,MaxD为i1基准点到各个结合区域的所有顶点中距离最大的顶点的距离值;
通过以上步骤S3021到S3022计算将三维模型与三维场景细分为多个子区域,识别出与集合S1中所有的子区域smxi1有共同边界线在结合边缘线上的中心结合区域和次级结合区域。
S303,计算各个子区域与该子区域对应的各个中心结合区域在结合边缘上的共同边界线的过渡值;具体为:
计算smxi1与各个中心结合区域在结合边缘上的共同边界线的过渡值TranY:
(计算出smxi1在共同分界线另一侧相邻区域的像素点和smxi1是否具有连贯性,若过渡值过小则连接处相邻区域的像素不匹配的概率很大);
其中,Com(k1,Y)为smxi1与第Y个中心结合区域的共同边界线上第k1个像素点的连贯值,变量k1∈[1,TOl],TOl为smxi1与第Y个中心结合区域的共同边界线的像素点总数,log()函数为以a为底的取对数函数,exp为指数函数;第Y个中心结合区域的上第k1个像素点的连贯值Com(k1,Y)的计算方法为:
依次计算各个灰度化后的中心结合区域中所有像素的平均灰度值构成中心灰度集合CenGray;依次计算各个灰度化后的次级结合区域中所有像素的平均灰度值构成次级灰度集合SecGray;计算连贯值Com(k1,Y):
Com(k1,Y)=(|mean(CenGray)-Gar(k1)|+|mean(SecGray)-Gar(k1)|)÷2;
其中,mean()函数表示取集合中所有元素的平均值,Gar(k1)为灰度化后的smxi1与第Y个中心结合区域的共同边界线上第k1个像素点的灰度值;
通过以上步骤S303计算集合S1中所有的子区域smxi1与该子区域对应的各个中心结合区域在结合边缘上的共同边界线的过渡值。
S304,根据过渡值识别出各个子区域的中心结合区域中的过渡不连贯区域;具体方法为:
计算smxi1与所有的中心结合区域在结合边缘上的共同边界线的所有过渡值TranY的算术平均值为AveTran,标记出过渡值TranY小于或等于AveTran的中心结合区域为过渡不连贯区域;
S305,以各个子区域的各个次级结合区域将过渡不连贯区域进行调整修复得到修复后的模型;具体方法为:
S3051,记子区域smxi1的所有过渡不连贯区域的集合为Rep=(repi3),repi3是集合Rep中第i3个子区域,变量i3∈[1,H3],H3是子区域smxi1的过渡不连贯区域的数量;
S3052,以子区域smxi1的i1基准点为第一标点P1,repi3的几何中心点为P2,以P1到P2的直线为L1,取子区域smxi1的各个次级结合区域的几何中心点中到L1的垂线段距离最短的几何中心点所对应的次级结合区域作为拟合区域(即,取子区域smxi1的各个次级结合区域的几何中心点,将各个所述几何中心点到L1的垂线段中最短的垂线段所对应的几何中心点所在的次级结合区域作为拟合区域);(获取距离过渡不连贯区域较近的像素区域用来修复不连贯的区域);
S3053,对拟合区域进行复制,将复制的拟合区域的几何中心点记为P3;将复制的拟合区域以P3为中心整体平移到P2为中心的位置,通过旋转或缩放复制的拟合区域将复制的拟合区域的各个顶点和过渡不连贯区域repi3的各个顶点位置重合,或者,将复制的拟合区域以P3为中心整体平移到P2为中心的位置从而以复制的拟合区域覆盖掉过渡不连贯区域repi3。
通过以上步骤S3051到S3053对集合S1中所有的子区域smxi1的各个次级结合区域将过渡不连贯区域进行调整修复得到修复后的模型。
S306,将修复后的模型作为第二模型输出。
(修正后去除了毛刺以及不美观的凸起和凹陷引起的模型拼接导致过渡不连贯的问题得到第二模型)。
进一步地,在S300中,在S306步骤后,还包括:删除子区域smxi1的所有的过渡不连贯区域repi3。
进一步地,在S400中,对第二模型进行光影渲染得到最终的三维模型的方法为:通过3DMax软件、LumenRT软件、lumion渲染器、Artlantis渲染器、NVidia Gelato渲染器、Gelato Pro渲染器、vary渲染器、corona渲染器、Twinmotion渲染器中任意一种对第二模型进行光影渲染得到最终的三维模型。
本发明还提供了一种基于建模软件脚本的三维模型优化系统,所述一种基于建模软件脚本的三维模型优化系统包括:处理器、存储器及存储在所述存储器中并可在所述处理器上运行的计算机脚本程序,所述处理器执行所述计算机脚本程序时实现所述一种基于建模软件脚本的三维模型优化方法中的步骤,所述一种基于建模软件脚本的三维模型优化系统可以运行于桌上型计算机、笔记本、掌上电脑及云端数据中心等计算设备中,可运行的系统可包括,但不仅限于,处理器、存储器、服务器集群,所述处理器执行所述计算机程序运行在以下系统的单元中:
三维模型获取单元,用于获取三维模型文件;
模型场景整合单元,用于从三维模型文件中读取三维模型,将三维模型进行大小缩放,并放置到预设的三维场景中得到第一模型;
边缘位置过渡单元,用于对第一模型中三维模型与三维场景结合边缘位置进行修正得到第二模型;
模型光影渲染单元,用于对第二模型进行光影渲染得到最终的三维模型。
本发明的有益效果为:本发明提供一种基于建模软件脚本的三维模型优化方法及系统,使多个模型或者模型与场景之间衔接处自然过渡,减少了系统内存资源和显示存储资源的消耗,修正后去除了毛刺以及不美观的凸起和凹陷引起的模型拼接导致过渡不连贯的问题,提高了模型加载的速度。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本发明的上述以及其他特征将更加明显,本发明附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种基于建模软件脚本的三维模型优化方法的流程图;
图2所示为一种基于建模软件脚本的三维模型优化系统结构图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为一种基于建模软件脚本的三维模型优化方法的流程图,下面结合图1来阐述根据本发明的实施方式的一种基于建模软件脚本的三维模型优化方法,所述方法包括以下步骤:
S100,获取三维模型文件;
S200,从三维模型文件中读取三维模型,将三维模型进行大小缩放,并放置到预设的三维场景中得到第一模型;
S300,对第一模型中三维模型与三维场景结合边缘位置进行修正得到第二模型;
S400,对第二模型进行光影渲染得到最终的三维模型。
进一步地,将所述方法的步骤S100到S400封装到建模软件的脚本程序中,从而将该脚本程序运行在计算机中。
进一步地,在S100中,所述三维模型文件通过Rhino、grasshoper、Civil 3D、InfraWorks等三维建模软件设计或者所述三维模型文件通过三维扫描仪或三坐标测量机采集工件、建筑物或者家具等获取的三维模型得到的OBJ文件、BREP文件、MAX文件、3DM文件、3DS文件、STL文件中任意一种。
进一步地,在S200中,预设的三维场景也叫三维虚拟场景,是利用三维建模软件,生成的一个基础环境模型,或者,预设的三维场景也可以为三维扫描仪或三坐标测量机采集的桥梁、机械或者建筑物获得的三维模型。
进一步地,在S300中,对第一模型中三维模型与三维场景结合边缘位置进行修正得到第二模型的方法包括:
S301,获取第一模型中三维模型与三维场景的连接位置的曲线作为结合边缘线;
S302,将三维模型与三维场景细分为多个子区域,识别出与子区域有共同边界线在结合边缘线上的中心结合区域和次级结合区域,具体方法为:
S3021,通过Catmull-Clark算法(Catmull-Clark subdivision)对三维模型进行1至4次细分后获得三维模型的多个细分的子区域,由三维模型的各个所述子区域构成集合MX;通过Catmull-Clark算法对三维场景进行1至4次细分后获得三维场景的多个细分的子区域,由三维场景的各个所述子区域构成集合CJ;Catmull-Clark算法生成的每个子区域至少包括4个顶点;
取集合MX中各个子区域的边界线与结合边缘线有重合的子区域作为第一结合区域集合S1={smxi1},smxi1是集合S1中第i1个子区域,变量i1∈[1,H1],H1是集合S1中子区域的数量;取集合CJ中各个子区域的边界线与结合边缘线有重合的子区域作为第二结合区域集合S2={scji2},scji2是集合S2中第i2个子区域,变量i2∈[1,H2],H2是集合S2中子区域的数量;
S3022,记smxi1的边界线上距离结合边缘线最远的点为i1基准点(即以smxi1的各个顶点中距离结合边缘线最远的点为i1基准点),扫描集合S2中与smxi1有共同边界线在结合边缘线上的所有子区域,将这些子区域标记为中心结合区域;共同边界线为两个子区域之间的分界线段;
将以i1基准点为圆心、以MaxD为半径的圆形区域记为中心域G1,取集合MX和集合CJ中所有与中心域G1有交集但不是中心结合区域的所有子区域,将这些子区域标记为次级结合区域;其中,MaxD为i1基准点到各个结合区域的所有顶点中距离最大的顶点的距离值;
S303,计算各个子区域与该子区域对应的各个中心结合区域在结合边缘上的共同边界线的过渡值;具体为:
计算smxi1与各个中心结合区域在结合边缘上的共同边界线的过渡值TranY:
其中,Com(k1,Y)为smxi1与第Y个中心结合区域的共同边界线上第k1个像素点的连贯值,变量k1∈[1,TOl],TOl为smxi1与第Y个中心结合区域的共同边界线的像素点总数,log()函数为以a为底的取对数函数,exp为指数函数;第Y个中心结合区域的上第k1个像素点的连贯值Com(k1,Y)的计算方法为:
依次计算各个灰度化后的中心结合区域中所有像素的平均灰度值构成中心灰度集合CenGray;依次计算各个灰度化后的次级结合区域中所有像素的平均灰度值构成次级灰度集合SecGray;计算连贯值Com(k1,Y):
Com(k1,Y)=(|mean(CenGray)-Gar(k1)|+|mean(SecGray)-Gar(k1)|)÷2;
其中,mean()函数表示取集合中所有元素的平均值,Gar(k1)为灰度化后的smxi1与第Y个中心结合区域的共同边界线上第k1个像素点的灰度值;
S304,根据过渡值识别出各个子区域的中心结合区域中的过渡不连贯区域;具体方法为:
计算smxi1与所有的中心结合区域在结合边缘上的共同边界线的所有过渡值TranY的算术平均值为AveTran,标记出过渡值TranY小于或等于AveTran的中心结合区域为过渡不连贯区域;
S305,以各个子区域的各个次级结合区域将过渡不连贯区域进行调整修复得到修复后的模型;具体方法为:
S3051,记子区域smxi1的所有过渡不连贯区域的集合为Rep=(repi3),repi3是集合Rep中第i3个子区域,变量i3∈[1,H3],H3是子区域smxi1的过渡不连贯区域的数量;
S3052,以子区域smxi1的i1基准点为第一标点P1,repi3的几何中心点为P2,以P1到P2的直线为L1,取子区域smxi1的各个次级结合区域的几何中心点中到L1的垂线段距离最短的几何中心点所对应的次级结合区域作为拟合区域;
S3053,对拟合区域进行复制,将复制的拟合区域的几何中心点记为P3;将复制的拟合区域以P3为中心整体平移到P2为中心的位置,通过旋转或缩放复制的拟合区域将复制的拟合区域的各个顶点和过渡不连贯区域repi3的各个顶点位置重合,或者,通过旋转或缩放复制的拟合区域将其各个顶点和过渡不连贯区域repi3的各个顶点位置一致,从而以复制的拟合区域覆盖掉过渡不连贯区域repi3。
S306,将修复后的模型作为第二模型输出。
(修正后去除了毛刺以及不美观的凸起和凹陷引起的模型拼接导致过渡不连贯的问题得到第二模型)。
进一步地,在S300中,在S306步骤后,还包括:删除子区域smxi1的所有的过渡不连贯区域repi3。
优选地,在本公开的实施例中,一种基于建模软件脚本的三维模型优化方法的MATLAB语言的部分关键源代码如下:
function [S1, S2, S] = Catmull (V, F, iter)
%通过Catmull-Clark算法(Catmull-Clark subdivision)对三维模型进行后获得三维模型的多个细分的子区域
if ~exist('iter','var')
iter = 2; % 1至4次细分
end
S1 = V;
S2= F;
for i = 1:iter
H1= size(S1,1);
H2= size(S2,1);
O = outline(S2);
MaxD = 1:H1;
boundary = O(:,1)';
interior = MaxD(~ismember(MaxD, boundary));
no = length(MaxD);
nb = length(boundary);
ni = length(interior);
%计算各个子区域与该子区域对应的各个中心结合区域在结合边缘上的共同边界线的过渡值
Etmp = sort([S2(:,1) S2(:,2);S2(:,2) S2(:,3);S2(:,3) S2(:,4);S2(:,4) S2(:,1)],2);
[E, ~, idx] = unique(Etmp, 'rows');
Mean = sparse([E(:,1) E(:,2)], [E(:,2) E(:,1)], 1, no, no);
Smx = sparse([S2(:,1) S2(:,2)], [S2(:,3) S2(:,4)], 1, no,no);
Smx = Smx + Smx';
val_even = sum(Mean,2);
beta = 3./(2*val_even);
val_odd = sum(Smx,2);
Com = 1./(4*val_odd);
alpha = 1 - beta - Com;
Sv = sparse(no,no);
Sv(interior,:) = ...
sparse(1:ni, interior, alpha(interior), ni, no) + ...
Com(@times, Mean(interior,:), beta(interior)./val_even(interior)) + ...
Com(@times, Smx(interior,:), Com(interior)./val_odd(interior));
Sboundary = ...
sparse([CenGray (:,1); CenGray (:,2)],[ CenGray (:,2); CenGray (:,1)],1/8,no,no) + ...
sparse([CenGray (:,1); CenGray (:,2)],[ CenGray (:,1); CenGray (:,2)],3/8,no,no);
Com(boundary,:) = CenGray (boundary,:);
% S将三维模型与三维场景细分为多个子区域,识别出与子区域有共同边界线在结合边缘线上的中心结合区域和次级结合区域
Sf = 1/4 .* sparse(repmat((1:i2)',1 ,4), S2, 1);
i0 = no + (1:i2)';
flaps = sparse([idx;idx], ...
[S2(:,3) S2(:,4);S2(:,4) S2(:,1);S2(:,1) S2(:,2);S2(:,2) S2(:,3)], ...
1);
bound = (sum(flaps,2) == 2);
flaps(bound,:) = 0;
ne = size(E,1);
Se = sparse( ...
[1:ne 1:ne]', ...
[E(:,1); E(:,2)], ...
[bound;bound].*1/2 + ~[bound;bound].*3/8, ...
ne, ...
no) + ...
flaps*1/16;
i1 = no + H2+ (1:i2)';
i2 = no + 2*H2+ (1:i2)';
i3 = no + 3*H2+ (1:i2)';
i4 = no + 4*H2+ (1:i2)';
S2tmp = [i0 i4 S2(:,1) i1; ...
i0 i1 S2(:,2) i2; ...
i0 i2 S2(:,3) i3; ...
i0 i3 S2(:,4) i4];
reidx = [(1:no)'; no+(1:i2)'; no+i2+idx];
S2= Com(S2tmp);
S = [Sv; Sf; Se];
S1 = S*S1; End;
End。
进一步地,在S400中,对第二模型进行光影渲染得到最终的三维模型的方法为:通过3DMax软件、LumenRT软件、lumion渲染器、Artlantis渲染器、NVidia Gelato渲染器、Gelato Pro渲染器、vary渲染器、corona渲染器、Twinmotion渲染器中任意一种对第二模型进行光影渲染得到最终的三维模型。
本发明的实施例提供的一种基于建模软件脚本的三维模型优化系统,如图2所示为本发明的一种基于建模软件脚本的三维模型优化系统结构图,该实施例的一种基于建模软件脚本的三维模型优化系统包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于建模软件脚本的三维模型优化系统实施例中的步骤。
所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在以下系统的单元中:
三维模型获取单元,用于获取三维模型文件;
模型场景整合单元,用于从三维模型文件中读取三维模型,将三维模型进行大小缩放,并放置到预设的三维场景中得到第一模型;
边缘位置过渡单元,用于对第一模型中三维模型与三维场景结合边缘位置进行修正得到第二模型;
模型光影渲染单元,用于对第二模型进行光影渲染得到最终的三维模型。
所述一种基于建模软件脚本的三维模型优化系统可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种基于建模软件脚本的三维模型优化系统,可运行的系统可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种基于建模软件脚本的三维模型优化系统的示例,并不构成对一种基于建模软件脚本的三维模型优化系统的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种基于建模软件脚本的三维模型优化系统还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种基于建模软件脚本的三维模型优化系统运行系统的控制中心,利用各种接口和线路连接整个一种基于建模软件脚本的三维模型优化系统可运行系统的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种基于建模软件脚本的三维模型优化系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本发明的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,从而有效地涵盖本发明的预定范围。此外,上文以实施例对本发明进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本发明的非实质性改动仍可代表本发明的等效改动。
Claims (8)
1.一种基于建模软件脚本的三维模型优化方法,其特征在于,所述方法包括以下步骤:
S100,获取三维模型文件;
S200,从三维模型文件中读取三维模型,将三维模型进行大小缩放,并放置到预设的三维场景中得到第一模型;
S300,对第一模型中三维模型与三维场景结合边缘位置进行修正得到第二模型;
S400,对第二模型进行光影渲染得到最终的三维模型;
其中,在S300中,对第一模型中三维模型与三维场景结合边缘位置进行修正得到第二模型的方法包括:
S301,获取第一模型中三维模型与三维场景的连接位置的曲线作为结合边缘线;
S302,将三维模型与三维场景细分为多个子区域,识别出与子区域有共同边界线在结合边缘线上的中心结合区域和次级结合区域;
S303,计算各个子区域与该子区域对应的各个中心结合区域在结合边缘上的共同边界线的过渡值;
S304,根据过渡值识别出各个子区域的中心结合区域中的过渡不连贯区域;
S305,以各个子区域的各个次级结合区域将过渡不连贯区域进行调整修复得到修复后的模型;
S306,将修复后的模型作为第二模型输出;
其中,在S302中,将三维模型与三维场景细分为多个子区域,识别出与子区域有共同边界线在结合边缘线上的中心结合区域和次级结合区域的方法具体包括以下步骤:
S3021,通过Catmull-Clark算法对三维模型进行1至4次细分后获得三维模型的多个细分的子区域,由三维模型的各个所述子区域构成集合MX;通过Catmull-Clark算法对三维场景进行1至4次细分后获得三维场景的多个细分的子区域,由三维场景的各个所述子区域构成集合CJ;Catmull-Clark算法生成的每个子区域至少包括4个顶点;
取集合MX中各个子区域的边界线与结合边缘线有重合的子区域作为第一结合区域集合S1={smxi1},smxi1是集合S1中第i1个子区域,变量i1∈[1,H1],H1是集合S1中子区域的数量;取集合CJ中各个子区域的边界线与结合边缘线有重合的子区域作为第二结合区域集合S2={scji2},scji2是集合S2中第i2个子区域,变量i2∈[1,H2],H2是集合S2中子区域的数量;
S3022,记smxi1的边界线上距离结合边缘线最远的点为i1基准点,即以smxi1的各个顶点中距离结合边缘线最远的点为i1基准点,扫描集合S2中与smxi1有共同边界线在结合边缘线上的所有子区域,将这些子区域标记为中心结合区域;共同边界线为两个子区域之间的分界线段;
将以i1基准点为圆心、以MaxD为半径的圆形区域记为中心域G1,取集合MX和集合CJ中所有与中心域G1有交集但不是中心结合区域的所有子区域,将这些子区域标记为次级结合区域;其中,MaxD为i1基准点到各个结合区域的所有顶点中距离最大的顶点的距离值。
2.根据权利要求1所述的一种基于建模软件脚本的三维模型优化方法,其特征在于,将所述方法的步骤S100到S400封装到建模软件的脚本程序中,从而将该脚本程序运行在计算机中。
3.根据权利要求1所述的一种基于建模软件脚本的三维模型优化方法,其特征在于,在S303中,计算各个子区域与该子区域对应的各个中心结合区域在结合边缘上的共同边界线的过渡值的方法为:
计算smxi1与各个中心结合区域在结合边缘上的共同边界线的过渡值TranY:
其中,Com(k1,Y)为smxi1与第Y个中心结合区域的共同边界线上第k1个像素点的连贯值,变量k1∈[1,TOl],TOl为smxi1与第Y个中心结合区域的共同边界线的像素点总数,log()函数为以a为底的取对数函数,exp为指数函数;第Y个中心结合区域的上第k1个像素点的连贯值Com(k1,Y)的计算方法为:
依次计算各个灰度化后的中心结合区域中所有像素的平均灰度值构成中心灰度集合CenGray;依次计算各个灰度化后的次级结合区域中所有像素的平均灰度值构成次级灰度集合SecGray;计算连贯值Com(k1,Y):
Com(k1,Y)=(|mean(CenGray)-Gar(k1)|+|mean(SecGray)-Gar(k1)|)÷2;
其中,mean()函数表示取集合中所有元素的平均值,Gar(k1)为灰度化后的smxi1与第Y个中心结合区域的共同边界线上第k1个像素点的灰度值。
4.根据权利要求1所述的一种基于建模软件脚本的三维模型优化方法,其特征在于,在S303中,根据过渡值识别出各个子区域的中心结合区域中的过渡不连贯区域的方法为:
计算smxi1与所有的中心结合区域在结合边缘上的共同边界线的所有过渡值的算术平均值为AveTran,标记出过渡值小于或等于AveTran的中心结合区域为过渡不连贯区域。
5.根据权利要求1所述的一种基于建模软件脚本的三维模型优化方法,其特征在于,在S305中,以各个子区域的各个次级结合区域将过渡不连贯区域进行调整修复得到修复后的模型的方法包括以下步骤:
S3051,记子区域smxi1的所有过渡不连贯区域的集合为Rep=(repi3),repi3是集合Rep中第i3个子区域,变量i3∈[1,H3],H3是子区域smxi1的过渡不连贯区域的数量;
S3052,以子区域smxi1的i1基准点为第一标点P1,repi3的几何中心点为P2,以P1到P2的直线为L1,取子区域smxi1的各个次级结合区域的几何中心点,将各个所述几何中心点到L1的垂线段中最短的垂线段所对应的几何中心点所在的次级结合区域作为拟合区域;
S3053,对拟合区域进行复制,将复制的拟合区域的几何中心点记为P3;将复制的拟合区域以P3为中心整体平移到P2为中心的位置,通过旋转或缩放复制的拟合区域将复制的拟合区域的各个顶点和过渡不连贯区域repi3的各个顶点位置重合,或者,将复制的拟合区域以P3为中心整体平移到P2为中心的位置从而以复制的拟合区域覆盖掉过渡不连贯区域repi3。
6.根据权利要求1所述的一种基于建模软件脚本的三维模型优化方法,其特征在于,在S306步骤后,还包括:删除各个子区域的所有的过渡不连贯区域。
7.根据权利要求1所述的一种基于建模软件脚本的三维模型优化方法,其特征在于,在S400中,对第二模型进行光影渲染得到最终的三维模型的方法为:通过3DMax软件、LumenRT软件、lumion渲染器、Artlantis渲染器、NVidia Gelato渲染器、Gelato Pro渲染器、vary渲染器、corona渲染器、Twinmotion渲染器中任意一种对第二模型进行光影渲染得到最终的三维模型。
8.一种基于建模软件脚本的三维模型优化系统,其特征在于,所述一种基于建模软件脚本的三维模型优化系统包括:处理器、存储器及存储在所述存储器中并可在所述处理器上运行的计算机脚本程序,所述处理器执行所述计算机脚本程序时实现权利要求1中的一种基于建模软件脚本的三维模型优化方法中的步骤,所述一种基于建模软件脚本的三维模型优化系统可以运行于桌上型计算机、笔记本、掌上电脑及云端数据中心的计算设备中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111646766.3A CN114004939B (zh) | 2021-12-31 | 2021-12-31 | 一种基于建模软件脚本的三维模型优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111646766.3A CN114004939B (zh) | 2021-12-31 | 2021-12-31 | 一种基于建模软件脚本的三维模型优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114004939A CN114004939A (zh) | 2022-02-01 |
CN114004939B true CN114004939B (zh) | 2022-04-19 |
Family
ID=79932354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111646766.3A Active CN114004939B (zh) | 2021-12-31 | 2021-12-31 | 一种基于建模软件脚本的三维模型优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114004939B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115346002B (zh) * | 2022-10-14 | 2023-01-17 | 佛山科学技术学院 | 一种虚拟场景构建方法及其康复训练应用 |
CN115661417B (zh) * | 2022-12-13 | 2023-03-31 | 深圳奥雅设计股份有限公司 | 一种元宇宙空间中虚拟世界场景生成方法及系统 |
CN115980281B (zh) * | 2023-03-16 | 2023-07-18 | 深圳奥雅设计股份有限公司 | 一种基于碳中和的碳源检测方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104299263A (zh) * | 2014-09-14 | 2015-01-21 | 北京航空航天大学 | 一种基于单幅图像建模云场景的方法 |
CN104574501A (zh) * | 2014-12-19 | 2015-04-29 | 浙江大学 | 一种针对复杂三维场景的高质量纹理映射方法 |
CN111127649A (zh) * | 2019-12-30 | 2020-05-08 | 重庆市勘测院 | 构建三维体块模型的方法及装置、服务器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542603A (zh) * | 2011-01-04 | 2012-07-04 | 鸿富锦精密工业(深圳)有限公司 | 电子装置及利用其进行指定场景设计的方法 |
CN103150751B (zh) * | 2013-01-10 | 2016-12-28 | 江苏易图地理信息科技股份有限公司 | 在数字地图中实现建筑物内外一体化的三维建模方法 |
US10200627B2 (en) * | 2014-04-09 | 2019-02-05 | Imagination Technologies Limited | Virtual camera for 3-D modeling applications |
CN111105491B (zh) * | 2019-11-25 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 场景渲染方法、装置、计算机可读存储介质和计算机设备 |
CN112489225A (zh) * | 2020-11-26 | 2021-03-12 | 北京邮电大学 | 视频与三维场景融合的方法、装置、电子设备和存储介质 |
CN112365589B (zh) * | 2020-12-01 | 2024-04-26 | 东方梦幻虚拟现实科技有限公司 | 一种虚拟三维场景展示方法、装置及系统 |
CN113781660A (zh) * | 2021-09-04 | 2021-12-10 | 上海白兔网络科技有限公司 | 一种用于直播间在线渲染加工虚拟场景的方法及装置 |
-
2021
- 2021-12-31 CN CN202111646766.3A patent/CN114004939B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104299263A (zh) * | 2014-09-14 | 2015-01-21 | 北京航空航天大学 | 一种基于单幅图像建模云场景的方法 |
CN104574501A (zh) * | 2014-12-19 | 2015-04-29 | 浙江大学 | 一种针对复杂三维场景的高质量纹理映射方法 |
CN111127649A (zh) * | 2019-12-30 | 2020-05-08 | 重庆市勘测院 | 构建三维体块模型的方法及装置、服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN114004939A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114004939B (zh) | 一种基于建模软件脚本的三维模型优化方法及系统 | |
US8860723B2 (en) | Bounded simplification of geometrical computer data | |
CN103136790B (zh) | 从多个3d曲线创建表面 | |
JP6445255B2 (ja) | 3dモデル化オブジェクトの圧縮および展開 | |
US20070291031A1 (en) | Three dimensional geometric data correction | |
US20120173212A1 (en) | Modeled object updating | |
CN104346830A (zh) | 在三维场景中设计连接第一点到第二点的路径 | |
US7940262B2 (en) | Unification and part hiding in three dimensional geometric data | |
CN114429535A (zh) | 一种三角网格曲面的光滑裁剪方法及装置 | |
CN116468632A (zh) | 一种基于自适应特征保持的网格去噪方法及装置 | |
US8935130B2 (en) | Notch blends in BRep models | |
CN113870403B (zh) | 用于图像渲染的信息处理方法及装置 | |
Adhikary et al. | A slice-based algorithm for automatic and feature-preserving hole-filling in a CAD mesh model | |
JP2019106187A (ja) | 有限要素メッシュの修復のためのシステムおよび方法 | |
US20220374556A1 (en) | Parameterization of digital organic geometries | |
US7653518B2 (en) | System and method for generating matched contour profiles | |
CN110837707B (zh) | 一种有限元分析系统、方法、计算机设备及存储介质 | |
US20240126938A1 (en) | System and Methods for Automatic Repair of Missing Mate References | |
US20240126941A1 (en) | System and Methods for Automatic Repair of Missing Mate References for Tessellated Data | |
CN109872280A (zh) | 一种三维植物叶片点云的去噪与简化方法、装置及系统 | |
US20100020076A1 (en) | Apparatus and method for generating three-dimensional model data | |
JP2012128609A (ja) | 図面作成支援方法及び装置 | |
CN116563153A (zh) | 图片处理方法、装置、计算设备及存储介质 | |
Yu et al. | LS-DYNA | |
Hu | Unstructured Mesh Generation and Repairing in the Wild |
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 |