基于3D渲染引擎的图像生成方法以及装置与流程

文档序号:16364292发布日期:2018-12-22 08:20阅读:354来源:国知局
基于3D渲染引擎的图像生成方法以及装置与流程

本发明涉及图像处理领域,具体而言,涉及一种基于3d渲染引擎的图像生成方法以及装置。

背景技术

随着三维建模技术的发展,越来越多的用户在进行房屋装修时会采用3dmax软件进行建模来预览装修效果。然而对不熟悉3dmax的用户来讲,要实现三维建模是一件十分困难的事情,为了解决这个问题,出现了云设计,使得用户可以在线生成装修效果图。可是,传统的云设计只能采用固定的模型进行建模,对于用户自定义的模型不友好,建模不易实现。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种基于3d渲染引擎的图像生成方法以及装置,以解决上述问题。

第一方面,本发明实施例提供了一种基于3d渲染引擎的图像生成方法,所述方法包括:客户端获取用户绘制的2d自定义图形以及图形信息;所述客户端将所述2d自定义图形以及所述图形信息发送给3d渲染引擎;所述客户端获取所述3d渲染引擎基于所述2d自定义图形以及所述图形信息反馈的3d图形数据;所述客户端基于所述3d图形数据,生成图像。

第二方面,本发明实施例提供了一种基于3d渲染引擎的图像生成方法,所述方法包括:3d渲染引擎获取客户端发送的2d自定义图形以及所述图形信息;所述3d渲染引擎基于所述2d自定义图形以及所述图形信息生成3d图形数据,并反馈给所述客户端,以使所述客户端基于所述3d图形数据,生成图像。

第三方面,本发明实施例提供了一种基于3d渲染引擎的图像生成装置,所述装置包括:图像捕捉模块,用于获取用户绘制的2d自定义图形以及图形信息;发送模块,用于将所述2d自定义图形以及所述图形信息发送给3d渲染引擎;获取模块,用于获取所述3d渲染引擎基于所述2d自定义图形以及所述图形信息反馈的3d图形数据;渲染模块,用于基于所述3d图形数据,生成图像。

第四方面,本发明实施例提供了一种基于3d渲染引擎的图像生成装置,所述装置包括:获取模块,用于获取客户端发送的2d自定义图形以及所述图形信息;反馈模块,用于基于所述2d自定义图形以及所述图形信息生成3d图形数据,并反馈给所述客户端,以使所述客户端基于所述3d图形数据,生成图像。

与现有技术相比,本发明各实施例提出的基于3d渲染引擎的图像生成方法以及装置的有益效果是:本发明实施例提出的基于3d渲染引擎的图像生成方法以及装置,客户端通过将用户绘制的2d自定义图形以及图形信息发送给3d渲染引擎端,使得生成自定义图像的处理逻辑放在了客户端外部,突破了客户端自身的运算限制,实现更加多样化的几何体生成,便于用户基于自定义的图形进行建模。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的客户端与3d渲染引擎进行交互的示意图;

图2为本发明实施例提供的电子设备的结构框图;

图3为本发明第一实施例提供的基于3d渲染引擎的图像生成方法的流程图;

图4为本发明第二实施例提供的基于3d渲染引擎的图像生成方法的流程图;

图5为本发明第三实施例提供的基于3d渲染引擎的图像生成装置的结构框图;

图6为本发明第四实施例提供的基于3d渲染引擎的图像生成装置的结构框图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

如图1所示,是本发明实施例提供的电子设备100与3d渲染引擎200进行交互的示意图。所述3d渲染引擎200通过网络300与一个或多个电子设备100进行通信连接,以进行数据通信或交互。所述3d渲染引擎200可以是threejs等。所述电子设备100可以是个人电脑(personalcomputer,pc)、平板电脑、智能手机等,在电子设备100内可以安装客户端。

如图2所示,是所述电子设备100的方框示意图。所述电子设备100包括:基于3d渲染引擎的图像生成装置、存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150、音频单元160、显示单元170。

所述存储器110、存储控制器120、处理器130、外设接口140、输入输出单元150、音频单元160以及显示单元170各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述基于3d渲染引擎的图像生成装置包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中或固化在客户端设备的操作系统(operatingsystem,os)中的软件功能模块。所述处理器130用于执行存储器110中存储的可执行模块,例如所述基于3d渲染引擎的图像生成装置包括的软件功能模块或计算机程序。

其中,存储器110可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的服务器200、电子设备100所执行的方法可以应用于处理器130中,或者由处理器130实现。

处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述外设接口140将各种输入/输出装置耦合至处理器130以及存储器110。在一些实施例中,外设接口140,处理器130以及存储控制器120可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

输入输出单元150用于提供给用户输入数据实现用户与电子设备100的交互。所述输入输出单元150可以是,但不限于,鼠标和键盘等。

音频单元160向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。

显示单元170在电子设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元170可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器130进行计算和处理。

第一实施例

请参照图3,图3是本发明第一实施例提供的一种基于3d渲染引擎的图像生成方法的流程图,所述方法应用于客户端,例如安装在电子设备内的图像客户端。其中,所述图像可以应用于背景墙、吊顶、地台等。

下面将以生成背景墙图像对图3所示的流程进行详细阐述,所述方法包括:

步骤s110:客户端获取用户绘制的2d自定义图形以及图形信息。

可选的,客户端可以包括2d墙体界面、2d户型界面、3d户型界面以及渲染引擎数据构建窗口。

用户可以在客户端的2d墙体界面内随意绘制自身所需的2d平面图形,并在渲染引擎数据构建窗口内输入所需的背景墙凸起高度。

客户端可以基于用户绘制的2d平面图形以及输入的背景墙凸起高度,获取到用户绘制的2d自定义图形,并生成图形信息。

其中,所述图形信息可以包括2d自定义图形中的每一条边的长度、背景墙的凸出高度。

步骤s120:所述客户端将所述2d自定义图形以及所述图形信息发送给3d渲染引擎。

在客户端可以通过内部机制调用外部的引擎库将所述2d自定义图形以及所述图形信息发送给3d渲染引擎,以便3d渲染引擎基于2d自定义图形以及图形信息进行渲染,得到3d图像数据,即渲染数据。

可选的,图形信息包括所述2d自定义图形的每个顶点坐标、所要生成的立方体的高度。3d渲染引擎在获取到图形信息后,可以调用数据格式转换方法,将所述2d自定义图形的每个顶点坐标转换成为3d场景中的世界坐标点。

然后3d渲染引擎将世界坐标点传入内置的顶点、法线、uv计算模块,生成顶点信息,然后传入3d渲染引擎内置的mesh构造器形成mesh面片,mesh面片经过放样拉伸之后形成用户所绘制的立方体信息。然后3d渲染引擎再将立方体信息传入内置的渲染引擎数据生成模块,生成各类渲染引擎所公用的图像格式数据,例如buffergeometry格式,最后将这个数据作为3d图形数据传回图像客户端。

其中,buffergeometry是一种数据集合,用于存放几何图形。

步骤s130:所述客户端获取所述3d渲染引擎基于所述2d自定义图形以及所述图形信息反馈的3d图形数据。

其中,所述3d图形数据可以包括:顶点信息、索引信息以及纹理坐标(uv)信息。

步骤s140:所述客户端基于所述3d图形数据,生成图像。

其中,所述图像可以是flash格式,当然,flash格式仅仅只是示例性的,客户端所生产的图像还可以是其他可以应用在buffergeometry格式的图像格式文件。

可选的,所述客户端基于所述3d图形数据,可以在用户绘制所述2d自定义图形的位置生成图像。

可选的,所述3d图形数据包括:顶点信息、索引信息以及纹理坐标信息。

所述客户端通过预先保存的alternativa引擎,按照alternativa引擎的格式要求,将所述顶点信息、所述索引信息以及所述纹理坐标信息读取出后进行对相关转换,创建与图像对应的多个mesh面片,添加对应的贴图,并将所述多个面片组合成一个立方体。在得到立方体后,所述客户端通过旋转平移,将所述立方体的位置定位到用户绘制所述2d自定义图形的位置,在3d户型界面显示出来,便于用户浏览。

第二实施例

请参照图4,图4是本发明第额实施例提供的一种基于3d渲染引擎的图像生成方法的流程图,所述方法应用于3d渲染引擎,例如threejs引擎。当然,threejs引擎仅仅只是示例性举例说明,本发明实施例中所述的3d渲染引擎还可以是其他任何一种3d渲染引擎。下面将以threejs引擎为例,对图4所示的流程进行详细阐述,所述方法包括:

步骤s210:3d渲染引擎获取客户端发送的2d自定义图形以及所述图形信息。

步骤s220:所述3d渲染引擎基于所述2d自定义图形以及所述图形信息生成3d图形数据,并反馈给所述客户端,以使所述客户端基于所述3d图形数据,生成图像。

所述图形信息包括所述2d自定义图形的每个顶点坐标、所要生成的立方体的高度;所述3d渲染引擎基于所述2d自定义图形以及所述图形信息生成3d图形数据,包括:

所述3d渲染引擎将所述2d自定义图形的每个顶点坐标转换成为3d场景中的世界坐标点;所述3d渲染引擎通过内置函数,将所述世界坐标点生成一个3d场景中的面片;所述3d渲染引擎基于所述立方体的高度,拉伸所述面片,生成所述3d渲染引擎所支持的3d图形;所述3d渲染引擎将所述3d图形转化为对应的缓存网格模型,所述缓存网格模型这包含所述3d图形所通用的顶点信息、索引信息以及纹理坐标信息。

当然,所述图形信息还可以包括所述2d自定义图形的每个顶点颜色、每条边的长度、所要生成的立方体的孔洞位置以及孔洞数量。

第三实施例

请参照图5,图5是本发明第三实施例提供的一种基于3d渲染引擎的图像生成装置400的结构框图。下面将对图5所示的结构框图进行阐述,所示装置包括:

图像捕捉模块410,用于获取用户绘制的2d自定义图形以及图形信息;

发送模块420,用于将所述2d自定义图形以及所述图形信息发送给3d渲染引擎;

获取模块430,用于获取所述3d渲染引擎基于所述2d自定义图形以及所述图形信息反馈的3d图形数据;

渲染模块440,用于基于所述3d图形数据,生成图像。

本实施例对基于3d渲染引擎的图像生成装置400的各功能模块实现各自功能的过程,请参见上述图1至图4所示实施例中描述的内容,此处不再赘述。

第四实施例

请参照图6,图6是本发明第四实施例提供的一种基于3d渲染引擎的图像生成装置500的结构框图。下面将对图6所示的结构框图进行阐述,所示装置包括:

获取模块510,用于获取客户端发送的2d自定义图形以及所述图形信息;

反馈模块520,用于基于所述2d自定义图形以及所述图形信息生成3d图形数据,并反馈给所述客户端,以使所述客户端基于所述3d图形数据,生成图像。

本实施例对基于3d渲染引擎的图像生成装置400的各功能模块实现各自功能的过程,请参见上述图1至图4所示实施例中描述的内容,此处不再赘述。

综上所述,本发明实施例提出的基于3d渲染引擎的图像生成方法以及装置,客户端通过将用户绘制的2d自定义图形以及图形信息发送给3d渲染引擎端,使得生成自定义图像的处理逻辑放在了客户端外部,突破了客户端自身的运算限制,实现更加多样化的几何体生成,便于用户基于自定义的图形进行建模。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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