发明内容
为克服相关技术中存在的问题,本说明书提供了在3D模型上展示富文本的方法、装置及设备。
根据本说明书实施例的第一方面,提供一种在3D模型上展示富文本的方法,所述方法包括:
获取目标富文本;
调用与目标富文本的文件格式对应的渲染工具,渲染所述目标富文本,获得结果页面;
调用图形程序接口将所述结果页面以纹理映射的方式在3D模型的待展示区域进行展示。
可选的,目标富文本的文件格式为操作***中已有渲染工具可渲染的文件的格式。
可选的,所述调用图形程序接口将所述结果页面以纹理映射的方式在3D模型的待展示区域进行展示,包括:
将所述结果页面转换成图片;
调用图形程序接口,获取3D模型待展示区域的纹理,将所述图片绘制至所述纹理,获得纹理图像,并将所述纹理图像映射至3D模型的待展示区域。
可选的,所述目标富文本包括以下任一种:
用于展示在3D模型的待展示区域的预存富文本;
基于用户信息对预设富文本模板进行填充而获得的富文本,所述富文本模板是预设的与所述3D模型相关的模板;
基于用户配置指令获得的与所述3D模型相关的富文本。
可选的,所述富文本的文件格式为HTML,所述渲染工具为WebView的API,所述结果页面为网页。
可选的,所述3D模型为AR场景中的虚拟模型。
根据本说明书实施例的第二方面,提供一种在3D模型上展示富文本的装置,所述装置包括:
文本获取模块,用于:获取目标富文本;
文本渲染模块,用于:调用与目标富文本的文件格式对应的渲染工具,渲染所述目标富文本,获得结果页面;
信息展示模块,用于:调用图形程序接口将所述结果页面以纹理映射的方式在3D模型的待展示区域进行展示。
可选的,目标富文本的文件格式为操作***中已有渲染工具可渲染的文件的格式。
可选的,所述信息展示模块,具体用于:
将所述结果页面转换成图片;
调用图形程序接口,获取3D模型待展示区域的纹理,将所述图片绘制至所述纹理,获得纹理图像,并将所述纹理图像映射至3D模型的待展示区域。
可选的,所述目标富文本包括以下任一种:
用于展示在3D模型的待展示区域的预存富文本;
基于用户信息对预设富文本模板进行填充而获得的富文本,所述富文本模板是预设的与所述3D模型相关的模板;
基于用户配置指令获得的与所述3D模型相关的富文本。
可选的,所述富文本的文件格式为HTML,所述渲染工具为WebView的API,所述结果页面为网页。
根据本说明书实施例的第三方面,提供一种计算机设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取目标富文本;
调用与目标富文本的文件格式对应的渲染工具,渲染所述目标富文本,获得结果页面;
调用图形程序接口将所述结果页面以纹理映射的方式在3D模型的待展示区域进行展示。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例通过获取目标富文本,调用与目标富文本的文件格式对应的渲染工具,渲染该目标富文本获得结果页面,并调用图形程序接口将结果页面以纹理映射的方式在3D模型的待展示区域进行展示,通过由终端中的API进行富文本渲染,从而实现在3D模型上展示富文本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
富文本(Rich Text)可理解为带有格式的文本,例如,富文本可包括带属性(如字体、颜色等)的文字、链接、嵌入的图像、图表、视频等。可见,富文本可以实现图文并茂。而纯文本可以理解为不带有格式的文本。目前,可以通过三维引擎将纯文本展示在3D模型上,却很难利用三维引擎将富文本展示在3D模型上。而在很多3D场景中,存在需要在3D模型上展示富文本的需求。
鉴于此,本说明书实施例提供一种在3D模型上展示富文本的方案,可以将富文本的渲染由3D引擎层提到终端已有API(Application Programming Interface,应用程序接口)层进行处理,由于终端本身提供了非常丰富的API,这些在3D模型中很难做到与原生的一样,或者很难动态的生成,而本说明书实施例先用终端已有API将需要的数据渲染完成,再将该渲染结果渲染至3D模型上,可以实现3D模型与终端已有控件完美融合在一起,并实现在3D模型上展示富文本,同时不会增大3D引擎。
以下结合附图对本说明书实施例进行示例说明。
如图1所示,是本说明书根据一示例性实施例示出的一种在3D模型上展示富文本的方法的流程图,所述方法包括:
在步骤102中,获取目标富文本;
在步骤104中,调用与目标富文本的文件格式对应的渲染工具,渲染所述目标富文本,获得结果页面;
在步骤106中,调用图形程序接口将所述结果页面以纹理映射的方式在3D模型的待展示区域进行展示。
在本说明书实施例中,所述方法可以应用于智能终端中,特别是应用于智能终端中具有3D模型展示功能的应用程序中。智能终端可以是各种可以运行应用程序的电子设备,电子设备可以是蜂窝电话、媒体播放器或其它手持便携式设备,也可以是诸如腕表设备、吊坠设备等稍微更小的便携式设备,或者小型化设备、游戏装备、平板计算机、笔记本计算机、台式计算机、集成于计算机显示器中的计算机或其它的电子装备。
目标富文本,可以是在3D模型的待展示区域待展示的富文本。富文本可理解为带有格式的文本,例如,富文本可包括带属性的文字、链接、嵌入的图像、图表等。以下介绍几种获得目标富文本的方式。
在一个实施例中,目标富文本可以是用于展示在3D模型的待展示区域的预存富文本。在该实施例中,可以预先存储有用于展示在3D模型的待展示区域的富文本。例如,预先存储3D模型的待展示区域与富文本的映射关系,根据映射关系获得目标富文本。预存富文本可以由设计3D模型的设计者预先配置,也可以由使用3D模型的用户预先配置,在此不做限制。
可见,在该实施例中,目标富文本为预存富文本,可以提高获得目标富文本的效率。
实际应用中,统一的目标富文本不具有个性化特征,于用户而言可能缺乏吸引性,为此,在另一个实施例中,目标富文本可以是基于用户信息对预设富文本模板进行填充而获得的富文本,所述富文本模板是预设的与所述3D模型相关的模板。所谓相关,可以是富文本模板与3D模型存在映射关系,不同的3D模型对应的富文本模板可以相同,也可以不同。同一3D模型的不同待展示区域可以对应设有富文本模板。在富文本模板中可配置待填充数据的类型、待填充数据的属性以及布局等。用户信息可以是基于上述应用程序的登录信息获得的用户信息。根据所获得的用户信息,可以确定富文本模板中的待填充数据,将待填充数据填充至富文本模板,获得目标富文本。举例说明,富文本模板中包括用户昵称和用户头像两种类型,并定义用户昵称和用户头像的属性。当获得用户信息时,可以从用户信息中提取用户昵称“轻舞飞扬”以及用户头像图片,并根据相应属性将所获得的待填充数据填充至富文本模板中,获得目标富文本。
可见,该实施例以富文本模板的方式,针对不同的用户可以动态生成不同的目标富文本,从而使目标富文本具有个性化特征。
实际应用中,由于富文本模板中待填充数据的类型、待填充数据的属性以及布局等都是固定的,可能不满足某些用户的需求,为此,在另一个实施例中,目标富文本还可以包括基于用户配置指令获得的与所述3D模型相关的富文本。
在该实施例中,可以提供配置界面供用户对目标富文本进行配置,进而基于用户配置指令,可以获得与3D模型相关的富文本,从而实现目标富文本的可编辑性。
应当理解的是,上述目标富文本获取方式仅为举例,而不应被理解为对本说明书的任何限制,其他现有的或将来的目标富文本获取方式可以适用本说明书,均应包括在本说明书的保护范围内。
目标富文本的文件格式可以是终端中已有渲染工具可渲染的格式,相应的,调用的渲染工具可以是终端中已有渲染工具。
以智能终端为PC端为例,调用的渲染工具可以是***中已有的渲染工具,也可以是由第三方应用提供的渲染工具。例如,终端中包括可渲染doc文件的渲染工具,则目标富文本的文件格式可以是doc格式;又如,终端中包括可渲染wps文件的渲染工具,则目标富文本的文件格式可以是wps格式。
以智能终端为移动终端为例,特别是Android***或IOS***的移动终端时,调用的渲染工具可以是***中已有的渲染工具,相应的,目标富文本的文件格式为操作***中已有渲染工具可渲染的文件的格式。例如,操作***中包括可渲染HTML(Hyper TextMarkup Language,超文本标记语言)文件的渲染工具,则目标富文本的文件格式可以是HTML格式等。
可见,在一个实施例中,可以将调用的渲染工具限定为***中已有的渲染工具,目标富文本的文件格式为操作***中已有渲染工具可渲染的文件的格式。从而可以将富文本的渲染由3D引擎层提到***API层进行处理,由于***本身提供了非常丰富的API,这些在3D模型中很难做到与原生的一样,或者很难动态的生成,而本说明书实施例先用***API将需要的数据渲染完成,再将该渲染结果渲染至3D模型上,可以实现3D模型与***原生控件完美融合在一起,并实现在3D模型上展示富文本,同时不会增大3D引擎。
在获得目标富文本后,可以调用与目标富文本的文件格式对应的渲染工具,渲染所述目标富文本,从而获得结果页面。本实施例的目的是利用已有的渲染工具渲染目标富文本,而无需增加3D引擎的负担。
以目标富文本为HTML文件为例,所述渲染工具可以为WebView的API,所述结果页面为网页。其中,WebView可以是一个基于webkit引擎、展现web页面的控件。为此,可以调用***中WebView的API,将HTML格式的富文本进行渲染,获得网页。作为一个实例,可以将HTML格式的富文本渲染至一个UI控件中。渲染过程可以包括:解析HTML文件、构建文档对象模型(Document Object Model,简称DOM)树、布局、绘制等,具体细节与相关技术中渲染HTML文件相同,在此不一一赘述。
在获得结果页面后,可以调用图形程序接口将所述结果页面以纹理映射的方式在3D模型的待展示区域进行展示。
其中,图形程序接口(Open Graphics Library,OpenGL),又可以称为开放图形库或者开放式图形库,是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。
纹理映射(Texture Mapping),又称纹理贴图,是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。可以理解为把一幅图像贴到三维物体的表面上来增强真实感。待展示区域可以是3D模型的一个面或多个面,或者是某个面中的部分区域。
本实施例采用纹理映射的方式将结果页面展示在3D模型的待展示区域,实现3D模型与***已有控件完美融合在一起,无需拓展3D引擎的功能,即可实现在3D模型上展示富文本,节约资源。
在本一个实施例中,可以将结果页面转换成图片;调用图形程序接口(OpenGL),获取3D模型待展示区域的纹理,将所述图片绘制至所述纹理,获得纹理图像,并将所述纹理图像映射至3D模型的待展示区域。
在OpenGL中,由于纹理坐标决定纹理图像中的哪一个纹理像素点赋予顶点,因此,可以通过指定纹理坐标来将纹理图像映射至3D模型的待展示区域,而纹理坐标可以基于待展示区域获得,进而可以实现将纹理图像映射至3D模型的待展示区域。
在一个例子中,使用纹理绘制的步骤可以包括:定义纹理贴图、控制纹理、说明纹理贴图方式、定义纹理坐标等。纹理定义可以包括连续法和离散法。连续法把纹理定义为一个二元函数,而离散法则是把纹理定义在一个二维数组中。其中,离散法是较为常用的纹理定义方法。控制纹理可以包括纹理图像的纹理如何对应到屏幕上的像素、如何通过纹理贴图实现纹理缩放和纹理重复等。纹理坐标控制纹理图像中的像素怎样映射到物体。纹理坐标可以是1、2、3、4维的,通常用齐次坐标来表示,即(s,t,r,q)。可以理解的是,纹理映射的方式还可以与相关技术中的纹理映射方式相同,在此不做限制。
本说明书实施例中的3D模型可以广泛应用于各种不同的领域,例如,在医疗行业使用其制作器官的精确模型;电影行业将其用于活动的人物、物体以及现实电影;电子游戏产业将其作为计算机与电子游戏中的资源等。
在一个可选的实现方式中,3D模型为AR场景中的虚拟模型。虚拟模型可以包括但不限于虚拟的建筑物、植物、交通工具、人、动物、生物、机器、数据、视频、文本、图片等模型。
可见,可以在AR场景中实现富文本渲染,增强显示多样性。
以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
以下以其中一种组合进行示例说明。
如图2所示,是本说明书根据一示例性实施例示出的另一种在3D模型上展示富文本的方法的流程图,所述方法包括:
在步骤202中,获取HTML格式的目标富文本;
其中,因为HTML本身是用于网页的语言,它包含非常丰富的标签,几乎可以做到任何样式的排版,并且HTML可以直接在浏览器上预览,因此非常方便的可以做编辑。HTML格式的目标富文本,即HTML文件。本实施例步骤可以从HTML文件中读取内容至内存中。
在步骤204中,调用WebView的API,渲染HTML格式的目标富文本,以展示至UI控件中。
其中,WebView的API可以是IOS***或Android***等操作***提供的WebViewAPI,以实现利用***中已有API实现富文本渲染。
在步骤206中,将UI控件中的网页转换成图片,利用OpenGL将所述图片绘制至3D模型待展示区域所对应的纹理中,获得纹理图像;
其中,可以利用WebView的API,获取3D模型待展示区域的纹理,将图片绘制至所述纹理,获得纹理图像。
在步骤208中,利用OpenGL将所述纹理图像映射至3D模型的待展示区域。
3D模型中存在一个需要渲染目标富文本的节点,可以将纹理图像映射至该节点上,便达到将HTML格式的富文本渲染至3D模型中的目的。
本实施例采用了标准的HTML语言作为富文本格式,可以渲染复杂的内容,同时在多个平台上可以保持效果一致。图文混排、表格等在3D引擎中非常难以做到的效果,都可以通过本实施例完成,避免由于拓展3D引擎造成的高成本问题。
本说明书还以支付宝为例,对本说明书实施例的架构进行示例说明。如图3所示,是本说明书根据一示例性实施例示出的一种在3D模型上展示富文本的框架图。支付宝AR处理模块可以执行上述在3D模型上展示富文本的方法。例如,可以利用3D引擎生成AR场景中的虚拟模型,可以利用WebView API渲染HTML,可以利用OpenGL API进行纹理映射,以实现在虚拟模型的待展示区域渲染富文本。采用HTML作为富文本格式,又由于WebView API和OpenGL API都是***的API,可以实现将***API渲染网页的能力与3D引擎完美结合,达到在3D引擎中渲染复杂富文本的目的。
与前述在3D模型上展示富文本的方法的实施例相对应,本说明书还提供了在3D模型上展示富文本的装置及其所应用的电子设备的实施例。
本说明书在3D模型上展示富文本的装置的实施例可以应用在计算机设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在计算机设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书在3D模型上展示富文本的装置所在计算机设备的一种硬件结构图,除了图4所示的处理器410、内存430、网络接口420、以及非易失性存储器440之外,实施例中装置431所在的计算机设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
如图5所示,是本说明书根据一示例性实施例示出的一种在3D模型上展示富文本的装置的框图,所述装置包括:
文本获取模块52,用于:获取目标富文本;
文本渲染模块54,用于:调用与目标富文本的文件格式对应的渲染工具,渲染所述目标富文本,获得结果页面;
信息展示模块56,用于:调用图形程序接口将所述结果页面以纹理映射的方式在3D模型的待展示区域进行展示。
可选的,所述信息展示模块56,具体用于:
将所述结果页面转换成图片;
调用图形程序接口,获取3D模型待展示区域的纹理,将所述图片绘制至所述纹理,获得纹理图像,并将所述纹理图像映射至3D模型的待展示区域。
可选的,所述目标富文本包括以下任一种:
用于展示在3D模型的待展示区域的预存富文本;
基于用户信息对预设富文本模板进行填充而获得的富文本,所述富文本模板是预设的与所述3D模型相关的模板;
基于用户配置指令获得的与所述3D模型相关的富文本。
可选的,目标富文本以操作***中已有渲染工具可处理的文件格式进行存储。
可选的,所述富文本的文件格式为HTML,所述渲染工具为WebView的API,所述结果页面为网页。
可选的,所述3D模型为AR场景中的虚拟模型。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本说明书实施例还提供一种计算机设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:
获取目标富文本;
调用与目标富文本的文件格式对应的渲染工具,渲染所述目标富文本,获得结果页面;
调用图形程序接口将所述结果页面以纹理映射的方式在3D模型的待展示区域进行展示。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
一种计算机存储介质,所述存储介质中存储有程序指令,所述程序指令包括:
获取目标富文本;
调用与目标富文本的文件格式对应的渲染工具,渲染所述目标富文本,获得结果页面;
调用图形程序接口将所述结果页面以纹理映射的方式在3D模型的待展示区域进行展示。
本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。