基于Unity3D的Web端3D效果同步方法、装置、设备及介质
文献发布时间:2023-06-19 16:09:34
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于Unity3D的Web端3D效果同步方法、装置、设备及介质。
背景技术
Unity3D软件是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine,Virtools或Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。
目前,在使用Unity3D软件的时候,当需要在web端预览查看效果时,Unity3D软件官方提供了编译生成webgl的方式,这种方式是将场景的内容打包成一个不可二次开发的包体结构,且打包时间非常长,打包内容冗余,且效果和编辑器预览差异明显,查找问题非常困难。
发明内容
本发明提供了一种基于Unity3D的Web端3D效果同步方法、装置、设备及介质,能够把文件导入到Unity3D目录中直接使用,无需安装,解决了Unity3D端直接在Web端实时预览需要打包编译的缺陷,并可在Web端进行二次开发,为使用者提供便利。
根据本发明的一方面,提供了一种基于Unity3D的Web端3D效果同步方法,所述方法由发布端连接,所述发布端配置有Unity3D引擎;所述发布端与服务端连接,所述服务端连接有Web端;所述方法包括:
将目标物体的三维模型导入到Unity3D引擎中,以对所述三维模型进行渲染;
按照与Web端的3D程序相适配的属性信息,确定渲染所述三维模型的场景信息;
对所述场景信息进行封装得到场景文件;
将所述场景文件上传至服务端,供所述服务端响应于Web端的访问操作,以传输至Web端进行3D效果展示。
可选的,按照与Web端的3D程序相适配的属性信息,确定渲染所述三维模型的场景信息,包括:
读取Web端的3D程序的属性信息,并基于所述属性信息生成目标属性信息;
对所述三维模型按照所述目标属性信息进行渲染,得到场景信息;
将所述场景信息进行封装,得到场景文件。
可选的,所述场景信息包括:场景中的相机、灯光、环境光、阴影、反射以及相机焦点中的一种或者多种信息。
可选的,读取Web端的3D程序的属性信息,并基于所述属性信息生成目标属性信息,包括:
读取Web端的3D程序的属性信息,并识别所述属性信息是否为Unity3D引擎中包括的渲染信息;
若是,则基于所述属性信息生成目标属性信息;
若否,则创建与所述Web端的3D程序对应的新增属性,并对所述新增属性进行属性赋值,以生成目标属性信息。
可选的,所述方法还包括:
将所有目标物体的材质信息进行封装,得到资源文件;以及,将所有目标物体的贴图信息进行封装,得到贴图文件。
可选的,将所有目标物体的材质信息进行封装,得到资源文件,包括:
识别所有目标物体的材质信息是否存在已上传材质信息;
若存在已上传材质信息,则构建与所述已上传材质信息之间的材质引用信息;
将未上传的材质信息和所述材质引用信息进行封装,得到资源文件。
可选的,将所有目标物体的贴图信息进行封装,得到贴图文件,包括:
识别所有目标物体的贴图信息是否存在已上传贴图信息;
若存在已上传贴图信息,则构建与所述已上传贴图信息之间的贴图引用信息;
将未上传的贴图信息和所述贴图引用信息进行封装,得到贴图文件。
根据本发明的另一方面,提供了一种基于Unity3D的Web端3D效果同步装置,所述装置配置于发布端,所述发布端配置有Unity3D引擎;所述发布端与服务端连接,所述服务端连接有Web端;包括:
模型导入模块,用于将目标物体的三维模型导入到Unity3D引擎中,以对所述三维模型进行渲染;
场景信息确定模块,用于按照与Web端的3D程序相适配的属性信息,确定渲染所述三维模型的场景信息;
场景文件得到模块,用于对所述场景信息进行封装得到场景文件;
场景文件上传模块,用于将所述场景文件上传至服务端,供所述服务端响应于Web端的访问操作,以传输至Web端进行3D效果展示。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的基于Unity3D的Web端3D效果同步方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的基于Unity3D的Web端3D效果同步方法。
本发明实施例的技术方案,通过将目标物体的三维模型导入到Unity3D引擎中,以对所述三维模型进行渲染;按照与Web端的3D程序相适配的属性信息,确定渲染所述三维模型的场景信息;对所述场景信息进行封装得到场景文件;将所述场景文件上传至服务端,供所述服务端响应于Web端的访问操作,以传输至Web端进行3D效果展示。本技术方案,能够把文件导入到Unity3D目录中直接使用,无需安装,解决了Unity3D端直接在Web端实时预览需要打包编译的缺陷,并可在Web端进行二次开发,为使用者提供便利。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种基于Unity3D的Web端3D效果同步方法的流程图;
图2是根据本发明实施例二提供的一种基于Unity3D的Web端3D效果同步方法的流程图;
图3是根据本发明实施例三提供的一种基于Unity3D的Web端3D效果同步装置的结构示意图;
图4是根据本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”“目标”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是根据本发明实施例一提供的一种基于Unity3D的Web端3D效果同步方法的流程图,本实施例可适用于对Unity3D的Web端进行3D效果同步的情况,该方法可以由基于Unity3D的Web端3D效果同步装置来执行,该基于Unity3D的Web端3D效果同步装置可以采用硬件和/或软件的形式实现,该基于Unity3D的Web端3D效果同步装置可配置于具有数据处理能力的电子设备中。如图1所示,该方法包括:
S110,将目标物体的三维模型导入到Unity3D引擎中,以对所述三维模型进行渲染。
本实施例的技术方案可以由发布端执行,发布端配置有Unity3D引擎;发布端与服务端连接,服务端连接有Web端。本实施例中通过Unity3D引擎对目标物体的三维模型进行渲染,并按照Web端的3D程序相适配的属性信息确定三维模型的场景信息,并对场景信息进行封装得到场景文件,将文件上传至服务端,则可以进行3D效果同步展示。本实施例的技术方案,能够把文件导入到Unity3D目录中直接使用,无需安装,解决了Unity3D端直接在web端实时预览需要打包编译的缺陷,并可在web端进行二次开发,为使用者提供便利。
其中,Unity3D引擎是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。其编辑器运行在Windows和Mac OSX下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8以及Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac所支持。
其中,目标物体可以是建筑物体或者是其他物体。三维模型是目标物体的多边形表示。本实施例中可以利用3dsmax对目标物体进行等价造型,获得虚拟世界的等价的三维物体,输出为fbx格式的文件。Unity3D引擎可以对目标物体的三维模型进行渲染。本实施例中的可以设置渲染模式为线性渲染;本实施例中可以通过使用PBR材质球、灯光、相机、贴图(在原木桌子上加图片)、环境光以及天空反射为三维模型调好效果。其中,PBR材质球可以理解为基于现实世界中的自然规律总结出来的一套物理材质渲染的材质球,可以在界面中模拟出物理属性,如金属,粗糙等属性,从而模拟建筑的真实性。例如,原木桌子,这个材质球可以用来得到刷漆后的桌子的效果。
本实施例中发布端通过将目标物体的三维模型导入到Unity3D引擎中,以对三维模型进行渲染。
S120,按照与Web端的3D程序相适配的属性信息,确定渲染所述三维模型的场景信息。
其中,3D程序可以通过ThreeJS得到。ThreeJS可以使用javascript来写3D程序。在浏览器端,WebGL是一个底层的标准,在这些标准被定义之后,Chrome以及Firefox之类的浏览器实现了这些标准。然后,就能通过JavaScript代码,在网页上实现三维图形的渲染了。ThreeJS则是封装了底层的图形接口,更容易来实现3D程序。属性信息可以包括阴影、灯光、相机以及相机焦点等信息。场景信息可以包括场景中的相机、灯光、环境光、阴影、反射以及相机焦点中的一种或者多种信息。
本实施例中发布端可以按照与Web端的3D程序相适配的属性信息如阴影、灯光、相机以及相机焦点等信息,确定渲染三维模型的场景中的相机、灯光、环境光、阴影、反射以及相机焦点中的一种或者多种信息。
S130,对所述场景信息进行封装得到场景文件。
其中,场景文件可以是对场景信息进行封装得到的。封装场景的信息可以包括但不限于模型、模型层级结构、模型标签、材质球、贴图、灯光、摄像机、环境光、反射贴图、粒子系统以及动画模块等信息。场景文件可以是Json类型格式的文件。
示例性的,本实施例中可以将场景信息中场景中的相机、灯光、环境光、阴影、天空盒、反射、材质球、模型引用、层级、标签、贴图引用、粒子系统、生长动画、UV动画以及切割动画信息封装为一个Json文件。
具体的,本实施例中通过遍历场景中的所有元素,记录模型的层级关系以及标签、记录网格的材质球引用、记录材质球的贴图引用、记录材质球的参数、记录动画参数、记录粒子参数、记录天空盒盒参数、记录反射信息参数以及记录环境光信息参数等元素,保存成一个Json文件库,从而得到场景文件。
本实施例中发布端可以对场景信息进行封装得到场景文件。
S140,将所述场景文件上传至服务端,供所述服务端响应于Web端的访问操作,以传输至Web端进行3D效果展示。
其中,服务端可以是CDN服务端。访问操作可以是用户通过Web端进行访问的操作。本实施例中发布端可以将封装得到的场景文件上传到服务端,以使服务端响应于Web端的访问操作,将场景文件传输到Web端进行3D效果展示。本实施例中在Web端供外部查看更加方便,Unity3D端调效果便捷。
示例性的,本实施例中上传场景信息内容,可以显示当前场景的名称,提供模型和贴图的可选项。如果场景文件是已经上传过的场景,可以在右侧状态栏显示在浏览器中预览。本实施例中还可以点击预览直接在浏览器上查看之前上传的场景效果。
本发明实施例的技术方案,通过将目标物体的三维模型导入到Unity3D引擎中,以对所述三维模型进行渲染;按照与Web端的3D程序相适配的属性信息,确定渲染所述三维模型的场景信息;对所述场景信息进行封装得到场景文件;将所述场景文件上传至服务端,供所述服务端响应于Web端的访问操作,以传输至Web端进行3D效果展示。本技术方案,能够把文件导入到Unity3D目录中直接使用,无需安装,解决了Unity3D端直接在Web端实时预览需要打包编译的缺陷,并可在Web端进行二次开发,为使用者提供便利。
实施例二
图2是根据本发明实施例二提供的一种基于Unity3D的Web端3D效果同步方法的流程图,本实施例以上述实施例为基础进行优化。具体优化为:按照与Web端的3D程序相适配的属性信息,确定渲染所述三维模型的场景信息,包括:读取Web端的3D程序的属性信息,并基于所述属性信息生成目标属性信息;对所述三维模型按照所述目标属性信息进行渲染,得到场景信息;将所述场景信息进行封装,得到场景文件。如图2所示,本实施例的方法具体包括如下步骤:
S210,将目标物体的三维模型导入到Unity3D引擎中,以对所述三维模型进行渲染。
S220,读取Web端的3D程序的属性信息,并基于所述属性信息生成目标属性信息。
其中,3D程序可以通过ThreeJS得到。属性信息可以包括阴影、灯光、相机、天空盒、动画系统以及相机焦点等信息。目标属性信息可以是基于Web端的3D程序的属性信息生成的与3D程序相匹配的属性信息。
本实施例中发布端读取Web端的3D程序的属性信息如阴影、灯光、相机、天空盒、动画系统以及相机焦点等信息,并基于读取到的属性信息生成3D程序匹配的阴影范围、阴影贴图的大小、相机、灯光、天空盒以及动画系统等目标属性信息。
S230,对所述三维模型按照所述目标属性信息进行渲染,得到场景信息。
其中,场景信息可以是对三维模型按照目标属性信息使用ThreeJs技术进行渲染得到的。本实施例中发布端对三维模型按照目标属性信息进行渲染,得到场景信息。
具体的,本实施例中可以根据ThreeJS参数要求编写程序输入参数上下左右前后参数,Unity3D端生成一个网格示意产生阴影区域的范围,输入参数贴图的长和宽,示意生成阴影贴图的大小。可以根据ThreeJS参数要求编写程序输入参数相机的对焦点,Unity3D端自动生成一个对焦点并记录位置信息,自动对焦对焦点。可以根据ThreeJS参数要求编写程序输入参数灯光的对焦点,Unity3D端自动生成一个对焦点并记录位置信息,自动对焦对焦点。可以根据ThreeJS参数要求生成一个球形状模型,并能贴上天空盒材质,舍弃掉Unity3D自身的天空盒。切割动画可以根据ThreeJS参数要求,输入参数是否循环、动画类型、切割片的颜色信息和透明度、延迟、初始高度、结束高度、持续时间以及针对的网格渲染对象。爆炸动画可以根据ThreeJS参数要求,输入参数网格渲染对象、延迟、爆炸类型、是否循环、循环次数、循环延迟、是否可以反向、反向持续时间以及反向延迟等。
此外,本实施例中可以按类型cubmap和texture2d场景中的图片分组,在texture2d中按使用类型给图片分组,根据组Unity3D端可自定义是否使用webp压缩,并可在0-100中选择质量。压缩后的图片在后续上传到服务器中将替换为新的图片路径。
S240,将所述场景信息进行封装,得到场景文件。
本实施例中发布端对三维模型按照目标属性信息进行渲染,得到场景信息,将得到的场景信息进行封装得到场景文件。
S250,将所述场景文件上传至服务端,供所述服务端响应于Web端的访问操作,以传输至Web端进行3D效果展示。
本发明实施例的技术方案,通过将目标物体的三维模型导入到Unity3D引擎中,以对所述三维模型进行渲染;读取Web端的3D程序的属性信息,并基于所述属性信息生成目标属性信息;对所述三维模型按照所述目标属性信息进行渲染,得到场景信息;对所述场景信息进行封装得到场景文件;将所述场景文件上传至服务端,供所述服务端响应于Web端的访问操作,以传输至Web端进行3D效果展示。本技术方案,能够把文件导入到Unity3D目录中直接使用,无需安装,解决了Unity3D端直接在Web端实时预览需要打包编译的缺陷,并可在Web端进行二次开发,为使用者提供便利。
在本实施例中,可选的,所述场景信息包括:场景中的相机、灯光、环境光、阴影、反射以及相机焦点中的一种或者多种信息。
本实施例中的场景信息可以包括场景中的相机、灯光、环境光、阴影、反射以及相机焦点中的一种或者多种信息。
示例性的,本实施例中场景信息可以包括:场景中所有类型的基本信息包括位置、旋转以及缩放;场景中的灯光信息包括但不限于灯光类型、颜色、强度、范围、阴影类型、对焦点、阴影贴图的范围、贴图的大小、光晕的贴图、大小以及距离等;场景的相机信息包括但不限于投影类型、近裁剪、远裁剪、视角以及对焦点等;场景中的渲染信息包括但不限于天空盒的贴图、背景颜色、渲染颜色、是否启用雾效、雾效颜色、雾效类型、环境光类型、环境光颜色、环境光强度、游戏视图面板的分辨率大小、反射贴图的贴图以及强度等;场景的模型信息包括但不限于模型的名字、唯一编码、组级结构以及层级结构等;场景的网格渲染信息包括但不限于相对于模型根节点的路径、是否显示、烘焙贴图编码、uv信息、是否接受阴影、是否投射阴影、标签、缩放和偏移量以及材质球编码列表等;场景中的粒子系统信息包括但不限于贴图、持续时间、是否循环、开始时间、开始速度、开始角度、最大粒子数、半径、缩放、线性力、渲染模式、颜色以及自发光颜色等;场景信息中的流光动画信息包括但不限于贴图编码、偏移、缩放、宽度、是否循环、是否是世界坐标、颜色以及自发光颜色等。场景中的切割动画包括但不限于是否循环、动画类型、切割片的颜色信息和透明度、延迟、初始高度、结束高度、持续时间以及针对的网格渲染对象等;场景中的爆炸动画包括但不限于针对的网格渲染对象、延迟、爆炸类型、是否循环、循环次数、循环延迟、是否可以反向、反向持续时间以及反向延迟等。
本方案通过这样的设置,可以将场景中的所有元素进行封装,得到场景文件,从而使Web端进行3D效果同步展示,使展示效果更好。
在本实施例中,可选的,读取Web端的3D程序的属性信息,并基于所述属性信息生成目标属性信息,包括:读取Web端的3D程序的属性信息,并识别所述属性信息是否为Unity3D引擎中包括的渲染信息;若是,则基于所述属性信息生成目标属性信息;若否,则创建与所述Web端的3D程序对应的新增属性,并对所述新增属性进行属性赋值,以生成目标属性信息。
其中,3D程序可以通过ThreeJS得到。渲染信息可以是Unity3D引擎中包括的渲染信息。新增属性可以是Unity3D引擎中包括的渲染信息中没有包括的属性信息。属性赋值可以是对新建属性的参数进行赋值。
示例性的,本实施例中可以读取Web端的3D程序的属性信息,识别到Web端的3D程序的属性信息中有一个目标点信息,而Unity3D引擎中包括的渲染信息中没有这个目标点信息,就需要构建这个Web端的3D程序对应的目标点信息,通过这样做到想要表达的效果和web端显示的效果是相同的。
本实施例中发布端可以通过读取Web端的3D程序的属性信息,并识别属性信息是否为Unity3D引擎中包括的渲染信息;若识别的属性信息为Unity3D引擎中包括的渲染信息,则基于属性信息生成目标属性信息;若识别的属性信息不是Unity3D引擎中包括的渲染信息,则创建与Web端的3D程序对应的新增属性,并对新增属性进行属性赋值,以生成目标属性信息。
本方案通过这样的设置,通过识别属性信息是否为Unity3D引擎中包括的渲染信息,将不包括的属性信息进行重构,从而两端场景渲染一致,使想要表达的效果和web端显示的效果是相同的。
在本实施例中,可选的,所述方法还包括:将所有目标物体的材质信息进行封装,得到资源文件;以及,将所有目标物体的贴图信息进行封装,得到贴图文件。
其中,材质信息可以理解为材质球信息,可以是场景中所引用的所有目标物体的材质信息。每个目标物体都有的材质球信息。例如,目标物体是一栋建筑,可以分为很多层,每一层的每一个设备都是单独的一个模型,每一个模型就需要自己带一个材质球。资源文件可以理解为将所有目标物体的材质信息进行封装得到的Json文件。贴图信息可以是场景中所引用的所有目标物体的贴图信息。贴图文件可以理解为将所有的目标物体的贴图信息进行封装得到的Json文件。
本实施例中可以根据读取中的场景元素信息,将贴图文件封装成一个Json文件库,贴图存在唯一编码;将材质球文件封装成一个Json文件库,材质球存在唯一编码。将场景中模型的引用封装成一个列表存入基本信息里,模型的引用材质球和材质球引用的贴图均为材质球的唯一编码或者贴图的唯一编码。
本实施例中发布端可以将所有目标物体的材质信息进行封装,得到资源文件;以及将所有目标物体的贴图信息进行封装,得到贴图文件。
本方案通过这样的设置,通过得到资源文件以及贴图文件,保证了材质的唯一性以及贴图的唯一性。
在本实施例中,可选的,将所有目标物体的材质信息进行封装,得到资源文件,包括:识别所有目标物体的材质信息是否存在已上传材质信息;若存在已上传材质信息,则构建与所述已上传材质信息之间的材质引用信息;将未上传的材质信息和所述材质引用信息进行封装,得到资源文件。
其中,已上传材质信息可以理解为已经上传到服务端的目标物体的材质信息。材质引用信息可以通过构建目标物体的材质信息与已上传的材质信息之间的引用信息。资源文件可以理解为将未上传的材质信息和材质引用信息进行封装得到的Json文件。
本实施例中发布端可以识别所有目标物体的材质信息是否存在已上传材质信息;若存在已上传材质信息,则构建目标物体与已上传材质信息之间的材质引用信息;将未上传的材质信息和材质引用信息进行封装,从而得到资源文件。
本方案通过这样的设置,可以有效避免文件的大量重复,能够减小文件大小,可以快速上传到服务端,节约时间,方便快捷。
在本实施例中,可选的,将所有目标物体的贴图信息进行封装,得到贴图文件,包括:识别所有目标物体的贴图信息是否存在已上传贴图信息;若存在已上传贴图信息,则构建与所述已上传贴图信息之间的贴图引用信息;将未上传的贴图信息和所述贴图引用信息进行封装,得到贴图文件。
其中,已上传贴图信息可以理解为已经上传到服务端的目标物体的贴图信息。贴图引用信息可以是通过构建目标物体与已上传贴图信息之间的引用信息。贴图文件可以理解为将未上传的材质信息和材质引用信息进行封装得到的Json文件。此外,本实施例中还可以将场景中的贴图文件编码为webp格式。
本实施例中发布端可以识别所有的目标物体的贴图信息是否存在已上传贴图信息;若存在已上传贴图信息,则构建目标物体与已上传贴图信息之间的贴图引用信息,将未上传的贴图信息和贴图引用信息进行封装,从而得到贴图文件。
本方案通过这样的设置,可以有效避免文件的大量重复,能够减小文件大小,可以快速上传到服务端,节约时间,方便快捷。
本实施例中在上传场景文件时可以勾上模型和贴图的可选项,点击上传到CDN服务器,就可以自动将场景中的贴图文件编码为webp格式,上传面板将显示每一个资源文件的进度,待到所有的资源文件上传完成,弹出上传成功面板,则可在右侧状态栏点击浏览器预览在浏览器中查看。
实施例三
图3是根据本发明实施例三提供的一种基于Unity3D的Web端3D效果同步装置的结构示意图,该装置可执行本发明任意实施例所提供的基于Unity3D的Web端3D效果同步方法,具备执行方法相应的功能模块和有益效果。所述装置配置于发布端,所述发布端配置有Unity3D引擎;所述发布端与服务端连接,所述服务端连接有Web端;如图3所示,该装置包括:
模型导入模块310,用于将目标物体的三维模型导入到Unity3D引擎中,以对所述三维模型进行渲染。
场景信息确定模块320,用于按照与Web端的3D程序相适配的属性信息,确定渲染所述三维模型的场景信息。
场景文件得到模块330,用于对所述场景信息进行封装得到场景文件。
场景文件上传模块340,用于将所述场景文件上传至服务端,供所述服务端响应于Web端的访问操作,以传输至Web端进行3D效果展示。
可选的,所述场景信息确定模块320,包括:
目标属性信息生成单元,用于读取Web端的3D程序的属性信息,并基于所述属性信息生成目标属性信息;
场景信息得到单元,用于对所述三维模型按照所述目标属性信息进行渲染,得到场景信息;
可选的,所述场景信息包括:场景中的相机、灯光、环境光、阴影、反射以及相机焦点中的一种或者多种信息。
可选的,目标属性信息生成单元,具体用于:
读取Web端的3D程序的属性信息,并识别所述属性信息是否为Unity3D引擎中包括的渲染信息;
若是,则基于所述属性信息生成目标属性信息;
若否,则创建与所述Web端的3D程序对应的新增属性,并对所述新增属性进行属性赋值,以生成目标属性信息。
可选的,所述装置还包括:
封装模块,用于将所有目标物体的材质信息进行封装,得到资源文件;以及,将所有目标物体的贴图信息进行封装,得到贴图文件。
可选的,所述封装模块,具体用于:
识别所有目标物体的材质信息是否存在已上传材质信息;
若存在已上传材质信息,则构建与所述已上传材质信息之间的材质引用信息;
将未上传的材质信息和所述材质引用信息进行封装,得到资源文件。
可选的,所述封装模块,具体用于:
识别所有目标物体的贴图信息是否存在已上传贴图信息;
若存在已上传贴图信息,则构建与所述已上传贴图信息之间的贴图引用信息;
将未上传的贴图信息和所述贴图引用信息进行封装,得到贴图文件。
本发明实施例所提供的一种基于Unity3D的Web端3D效果同步装置可执行本发明任意实施例所提供的一种基于Unity3D的Web端3D效果同步方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4是根据本发明实施例四提供的一种电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如基于Unity3D的Web端3D效果同步方法。
在一些实施例中,基于Unity3D的Web端3D效果同步方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的基于Unity3D的Web端3D效果同步方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于Unity3D的Web端3D效果同步方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
- 基于Unity3D的Web端3D效果同步方法、装置、设备及介质
- 基于unity3D平台的复杂场景与后台数据映射同步方法及装置