一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

三维展示物品的方法及相关设备与流程

2021-12-04 02:00:00 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种三维展示物品的方法及相关设备。


背景技术:

2.文物展品具备很高的历史价值和美学价值,在形式手法美术史料等方面都具有重大研究意义。然而传统的展馆在展示文物时对时间、空间均有很高的要求,珍贵文物更是难以观摩细节。目前的在线展品也是以二维图片为主,使得使用性受到很大限制。


技术实现要素:

3.本公开提出一种三维展示物品的方法及相关设备。
4.本公开第一方面,提供了一种三维展示物品的方法,包括:
5.确定目标物品;
6.获取所述目标物品对应的三维模型和三维展示参数;以及
7.基于所述三维模型和所述三维展示参数,对所述目标物品进行三维展示。
8.本公开第二方面,提供了一种终端设备,包括一个或者多个处理器、存储器;和一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面所述的方法的指令。
9.本公开第三方面,提供了一种三维展示物品的系统,包括:
10.如第二方面所述的终端设备,被配置为:向服务器发送目标物品的三维展示物品请求;以及
11.服务器,被配置为:根据所述三维展示物品请求向所述终端设备返回所述目标物品的三维展示代码,以使所述终端设备运行所述三维展示代码以展示所述目标物品的三维画面。
12.本公开第四方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面所述的方法。
13.本公开第五方面,提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如第一方面所述的方法。
14.本公开提供的三维展示物品的方法及相关设备,通过对物品进行三维展示,能够更好地展示物品细节,有利于参观者观察物品,用户体验更好。
附图说明
15.为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1a示出了本公开实施例所提供的示例性系统的示意图。
17.图1b示出了根据本公开实施例的一个示例性场馆400的示意图。
18.图1c示出了根据本公开实施例的一种示例性界面的示意图。
19.图1d示出了根据本公开实施例的另一种示例性界面的示意图。
20.图1e示出了根据本公开实施例的又一种示例性界面的示意图。
21.图1f示出了根据本公开实施例的另一种示例性界面的示意图。
22.图1g示出了根据本公开实施例的再一种示例性界面的示意图。
23.图2示出了本公开实施例所提供的示例性方法的流程示意图。
24.图3示出了本公开实施例所提供的一种更为具体的终端设备的硬件结构示意图。
具体实施方式
25.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
26.需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
27.图1a示出了本公开实施例所提供的示例性系统100的示意图。
28.如图1a所示,系统100可以包括服务器200和多个终端设备300a~300n。服务器200的数量可以是一台或多台,当服务器200的数量为多台时,可以采用分布式架构。终端设备300a~300n可以用于对物品进行三维展示,并可以是各种类型的终端设备。例如,终端设备300a可以是移动终端(例如,手机),终端设备300b可以是个人电脑(pc),终端设备300n可以是笔记本电脑(laptop)。服务器200与终端设备300a~300n之间可以通过有线网络或无线网络连接并实现数据交互。
29.在一些实施例中,系统100可以应用于博物馆等场景,用于对博物馆所展览的文物进行三维展示。终端设备300a~300n可以是设置在场馆内部或场馆周围的供参观者使用的终端设备。
30.图1b示出了根据本公开实施例的一个示例性场馆400的示意图。
31.如图1b所示,该场馆400中的各展馆和中心展厅中分别展示了物品402~420。其中,例如,可以在场馆400的中心展厅中设置终端设备300b以供参观者使用,参观者可以在终端设备300b上观看场馆400中所展览的物品的三维画面以及该物品的相关信息。又例如,参观者500可以通过随身携带终端设备300a来观看场馆400中所展览的物品的三维画面以及该物品的相关信息。该终端设备300a,例如,可以是参观者500自己的手机,也可以是场馆400所提供的讲解器,等等。
32.在一些实施例中,该系统100可以基于three.js来实现。例如,可以编写用于实现
基于three.js的三维展示物品的方法的代码并部署在服务器200中,以供终端设备300a~300n从服务器200中获取该代码并加载,进而在终端设备300a~300n上通过浏览器实现物品的三维展示。该代码可以包括用于实现三维展示的各功能的代码以及实现各功能所需的配置参数等。three.js是基于webgl封装的三维引擎,基于three.js实现三维展示物品的方法的代码,使用javascript函数库或api在浏览器中创建、展示复杂的三维计算机图形,可以直接通过浏览器来运行,不需要使用传统的独立应用程序或插件等,实现更为方便。
33.可以理解的是,通过将三维展示物品的方法的代码部署在服务器200,任意终端设备均可以通过在浏览器中输入相应的获取代码的地址来从服务器200中获取该代码,从而更具备兼容性,适用范围广。但在一些场景下,可能需要针对单独的终端设备进行部署,因此可以将代码保存在终端设备本地而不需要从服务器200中获取。
34.在一些实施例中,服务器200可以进一步包括数据库,该数据库中可以存储物品的三维模型。例如,当系统100应用于博物馆场景时,该数据库中可以存储该博物馆展览的所有展品的三维模型。该三维模型可以通过三维建模软件等工具来完成建模。在一些实施例中,可以将物品拆分为多个部分,然后对每个部分进行分别建模,得到每个部分对应的三维子模型,进而得到物品的三维模型。例如,对于瓷器瓶,若其具有瓶身、瓶盖、左侧瓶把和右侧瓶把共四部分,可以在建模时对四个部分分别建模得到子模型,然后将四个子模型组合成该瓷器瓶的三维模型。这样,在后续进行展示时可以基于三维子模型来拆分展示该物品,从而参观者可以观察到物品的更多细节。建模完成的模型,例如,可以是obj格式。
35.参观者在进入场馆400之后,可以利用设置在场馆400中的终端设备300b来浏览场馆400中展览的物品402~420的三维图像和相关信息,或者,利用自己的手机300a,随着行走路线依次浏览物品402~420的三维图像和相关信息。
36.在初始状态下,终端设备300a~300n中可以没有展示任何场馆400中展览的物品402~420的三维图像。参观者可以通过在终端设备300a~300n的浏览器中输入相应的地址(例如,网页地址)来向服务器200发送目标物品的三维展示物品请求。
37.服务器200可以根据该三维展示物品请求向相应的终端设备返回该目标物品的三维展示代码(例如,html代码),以使该终端设备运行该三维展示代码并在浏览器中运行,从而在浏览器中展示该目标物品的三维画面。
38.根据实际的终端设备部署情况的不同以及终端设备的初始状态的设置方式的不同,可以通过输入不同的地址来在初始状态下展示的不同的初始画面。
39.例如,若在场馆400中仅在特定位置设置了终端设备(例如,图1b的设置在中心展厅的终端设备300b),该终端设备与展品之间没有一一对应关系,因此,初始状态下终端设备300b通过在浏览器输入相应地址(例如,3d.museum.com)向服务器200发送三维展示物品请求时,服务器200返回的代码在终端设备300b的浏览器中运行之后展示的初始画面是场馆400的示意图。图1c示出了根据本公开实施例的一种示例性界面600的示意图。如图1c所示,在本实施例中,初始画面示出了一种场景地图,该场景地图展示的是场馆400的画面(该画面可以是二维的或三维的)。在服务器200返回的代码中可以配置各展品402~420的坐标和图标,从而在初始画面的不同位置显示不同展品,如图1c所示。
40.在一些实施例中,也可以在浏览器中设置默认地址为访问服务器200以获取进行三维展示物品的代码的地址,从而参观者通过启动浏览器的方式就能自动获取代码以在终
端设备上展示初始画面。在本实施例中,若参观者需要进一步观看目标物品的三维画面,则需要在界面600中选中对应的目标物品,进而展示对应的三维画面。终端设备300b在展示界面600之后,可以监听是否发生目标物品选中事件(例如,参观者通过鼠标双击了场景地图中的某个展品),若监听到目标物品选中事件,则可以基于该目标物品选中事件确定目标物品,进而展示该目标物品的三维画面。在一些实施例中,终端设备300b在展示界面600之后,还可以监听是否发生目标物品点击事件(例如,参观者通过鼠标单击了场景地图中的某个展品),若监听到目标物品点击事件,则可以基于该目标物品点击事件确定目标物品,进而在界面600中展示该目标物品的相关信息6002(该信息可以从服务器200中获取),如图1d所示。展示该相关信息6002的弹框的样式可以自定义设置。
41.又例如,若终端设备是与展品一一对应的,比如,每个展品的旁边都设置一台终端设备以供对该展品进行三维展示,那么,初始状态下终端设备通过在浏览器输入相应地址(例如,3d.museum.com/展品1)向服务器200发送目标物品(展品1)的三维展示物品请求时,服务器200返回的代码在终端设备300b的浏览器中运行之后展示的初始画面是展品1的示意图。图1e示出了根据本公开实施例的一种示例性界面602的示意图。如图1e所示,在本实施例中,初始画面中展示的是目标物品的三维画面。在一些实施例中,也可以在浏览器中设置默认地址为访问服务器200以获取进行三维展示物品的代码的地址,从而参观者通过启动浏览器的方式就能自动获取代码以在终端设备上展示展品1的三维画面。可以理解的是,在这种实施例中,每个终端设备与展品一一对应,因此,每个终端设备中的浏览器默认地址会因为展品不同存在区别,例如,展品2对应的终端设备的浏览器默认地址则可以是,例如,3d.museum.com/展品2。
42.在一些实施例中,参观者500还可以使用自己携带的移动终端300a来展示物品的三维画面。例如,目标物品的展柜上可以设置条形码或二维码等标识,该标识中具有该目标物品对应的代码地址(例如,3d.museum.com/展品1),参观者500利用移动终端300a扫描该标识,从而获取到该代码地址,并向服务器200发送该目标物品的三维展示物品请求。服务器200则可以根据该目标物品的标识中携带的地址信息,确定目标物品,并向终端设备300b返回该目标物品对应的代码。
43.又例如,终端设备300a可以通过在浏览器中输入三维展示物品对应的地址(例如,3d.museum.com)来进入初始画面,然后自动获取终端设备的定位信息(例如,gps信息或者基于室内定位方式(蓝牙、wifi等)确定的定位信息),接着向服务器200发送携带该定位信息的三维展示物品请求。服务器200则可以根据该定位信息,确定该终端设备在场景地图中的位置,从而根据该终端设备在场景地图中的位置确定目标物品,并向终端设备300a返回该目标物品对应的代码,以使终端设备300a展示目标物品的三维画面。
44.终端设备300a或300b在获取到对应的代码之后,利用浏览器运行该代码,开始三维展示。在确定目标物品之后,终端设备300a或300b可以从服务器200的数据库中获取目标物品对应的三维模型,并基于代码中预置的三维展示参数,对目标物品进行三维展示,如图1e所示。
45.在一些实施例中,三维展示物品的方法是基于three.js实现时,该三维展示参数可以包括渲染器、场景、相机、灯光等参数。以下示出了该代码的一部分的示例。
[0046][0047][0048]
从上述示例可以看出,代码中的可配置项可以包括:
[0049]
modelurl:模型url,根据后缀判断模型类型,支持fbx、obj、gltf等主流模型格式;
[0050]
scale:缩放比例,不传默认为1;
[0051]
showaxes:是否显示坐标轴,默认不显示;
[0052]
pointlighthelper:是否显示辅助点光源;
[0053]
bgcolor:背景色,根据页面需要自行配置,默认为p2页幻灯片展示的背景色;
[0054]
cameraposition:摄像机位置,快速调整初始视角;
[0055]
isfixed:可以固定视角,不允许用户拖拽观察模型,默认可以自行换角度观看;
[0056]
showicons:展示icon,传入坐标和图标即可在对应位置展示。可附加展示信息,比如点击图标显示弹框,弹框显示设备信息。
[0057]
可以理解的是,上述示例仅是示意性的,根据实际需求不同,所需的参数是可以变化的。
[0058]
终端设备300a或300b可以通过代码所配置的组件来传入基本参数即可在终端设备300a或300b的浏览器页面中快速展示三维模型。其中,除模型地址外,其余参数可以采用默认配置,也可自行配置。
[0059]
终端设备300a或300b在加载并运行服务器200返回的代码之后,可以使用objloader读取三维模型数据,使用mtlloader加载模型材质,并预置了渲染器、场景、相机、
灯光等参数。场景参数中可以预置环境光参数,以保证物品可正常显示,同时可以预置点光源参数,便于更真实模拟物品的材质显示效果。目标物品的三维模型的初始位置可以是放置于场景中心点处。
[0060]
参观者可以在终端设备300a或300b上对三维展示的物品进行进一步操作。
[0061]
在一些实施例中,例如,参观者可以对展示在界面602中的物品的三维模型的角度、大小、位置进行调整。例如,可以引入orbitcontrols相机控件对场景进行缩放、平移、旋转操作,使参观者可以将三维模型调整至所需角度和位置进行观察。借助requestanimationframe模块,可以改变三维模型的rotation.y参数以使三维模型缓慢围绕y轴旋转,使三维模型的各个角度被展现。
[0062]
在一些实施例中,如图1e所示,终端设备300a或300b可以在界面602的特定位置展示一些图标以提示参观者可以通过调整该图标来对三维模型进行调整。例如,如图1e所示,展品的三维模型旁边可以有弧形箭头图标6022,以提示参观者通过滑动调节该图标6022即可以调节三维模型的角度。又例如,展品的三维模型旁边可以有十字箭头图标6024,以提示参观者通过滑动调节该图标6024即可以调节三维模型的位置。再比如,展品的三维模型旁边可以有缩放图标6026,以提示参观者通过滑动调节该图标6026即可以调节三维模型的大小。终端设备300a或300b的浏览器可以监听是否发生针对特定图标的滑动调节物品事件,来判断参观者是否调节了这些图标。
[0063]
若终端设备300a或300b的浏览器监听到发生滑动调节物品事件,则可以基于该事件确定其滑动起点和滑动终点,并根据该滑动起点和滑动终点确定对应的相机参数调整量,然后根据该相机参数调整量调节相应的相机参数,以实现三维模型的角度、位置、大小的调节。
[0064]
在一些实施例中,例如,参观者可以对展示在界面602中的物品的三维模型的灯光进行调整。
[0065]
在一些实施例中,如图1e所示,终端设备300a或300b可以在界面602的特定位置展示一些图标以提示参观者可以通过调整该图标来对三维模型的灯光进行调整。例如,如图1e所示,展品的三维模型的灯光旁边可以有横向箭头图标6028,以提示参观者通过滑动调节该图标6028即可以调节三维模型的点光源的x轴。又例如,展品的三维模型旁边可以有纵向箭头图标6030,以提示参观者通过滑动调节该图标6030即可以调节三维模型的点光源的y轴。再比如,展品的三维模型旁边可以有斜向箭头图标6032,以提示参观者通过滑动调节该图标6032即可以调节三维模型的点光源的z轴。又比如,展品的三维模型旁边可以有纵向箭头图标6034,以提示参观者通过滑动调节该图标6034即可以调节三维模型的点光源的强度。终端设备300a或300b的浏览器可以监听是否发生针对特定图标的滑动调节物品事件,来判断参观者是否调节了这些图标。箭头图标对应的最大值、最小值,每次拖动增减的数值,已预设为适配当前场景。
[0066]
若终端设备300a或300b的浏览器监听到发生滑动调节灯光事件,则可以基于该滑动调节灯光事件来确定对应的滑动起点和滑动终点,并根据该滑动起点和滑动终点确定对应的灯光参数调整量,然后根据该灯光参数调整量调节灯光参数,以实现点光源的x、y、z轴和强度的调节。
[0067]
在一些实施例中,以终端设备300b通过鼠标操作为例,可以引入表示二维向量的
类vector2,const mouse=new three.vector2(),来记录鼠标位置相对于模型展示区的坐标(x,y)。x和y方向的取值范围可以是

1到 1,公式为mouse.x=(<鼠标相对于可视区域的横坐标>/<可视区域的宽>)
×2‑
1,mouse.y=

(<鼠标相对于可视区域的纵坐标>/<可视区域的高>)
×
2 1。通过监听鼠标移动事件,假设获取到的展示模型区域对应的页面元素节点为图标6022对应的节点,通过getboundingclientrect()获取其相对于浏览器视窗的位置。鼠标位置相对于浏览器页面的水平坐标与图标6022相对于浏览器视窗水平位置相减可得鼠标相对于可视区域的横坐标,同理鼠标位置相对于浏览器页面的纵坐标与图标6022相对于浏览器视窗垂直位置相减可得鼠标相对于可视区域的横坐标。采用这种方式,可以计算出鼠标的滑动起点和滑动终点,进而计算得到相应的参数调整量。
[0068]
在一些实施例中,终端设备300a或300b还可以对三维模型的特定部位进行文字信息展示。例如,终端设备300a或300b可以通过监听三维模型的特定部位是否发生点击事件(或鼠标移入事件)来判断是否发生目标物品部位选中事件,进而确定是否需要对物品部位的文字信息进行展示。
[0069]
若终端设备300a或300b的浏览器监听到三维模型的特定部位发生目标物品部位选中事件,基于该目标物品部位选中事件确定该目标物品上的目标选中部位,然后根据目标选中部位,确定对应的文字介绍信息,最后在该目标选中部位处展示该文字介绍信息。图1f示出了根据本公开实施例的另一个示例性界面602的示意图。如图1f所示,当目标物品的瓶身被点击后,界面602中显示该部位对应的文字介绍信息6038。
[0070]
在一些实施例中,以终端设备300b通过鼠标操作为例,当鼠标移入物品的三维模型的特定部位所在区域时,即监测到鼠标移入事件,进而显示对应部分的文字介绍信息(或文字讲解信息)。在一些实施例中,可以设置初始不可见的页面元素命名textbox,当鼠标移入物品的三维模型的特定部位所在区域时,可以根据对应的三维子模型的名称查找出应当对应显示的文字介绍信息,显示textbox并将文字介绍信息设为textbox的内容,如图1f所示。
[0071]
此外,在一些实施例中,若终端设备300a或300b的浏览器监听到三维模型的特定部位发生目标物品部位选中事件(或鼠标移入事件),还可以通过突出显示该部位的发光边缘的方式对该部位进行突出显示,从而提示参观者当前选中的物品的部位所在。以终端设备300b通过鼠标操作为例,鼠标移入的物体突出显示,可以通过引入three.js的后期处理通道postprocessing来实现。同时可以选择使用outlinepass轮廓通道为选中物体的边缘添加发光效果。根据显示效果,可以对边缘发光的强度、闪烁频率、发光颜色进行了调整。
[0072]
此外,当鼠标移出后,可以再次隐藏textbox,并将发光效果的目标数组清空。
[0073]
在一些实施例中,终端设备300a或300b还可以对三维模型进行拆分展示。例如,如图1e所示,终端设备300a或300b可以在界面602的特定位置显示拆分展示图标6036以提示参观者可以通过点击该图标6036来对三维模型进行拆分展示。终端设备300a或300b可以通过监听该图标6036是否被鼠标点击来确定参观者是否发出了针对所述目标物品的拆分展示指令。
[0074]
若终端设备300a或300b的浏览器监听到该图标6036被点击的事件,则可以根据目标物品的多个部分的三维子模型(建模时形成),拆分展示该目标物品的多个部分。
[0075]
在采用three.js实现系统100的示例中,在建模时,根据可以根据物品的名称对其
三维模型的网格(mesh)进行命名,例如,加入前缀“object_n”(n代表物品的编号,可以是从1开始的自然数并依次分配给各物品)来指代特定物品,便于在three.js中快速识别哪些部分属于该物品的三维模型并参与拆解。同时,可以加入后缀,如“_top”、“_left”、“_right”、“_middle”、“_bottom”等为各部分的三维子模型的网格(mesh)进行命名,便于基于该后缀来将三维模型进行拆分。以图1e所示的瓷器为例,上述分类满足基本需求,例如,后缀“_top”、“_left”、“_right”、“_middle”分别对应瓷器盖、左侧把手、右侧把手、瓶身。可以通过设置数组modellist来储存所有模型的网格(mesh),在用objloader加载模型时递归遍历场景中的所有元素,当元素的名称带有“object_n”前缀时,则加入modellist数组。
[0076]
在一些实施例中,系统100中可以预置两种拆解模型的方案,分别对应有瓶盖瓷器和无瓶盖瓷器。因此,在进行拆解时,终端设备300a或300b可以先确定待拆解的目标物品的类型,例如,可通过是否有“_top”后缀名的模型网格分辨拆解模型的方案。
[0077]
若目标物品的类型为第一类型(例如,有瓶盖瓷器),可以将目标物品拆分为第一数量的多个部分(例如,上、中、下三个部分),若目标物品的类型为第二类型(例如,无瓶盖瓷器),可以将目标物品拆分为第二数量的多个部分(例如,上、下两个部分)。
[0078]
在一些实施例中,以在浏览器模型展示区域达到最佳显示效果为标准,两种拆解方案的各部分的最终位置不同。有”_top”后缀名的有瓶盖瓷器在展示中心区均等拆分为上中下三部分,无该后缀名的无瓶盖瓷器则拆分为上下两部分,根据实际显示的效果调整好最终位置的y值。
[0079]
可以理解的是,若目标物品还存在第三类型,例如具有两侧把手的有瓶盖瓷器,则还可以将把手也拆分,根据后缀名即可完成拆分。同理还可以相应调整对应模型网格在水平方向的位置。图1g示出了将具有两侧把手的有瓶盖瓷器拆分为四个部分的示意图。
[0080]
在拆分的过程中,为了使拆分动作更加顺畅,可以引用javascript中的一个补间动画库tweenjs实现各部分位置变化的自然过渡。通过封装移动函数(move)来实现该过渡,移动函数中的过渡时间,例如,默认为800毫秒,即从当前位置移动到目标位置需经过800毫秒。例如,函数参数可以是:被移动的物件obj以及表示坐标的对象position,格式如{x:10,y:10,z:10},表示该物体被移动至(10,10,10)处。原始值为0时可不传入原始位置坐标的参数,默认原始位置坐标为(0,0,0)。例如,若将瓷器盖从(0,0,0)向上移动5单位,传入终端设备300a或300b的move函数的position参数只需为{y:5}。
[0081]
在一些实施例中,在已经拆分的模型中,参观者还可以进一步地对各拆分部分进行调整。例如,如图1g所示,终端设备300a或300b可以在界面602的特定位置显示相应的图标以提示参观者可以通过滑动调节该图标来对三维模型已经拆分的各部分分别进行调整。
[0082]
由于拆分后的各部分占据了界面602的较大空间,针对每个部分均显示调整图标会显得界面602过于拥挤,也难以摆布数量较多的图标。因此,在一些实施例中,可以通过监听特定的部分是否发生鼠标移入事件来确定当前选中的部分,进而为该部分显示相应的图标。例如,如图1g所示,假设当前鼠标移入了瓶身,终端设备300a或300b监听到该事件,则可以通过浏览器展示用于调整瓶身部分的角度的弧形箭头图标6040、用于调整瓶身部分的位置的十字箭头图标6042、用于调整瓶身部分的大小的缩放图标6044。
[0083]
进一步地,与调整三维模型的整体类似地,终端设备300a或300b可以通过监听图标上的滑动事件来对瓶身部分进行相应的调整,在此不再赘述。类似地,针对左侧把手、右
侧把手、瓶盖,均可以采用该方式来实现具体的调整,在此不再赘述。
[0084]
在一些实施例中,可以引入光线投射raycaster,用于在三维空间中计算鼠标移过了什么物体。通过摄像机和鼠标位置更新射线,计算物体和射线的焦点。根据模型拆解步骤所述,模型网格存在modellist中,因此,可以根据modellist中的模型网格来计算物体与射线的焦点。
[0085]
在一些实施例中,与三维模型整体展示时类似地,被拆分的部分在监测到鼠标移入事件时也可以相应展示文字介绍信息6048,如图1g所示。同时,还可以对该被拆分的部分进行突出显示。具体工作原理与三维模型整体展示时类似,在此不再赘述。
[0086]
在一些实施例中,终端设备300a或300b还可以对拆分展示的三维模型再次进行合并展示。例如,如图1g所示,终端设备300a或300b可以在界面602的特定位置显示合并展示图标6046以提示参观者可以通过点击该图标6046来对多个三维子模型进行合并展示。终端设备300a或300b可以通过监听该图标6046是否被鼠标点击来确定参观者是否发出了针对所述目标物品的合并展示指令。
[0087]
若终端设备300a或300b的浏览器监听到该图标6046被点击的事件,则可以根据目标物品的多个部分的三维子模型(建模时形成)的初始位置,合并展示该目标物品的多个部分。例如模型合并时,可以遍历modellist中的所有模型网格,调用move函数传入各元素以及拆解前的初始位置,例如{x:0,y:0,z:0},然后完成合并。合并后的界面参考图1e或图1f所示。
[0088]
从上述实施例可以看出,本公开实施例提供的三维展示物品的方法及相关设备,可以实现历史文物或珍贵展品的全方位展示,参观者可从任意角度观看展品细节,根据个人偏好调整灯光、场景等达到最适观看效果。同时提供拆解合并功能便于详细了解展品内部及零件间组合方式。此外,还提供整体的文字讲解,鼠标移入各部件也可显示对应的细节介绍。本公开实施例提供的三维展示物品的方法及相关设备,使观者可在线欣赏学习展品。
[0089]
本公开实施例提供的三维展示物品的方法及相关设备,在线三维展示展品模型,借助分解合并模型及调整场景等方式使展品细节最大化呈现,从而解决观展受时间空间限制及无法深入学习细节问题。参观者可随意转动模型观看细节;根据实际需要调整灯光的位置、强度、颜色,以达到最适观看效果;模型拆解设置两种拆解方案,可进行模型拆分展示便于观察展品内部,并且分解与合并的过程有可配置的自然过渡;鼠标移动到模型不同部位显示各自的解释说明。
[0090]
本公开实施例还提供了一种三维展示物品的方法。图2示出了本公开实施例所提供的示例性方法700的流程示意图。该方法700可以由终端设备300a~300n所实施,并具有前述系统100的相应实施例的技术效果。如图2所示,该方法700可以包括以下步骤。
[0091]
在步骤702,终端设备(例如,终端设备300b)可以确定目标物品。
[0092]
在步骤704,终端设备300b可以获取所述目标物品对应的三维模型和三维展示参数。
[0093]
在步骤706,终端设备300b可以基于所述三维模型和所述三维展示参数,对所述目标物品进行三维展示。
[0094]
在一些实施例中,所述方法是基于three.js的三维展示物品的方法;所述三维展示参数包括three.js中的相机参数,所述方法700还可以包括以下步骤:
[0095]
监听是否发生滑动调节物品事件;其中,所述滑动调节物品事件包括调节所述目标物品的角度、位置或大小的事件;
[0096]
响应于发生滑动调节物品事件,确定所述滑动调节物品事件的滑动起点和滑动终点,并根据所述滑动调节物品事件的滑动起点和滑动终点确定对应的相机参数调整量;以及
[0097]
根据所述相机参数调整量调节所述相机参数。
[0098]
在一些实施例中,所述三维展示参数还包括three.js中的灯光参数,所述方法700还可以包括以下步骤:
[0099]
监听是否发生滑动调节灯光事件;
[0100]
响应于发生滑动调节灯光事件,确定所述滑动调节灯光事件的滑动起点和滑动终点,并根据所述滑动调节灯光事件的滑动起点和滑动终点确定对应的灯光参数调整量;以及
[0101]
根据所述灯光参数调整量调节所述灯光参数。
[0102]
在一些实施例中,所述目标物品被拆分为多个部分,所述三维模型包括多个三维子模型,所述三维子模型与所述部分相对应,所述方法700还可以包括以下步骤:
[0103]
接收针对所述目标物品的拆分展示指令;以及
[0104]
基于所述拆分展示指令,根据所述目标物品的多个部分的三维子模型,拆分展示所述目标物品的多个部分。
[0105]
在一些实施例中,基于所述拆分展示指令,根据所述目标物品的多个部分的三维子模型,拆分展示所述目标物品的多个部分,进一步包括:
[0106]
确定所述目标物品的类型;
[0107]
响应于所述目标物品的类型为第一类型,将所述目标物品拆分为第一数量的多个部分;或者
[0108]
响应于所述目标物品的类型为第二类型,将所述目标物品拆分为第二数量的多个部分;
[0109]
其中,所述第一数量大于所述第二数量。
[0110]
在一些实施例中,拆分展示所述目标物品的多个部分,包括:
[0111]
确定所述目标物品的目标部分的移动起点和移动终点;以及
[0112]
根据所述移动起点和所述移动终点,调用移动函数移动所述目标部分,所述移动函数中设置过渡时间,以使所述目标部分按照所述过渡时间从所述移动起点匀速移动到所述移动终点。
[0113]
在一些实施例中,所述方法是基于three.js的三维展示物品的方法;所述三维展示参数包括three.js中的相机参数,所述方法700还可以包括以下步骤:
[0114]
监听是否发生滑动调节物品部分事件;其中,所述滑动调节物品部分事件包括调节所述目标物品的目标部分的角度、位置或大小的事件;
[0115]
响应于发生滑动调节物品部分事件,确定所述滑动调节物品部分事件的滑动起点和滑动终点,并根据所述滑动调节物品部分事件的滑动起点和滑动终点确定对应的相机参数调整量;以及
[0116]
根据所述相机参数调整量调节所述相机参数。
[0117]
在一些实施例中,所述方法700还可以包括以下步骤:
[0118]
监听是否发生目标物品部位选中事件;
[0119]
响应于发生目标物品部位选中事件,基于所述目标物品部位选中事件确定所述目标物品上的目标选中部位;
[0120]
根据所述目标选中部位,确定对应的文字介绍信息;以及
[0121]
在所述目标选中部位处展示所述文字介绍信息。
[0122]
在一些实施例中,确定目标物品,进一步包括:
[0123]
接收场景地图并对所述场景地图进行展示;
[0124]
监听是否发生目标物品选中事件;以及
[0125]
响应于发生目标物品选中事件,基于所述目标物品选中事件确定所述目标物品。
[0126]
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0127]
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的方法700。
[0128]
图3示出了本公开实施例所提供的一种更为具体的终端设备800的硬件结构示意图。如图3所示,该设备800可以包括:处理器802、存储器804、输入/输出接口806、通信接口808和总线810。其中处理器802、存储器804、输入/输出接口806和通信接口808通过总线810实现彼此之间在设备内部的通信连接。
[0129]
处理器802可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
[0130]
存储器804可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器804可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器804中,并由处理器802来调用执行。
[0131]
输入/输出接口806用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0132]
通信接口808用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0133]
总线810包括一通路,在设备的各个组件(例如处理器802、存储器804、输入/输出接口806和通信接口808)之间传输信息。
[0134]
需要说明的是,尽管上述设备仅示出了处理器802、存储器804、输入/输出接口
806、通信接口808以及总线810,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0135]
上述实施例的电子设备用于实现前述任一实施例中相应的方法700,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0136]
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法700。
[0137]
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0138]
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法700,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0139]
基于同一发明构思,与上述任意实施例方法700相对应的,本公开还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的方法700。对应于方法700各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
[0140]
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法700,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0141]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0142]
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
[0143]
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
[0144]
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修
改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献