首页 / 专利库 / 电脑图像 / 三维建模 / 一种便于少儿操作的三维体素建模方法及系统

一种便于少儿操作的三维体素建模方法及系统

阅读:2发布:2020-07-22

专利汇可以提供一种便于少儿操作的三维体素建模方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种便于少儿操作的三维 体素 建模方法及系统,方法包括:预先设置体素的数据结构,其中体素的数据结构是一维数组;对所述一维数组进行编码并存储;获取体素的各个处理过程,采用单独的程序代码编写每个处理过程;接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和 渲染 ,生成三维体素模型。本发明通过对三维体素建模中的每个处理过程都单独进行编码,从而可根据需要增减线程,有助于减少了内存清理次数,提高CPU处理性能,进一步提高了三维体素处理效率,同时建模方法简单,为少儿操作提供方便。,下面是一种便于少儿操作的三维体素建模方法及系统专利的具体信息内容。

1.一种便于少儿操作的三维体素建模方法,其特征在于,所述方法包括:
预先设置体素的数据结构,其中体素的数据结构是一维数组;
对所述一维数组进行编码并存储;
获取体素的各个处理过程,采用单独的程序代码编写每个处理过程;
接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型。
2.根据权利要求1所述的便于少儿操作的三维体素建模方法,其特征在于,所述一维数组用于模拟三维结构并记录三维结构的尺寸数据。
3.根据权利要求1所述的便于少儿操作的三维体素建模方法,其特征在于,所述对所述一维数组进行编码并存储,包括:
采用游程编码对表示三维体素模型的一维数据进行编码,并存储。
4.根据权利要求1所述的便于少儿操作的三维体素建模方法,其特征在于,所述接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型后,还包括:
若检测到用户导入图片时,则对图片进行处理,并将二维的像素映射到三维的体素,生成三维体素模型。
5.根据权利要求1所述的便于少儿操作的三维体素建模方法,其特征在于,所述接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型前,包括:
预先生成一个主线程和子线程。
6.根据权利要求5所述的便于少儿操作的三维体素建模方法,其特征在于,所述接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型,包括:
主线程获取用户的鼠标位置,通过鼠标位置计算待编辑的区域,遍历区域内的数据,对相应位置的值进行修改
子线程通过所述一维数组计算渲染所需的顶点数据,并将顶点数据返回至主线程;
主线程根据顶点数据查找色表获取颜色信息发送到图形处理器进行渲染,生成编辑后的三维体素模型。
7.根据权利要求6所述的便于少儿操作的三维体素建模方法,其特征在于,所述主线程通过鼠标的位置计算编辑的区域,遍历区域内的数据,对相应位置的值进行修改,包括:
主线程通过鼠标的位置计算当前的编辑区域,获取上一次的编辑区域,对比当前编辑区域和上一次的编辑区域的差值,对差值对应的范围进行修改。
8.根据权利要求6所述的便于少儿操作的三维体素建模方法,其特征在于,所述接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型前,还包括:
预先将一维数组中表示颜色的数字与色表的颜色一一对应。
9.一种便于少儿操作的三维体素建模系统,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8任一项所述的便于少儿操作的三维体素建模方法。
10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-8任一项所述的便于少儿操作的三维体素建模方法。

说明书全文

一种便于少儿操作的三维体素建模方法及系统

技术领域

[0001] 本发明涉及机器视觉技术领域,尤其涉及一种便于少儿操作的三维体素建模方法及系统。

背景技术

[0002] 现有的三维建模方法包括体素建模方法和非体素建模方法。非体素建模方法具有很高的专业性,对于普通用户来说,想要两次搭建出一样的模型都非常困难。如果要降低使用栏,就必须做非常多的预设和限制,但是这样就降低了软件的可创造性。因此体素建模软件越来越多的出现在日常工作和生活中。
[0003] 然而现有的体素建模软件是不同平台单独开发,或是使用java开发跨平台软件。但是前者的做法成本很高,而且不能及时更新程序,而后者对普通用来说使用的体验会很差,同时开发的难度也较高。
[0004] 建模是随意性非常高的操作,和制作一般的web端的3d程序、游戏不同的是,没有办法用预设的模型和机制减少对计算次数的需求。而使用当下流行的引擎库又不能充分接触三维模型生成的底层原理,同时中间封装的层级过多,对降低性能没有任何帮助。这也是目前已有的一些基于web的建模软件的缺陷,即完全把底层交给框架处理,但是框架并不会做特殊的优化。
[0005] 因此,现有技术还有待于改进和发展。

发明内容

[0006] 鉴于上述现有技术的不足,本发明的目的在于提供一种便于少儿操作的三维体素建模方法及系统,旨在解决现有技术中三维体素软件开发难度高,用户建模步骤复杂的缺陷。
[0007] 本发明的技术方案如下:
[0008] 一种便于少儿操作的三维体素建模方法,所述方法包括:
[0009] 预先设置体素的数据结构,其中体素的数据结构是一维数组;
[0010] 对所述一维数组进行编码并存储;
[0011] 获取体素的各个处理过程,采用单独的程序代码编写每个处理过程;
[0012] 接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型。
[0013] 可选地,所述一维数组用于模拟三维结构并记录三维结构的尺寸数据。
[0014] 可选地,所述对所述一维数组进行编码并存储,包括:
[0015] 采用游程编码对表示三维体素模型的一维数据进行编码,并存储。
[0016] 可选地,所述接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型后,还包括:
[0017] 若检测到用户导入图片时,则对图片进行处理,并将二维的像素映射到三维的体素,生成三维体素模型。
[0018] 可选地,所述接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型前,包括:
[0019] 预先生成一个主线程和子线程。
[0020] 可选地,所述接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型,包括:
[0021] 主线程获取用户的鼠标位置,通过鼠标位置计算待编辑的区域,遍历区域内的数据,对相应位置的值进行修改
[0022] 子线程通过所述一维数组计算渲染所需的顶点数据,并将顶点数据返回至主线程;
[0023] 主线程根据顶点数据查找色表获取颜色信息发送到图形处理器进行渲染,生成编辑后的三维体素模型。
[0024] 可选地,所述通过鼠标的位置计算编辑的区域,遍历区域内的数据,对相应位置的值进行修改,包括:
[0025] 通过鼠标的位置计算当前的编辑区域,获取上一次的编辑区域,对比当前编辑区域和上一次的编辑区域的差值,对差值对应的范围进行修改。
[0026] 可选地,所述接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型前,还包括:
[0027] 预先将一维数组中表示颜色的数字与色表的颜色一一对应。
[0028] 本发明另一实施例还提供了一种系统,包括:
[0029] 至少一个处理器;以及,
[0030] 与所述至少一个处理器通信连接的存储器;其中,
[0031] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的便于少儿操作的三维体素建模方法。
[0032] 本发明的又一实施例还提供了一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的便于少儿操作的三维体素建模方法。
[0033] 有益效果:本发明公开了一种便于少儿操作的三维体素建模方法及系统,通过对三维体素建模中的每个处理过程都单独进行编码,从而可根据需要增减线程,有助于减少了内存清理次数,提高CPU处理性能,进一步提高了三维体素处理效率,同时建模方法简单,为少儿操作提供方便。附图说明
[0034] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0035] 图1为本发明一种便于少儿操作的三维体素建模方法较佳实施例的流程图
[0036] 图2为本发明一种便于少儿操作的三维体素建模系统的较佳实施例的硬件结构图。

具体实施方式

[0037] 为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0038] 请参阅图1,图1为本发明一种便于少儿操作的三维体素建模方法较佳实施例的流程图。如图1所示,其包括步骤:
[0039] 步骤S100、预先设置体素的数据结构,其中体素的数据结构是一维数组;
[0040] 步骤S200、对所述一维数组进行编码并存储;
[0041] 步骤S300、获取体素的各个处理过程,采用单独的程序代码编写每个处理过程;
[0042] 步骤S400、接收用户的编辑指令,根据WebGL配合多线程完成三维图像的计算和渲染,生成三维体素模型。
[0043] 具体实施时,本发明实施例主要用于实现在浏览器中运行的快速方便的体素建模软件。具体技术为javaScript配合WebGL开发,可以脱离web服务器,作为静态页面程序使用,也就是说既可以通过网页访问web程序,又完全可以作为一个本地的应用程序使用,具有很好的跨平台性。建模的操作简单高效,对于非专业的普通用户的上手门槛很低。因此适用于少儿操作。而且支持导出其它建模软件通用的文件格式以及3d打印机所需的文件格式在一维数组用于模拟三维结构并记录三维结构的尺寸数据。其中WebGL(全写Web Graphics Library)是一种3D绘图协议。
[0044] 一维数组用于模拟三维结构并记录三维结构的尺寸数据。具体地,在数据结构方面体素是使用一维数组模拟三维的结构,同时记录三维的尺寸数据。大致可以表示成:
[0045] data=[1,0,1,0,0,0,0,2,5,7,3…,9];shape=[5,5,5];因此对于为<2,3,4>的体素来说,下标就是2+3*5+4*25=117;因为三维数组在javaScript中并不能用最节省空间的数据类型构造,而且不同维度之间是通过地址一层一层的查找访问的,直接计算下标然后直接定位,计算速度快。数组中存储的值除了0以外,其余的都表示该位置有体素,并且体素的颜色由对应的值表示,这些值为色表的中颜色的编号,因此1、2、4、6这些数字代表什么颜色是由色表决定的。而色表是另外单独存储的数据,一组色表存储255个颜色的rgb值,用户可以随意更改这些值取得想要的颜色。
[0046] 步骤S400中在用户进行一次编辑的过程中,从接受输入到渲染的过程:通过鼠标的位置计算编辑的区域,也就是从起点到终点的一个空间范围S;遍历空间S内的数据,修改相应位置的值;通过“三维”数据计算渲染所需的顶点数据;将顶点数据、通过查找色表获得颜色信息发送到GPU进行渲染。
[0047] 可选地,步骤S200包括:采用游程编码对表示三维体素模型的一维数据进行编码,并存储。
[0048] 具体地,因为本程序是运行在web上,因此数据轻量、方便传输是必须要考虑的。因此在数据存储方面采用游程编码对表示模型的一维数组进行编码,以极大的压缩数据量,而现有的建模软件大多都直接纪录每个体素的数据,这种方式虽然直接简单,但是需要保存更多数据量。
[0049] 可选地,步骤S400具体为:
[0050] 主线程获取用户的鼠标位置,通过鼠标位置计算待编辑的区域,遍历区域内的数据,对相应位置的值进行修改;
[0051] 子线程通过所述一维数组计算渲染所需的顶点数据,并将顶点数据返回至主线程;
[0052] 主线程根据顶点数据查找色表获取颜色信息发送到图形处理器进行渲染,生成编辑后的三维体素模型。
[0053] 具体地,预先将一维数组中表示颜色的数字与色表的颜色一一对应。
[0054] 在实际渲染中并不是一个体素一个体素的渲染,而是将相邻且颜色一致的体素合并,这种方式极大的降低的性能的需求,比如一个大小为10x 10x 10的立方体如果把每个体素都渲染出来,需要1000*8个顶点,而在本程序中只需要8个顶点。
[0055] 由于通过所述一维数组计算渲染所需的顶点数据的步骤,是需要大量cpu计算的一步,如果一次计算的时间过长,会导致整个程序处于不能响应的状态,为了尽量减少“卡顿”的情况,可以将通过所述一维数组计算渲染所需的顶点数据的步骤放到例外开辟的子线程中完成,这样主线程依然可以不受影响的响应用户输入。但是还需要考虑线程中数据来回传输的时间消耗,如果耗时过长,程序依然会给人延迟的感觉。为了在操作过程中减少这个时间消耗,可以在一次操作开始的时候同步一次住线程和子线程的数据,然后每次只传输数据变动的部分。
[0056] 可选地,主线程获取用户的鼠标位置,通过鼠标位置计算待编辑的区域,遍历区域内的数据,对相应位置的值进行修改,包括:
[0057] 主线程通过鼠标的位置计算当前的编辑区域,获取上一次的编辑区域,对比当前编辑区域和上一次的编辑区域的差值,对差值对应的范围进行修改。
[0058] 具体实施时,主线程可以比对当前编辑区域和上一次的编辑区域,得到两次的差值,这样就可以将遍历的范围缩小到差值代表的范围,从而减少原本大量的遍历次数。
[0059] 可选地,步骤S400之后还包括:
[0060] 若检测到用户导入图片时,则对图片进行处理,并将二维的像素映射到三维的体素,生成三维体素模型。
[0061] 具体实施时,检测到用户的任意图片导入,可生成三维体素模型,图片可以是一张或多张。如果是一张图片导入,生成立体模型的原理就是平面沿着z轴延伸,如果是两张图片,用户可根据需要指定正视图和侧视图,通过分析正、侧两个视,结合起来生成模型,通过这种方式,可以任意组合不同的图片产生许多新奇的模型。两张图片的原理就是两张图分别沿x轴、z轴填充整个空间,再取交集即可。
[0062] 进一步地,本发明的建模方法还提供以下功能:绘制、消除、着色、选区、魔棒、空间平移、颜色选取、区域替换。从数据表示的层次考虑,这些操作无非都是如何查找满足条件的数据并进行修改,譬如绘制,是将空间范围S内的数据值为0的都置为a(a代表用户当前选中的颜色在色表中的下标)。消除则是将空间S内的值都置为0,着色则是将空间范围S内的数据值非0的都置为a,选区则是将空间范围S内的数据值非0的都拷贝到选区空间中,其余的操作原理类似。
[0063] 绘制、消除、着色、选区四个操作又有轴对称模式、镜像对称模式可以选择,两种模式支持同时使用。选区还另外支持多选、删除选区、取消选区。
[0064] 魔棒、颜色选取、区域替换都是针对颜色所作的操作。其中魔棒提供面、体、全部三种选择,即:可以选择一个连续的面、连续的体或空间中所有目标颜色的体素(不需要相邻)。
[0065] 本发明实施例的三维体素建模方法可在windows和macOS平台下,Chrome、firefox、Edge、Safari浏览器都能无差别的运行。通过该方法生成的模型可以生成Obj格式,并能导入其他建模软件如Blender,给更专业的用户也提供选择。除此之外还支持生成3D打印机接收的stl格式。
[0066] 由以上方法实施例可知,本发明提供了一种便于少儿操作的三维体素建模方法,具有如下技术好处:
[0067] 从底层的渲染到顶层的数据封装都摆脱现有的框架,因为每一个过程都是用代码编写完成,对各个部分的实现方法都能做完整的分析。比如在底层渲染的部分可以考虑开启或关闭什么效果降低GPU的计算量,数据存储的时候采用多少的字节的格式可以减少内存清理的次数,以及什么时候采用多线程以最大发挥CPU的性能。
[0068] 体素建模就是以一个单位立方体为基本单位的建模,因此用户的每次修改,比如绘制、消除、着色都可以用体素作为单位计算。简单来说,就是计算一次操作中修改的多少个单位立方体。建模的操作通过鼠标滑动完成,所以一次操作可以修改一个长方体空间内的体素,而现在已有的大多数体素类的建模软件只能一个体素一个体素的编辑。
[0069] 支持用户导入图片建模,程序自动对图片的颜色进行处理,并将二维的像素映射到三维的体素,从而使用者非常快速的创造出一些独特的模型。
[0070] 本发明另一实施例提供一种便于少儿操作的三维体素建模系统,如图2所示,该便于少儿操作的三维体素建模系统10包括:
[0071] 一个或多个处理器110以及存储器120,图2中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图2中以通过总线连接为例。
[0072] 处理器110用于完成便于少儿操作的三维体素建模系统10的各种控制逻辑,其可以为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单片机、ARM(Acorn RISC Machine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP核、或任何其它这种配置。
[0073] 存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模,如本发明实施例中的便于少儿操作的三维体素建模方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行便于少儿操作的三维体素建模系统10的各种功能应用以及数据处理,即实现上述方法实施例中的便于少儿操作的三维体素建模方法。
[0074] 存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据便于少儿操作的三维体素建模系统10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至便于少儿操作的三维体素建模系统10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0075] 一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的便于少儿操作的三维体素建模方法,例如,执行以上描述的图1中的方法步骤S100至步骤S400。
[0076] 上述便于少儿操作的三维体素建模系统10可执行本发明实施例所提供的便于少儿操作的三维体素建模方法,具备执行方法相应的功能模块和有益效果。未在便于少儿操作的三维体素建模系统10实施例中详尽描述的技术细节,可参见本发明实施例所提供的便于少儿操作的三维体素建模方法。
[0077] 本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤S100至步骤S400。
[0078] 本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的便于少儿操作的三维体素建模方法。例如,执行以上描述的图1中的方法步骤S100至步骤S400。
[0079] 以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0080] 通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
[0081] 应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈