烘焙贴图的生成和使用方法、装置、设备及介质与流程

文档序号:26142778发布日期:2021-08-03 14:27阅读:160来源:国知局
烘焙贴图的生成和使用方法、装置、设备及介质与流程

本申请涉及计算机技术领域,特别涉及一种烘焙贴图的生成和使用方法、装置、设备及介质。



背景技术:

在三维虚拟空间中设置有摄像机模型,摄像机模型对位于三维虚拟空间中的三维虚拟物品进行拍摄,并且终端将摄像机模型拍摄到的虚拟环境画面渲染至终端的屏幕上显示。

为了减少渲染过程的计算量,预先制作并存储有三维虚拟物品的烘焙贴图,烘焙贴图上包括三维虚拟物品在多个不同视角下的贴图图像。终端将烘焙贴图提前加载在内存中,当摄像机模型对三维虚拟物品(或伪装为三维虚拟物品的一个面片)进行拍摄时,终端获取摄像机模型的当前拍摄视角,并在烘焙贴图中选择出与当前拍摄视角匹配的视角贴图,将其渲染在终端的屏幕上显示。

但是烘焙贴图也需要占用内存空间,所以烘焙贴图不宜过大,在烘焙贴图大小固定的情况下,相关技术中预先制作完成的烘焙贴图中存在视角贴图数量太少的问题,相对应的,摄像机模型的拍摄视角的可选择范围太窄,在摄像机模型的连续移动过程中,容易出现明显的视角切换跳变现象。



技术实现要素:

本申请提供了一种烘焙贴图的生成和使用方法、装置、设备及介质,能够在烘焙贴图尺寸固定的条件下,在烘焙贴图上设置更多的视角贴图。所述技术方案如下:

根据本申请的一个方面,提供了一种烘焙贴图的生成方法,所述方法包括:

确定摄像机模型的m个第一视角范围和n个第二视角范围的视角划分信息,第一视角范围未划分视角子范围,第二视角范围被划分为多个视角子范围;

通过摄像机模型获取三维虚拟物品在第一视角范围下的第一视角贴图,得到m个第一视角贴图;

通过摄像机模型获取三维虚拟物品在视角子范围下的第二视角贴图,得到n组子视角贴图;将n组子视角贴图进行降采样处理,得到n组第二视角贴图;

根据视角划分信息将m个第一视角贴图和n组第二视角贴图,分别映射绘制至烘焙贴图的不同贴图区域;

其中,m、n为大于0的整数。

根据本申请的一个方面,提供了一种烘焙贴图的使用方法,所述方法包括:

获取三维虚拟物品的烘焙贴图,烘焙贴图是根据视角划分信息将m个第一视角贴图和n组第二视角贴图分别映射绘制至烘焙贴图的不同贴图区域得到的,m个第一视角贴图是通过摄像机模型获取三维虚拟物品在第一视角范围下的第一视角贴图得到的,n组第二视角贴图是通过摄像机模型获取三维虚拟物品在视角子范围下的第二视角贴图,得到n组子视角贴图,将n组子视角贴图进行降采样处理得到的,视角子范围是划分第二视角范围得到的,m个第一视角范围和n个第二视角范围根据视角划分信息构成三维虚拟物品的采集视角范围;

确定三维虚拟物品的采集视角,采集视角是摄像机模型朝向三维虚拟物品的视角;

从烘焙贴图中确定与采集视角对应的视角贴图;

其中,m、n为大于0的整数。

根据本申请的一个方面,提供了一种烘焙贴图的生成装置,所述装置包括:

确定模块,用于确定摄像机模型的m个第一视角范围和n个第二视角范围的视角划分信息,第一视角范围未划分视角子范围,第二视角范围被划分为多个视角子范围;

处理模块,用于通过摄像机模型获取三维虚拟物品在第一视角范围下的第一视角贴图,得到m个第一视角贴图;

处理模块,还用于通过摄像机模型获取三维虚拟物品在视角子范围下的第二视角贴图,得到n组子视角贴图;将n组子视角贴图进行降采样处理,得到n组第二视角贴图;

绘制模块,用于根据视角划分信息将m个第一视角贴图和n组第二视角贴图,分别映射绘制至烘焙贴图的不同贴图区域;

其中,m、n为大于0的整数。

根据本申请的一个方面,提供了一种烘焙贴图的使用装置,所述装置包括:

获取模块,用于获取三维虚拟物品的烘焙贴图,烘焙贴图是根据视角划分信息将m个第一视角贴图和n组第二视角贴图分别映射绘制至烘焙贴图的不同贴图区域得到的,m个第一视角贴图是通过摄像机模型获取三维虚拟物品在第一视角范围下的第一视角贴图得到的,n组第二视角贴图是通过摄像机模型获取三维虚拟物品在视角子范围下的第二视角贴图,得到n组子视角贴图,将n组子视角贴图进行降采样处理得到的,视角子范围是划分第二视角范围得到的,m个第一视角范围和n个第二视角范围根据视角划分信息构成三维虚拟物品的采集视角范围;

确定模块,用于确定三维虚拟物品的采集视角,采集视角是摄像机模型朝向三维虚拟物品的视角;

确定模块,还用于从烘焙贴图中确定与采集视角对应的视角贴图;

其中,m、n为大于0的整数。

根据本申请的一个方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如上所述的烘焙贴图的生成方法或烘焙贴图的使用方法。

根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上所述的烘焙贴图的生成方法或烘焙贴图的使用方法。

根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述烘焙贴图的生成方法或烘焙贴图的使用方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

通过获取与m个第一视角范围对应的m个第一视角贴图,和,与n个第二视角范围对应的n组第二视角贴图,以及将m个第一视角贴图和n组第二视角贴图映射绘制至烘焙贴图的不同贴图区域,最终生成烘焙贴图,其中,第二视角贴图的图像分辨率低于第一视角贴图。上述方法与现有的imposter(伪装者)技术相比,通过降低部分视角贴图的图像分辨率,在尺寸不变的情况下,烘焙贴图能容纳更多的视角贴图,极大拓宽了摄像机模型拍摄三维虚拟物品的拍摄视角的可选择范围,在摄像机模型的连续移动过程中,终端的屏幕上显示的画面切换更为流畅。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一示例性实施例提供的基于imposter技术绘制的烘焙贴图的示意图;

图2是本申请一个示例性实施例提供的计算机系统的示意图;

图3是本申请一个示例性实施例提供的烘焙贴图的生成方法的流程图;

图4是本申请一个示例性实施例提供的摄像机模型从不同视角对三维虚拟物品进行拍摄的示意图;

图5是本申请一个示例性实施例提供的烘焙贴图的示意图;

图6是图5中贴图区域503的放大示意图;

图7是本申请一个示例性实施例提供的第一映射关系的示意图;

图8是本申请一个示例性实施例提供的烘焙贴图的示意图;

图9是本申请一个示例性实施例提供的摄像机模型拍摄三维虚拟物品的拍摄画面的示意图;

图10是本申请另一个示例性实施例提供的摄像机模型拍摄三维虚拟物品的拍摄画面的示意图;

图11是本申请一个示例性实施例提供的烘焙贴图的使用方法的流程图;

图12是本申请另一个示例性实施例提供的烘焙贴图的生成方法的流程图;

图13是本申请一个示例性实施例提供的开发人员所处的开发环境的示意图;

图14是本申请另一个示例性实施例提供的烘焙贴图的使用方法的流程图;

图15是本申请一个示例性实施例提供的烘焙贴图的生成装置的示意图;

图16是本申请一个示例性实施例提供的烘焙贴图的使用装置的示意图;

图17是本申请一个示例性实施例提供的计算机设备的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先,对本申请实施例中涉及的名词进行简单介绍:

imposter(伪装者)技术:一种实时渲染中通过一个面片来伪装为三维虚拟物品的技术。其方法是在资源制作阶段,采样三维虚拟物品的各个视角下的贴图,并绘制在一张烘焙贴图上,在运行时,根据当前所观察的视角,找到该烘焙贴图上对应的视角贴图,并进行显示。采用imposter技术可以较大的减少所绘制面片的数量,优化性能。

示意性的,图1是基于imposter技术绘制的烘焙贴图。图1中烘焙贴图共10行10列,烘焙贴图包含100张视角贴图,烘焙贴图中采用序号1-100标识100张视角贴图,在图1中,每张视角贴图的分辨率相同。

烘焙贴图:指基于imposter技术的三维虚拟物品各个视角下的贴图图像的集合。可选的,采用如图1所示的方式将100张视角贴图烘焙到烘焙贴图上,即,在烘焙贴图上存在每个三维虚拟物品的100个视角的视角贴图,在不额外设置烘焙贴图且烘焙贴图的大小固定的情况下,仅使用100个视角拍摄每个三维虚拟物品使得摄像机模型的拍摄视角的可选择范围太窄,在摄像机模型的连续移动过程中,容易出现明显的视角切换跳变现象。

三维虚拟空间:三维虚拟空间可以是一个开放空间,该三维虚拟空间可以用于模拟现实中的真实环境,例如,该虚拟场景中可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素。当然,在该三维虚拟空间中还可以包括三维虚拟物品,例如,投掷物、建筑物、载具、虚拟场景中的虚拟对象、用于武装自己或与其他虚拟对象进行战斗所需的兵器等道具,该三维虚拟空间还可以用于模拟不同天气下的真实环境,例如,晴天、雨天、雾天或黑夜等天气。各种各样的场景元素增强了三维虚拟空间的多样性和真实性。可选的,在三维虚拟空间中设置有摄像机模型用于拍摄三维虚拟物品。

视角:三维虚拟空间中的摄像机模型朝向三维虚拟物品的方向,在本申请实施例中,摄像机模型拍摄三维虚拟物品的视角可划分为m个第一视角范围和n个第二视角范围,可选的,m个第一视角范围用于拍摄三维虚拟物品的原始分辨率贴图,n个第二视角范围用于拍摄三维虚拟物品的的视角分辨率贴图,其中,视角分辨率贴图基于原始分辨率降采样得到。可选的,n个第二视角范围中第i个第二视角范围可划分为k2个视角子范围,每个视角子范围对应一张视角贴图。

图2是本申请一个示例性实施例提供的计算机系统的示意图,图2示出了烘焙贴图的生成设备210和烘焙贴图的使用设备220,如图2所示烘焙贴图的生成设备210生成烘焙贴图,并将烘焙贴图发送至烘焙贴图的使用设备220。

其中,上述烘焙贴图的生成设备210和烘焙贴图的使用设备220可以是具有生成和使用烘焙贴图能力的计算机设备,比如,该计算机设备可以是终端或服务器。

可选的,上述烘焙贴图的生成设备210和烘焙贴图的使用设备220可以是同一个计算机设备,或者,烘焙贴图的生成设备210和烘焙贴图的使用设备220也可以是不同的计算机设备。并且,当烘焙贴图的生成设备210和烘焙贴图的使用设备220是不同的设备时,烘焙贴图的生成设备210和烘焙贴图的使用设备220可以是同一类型的设备,比如烘焙贴图的生成设备210和烘焙贴图的使用设备220可以都是服务器;或者,烘焙贴图的生成设备210和烘焙贴图的使用设备220也可以是不同类型的设备。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式设备,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。在下述实施例中,以烘焙贴图的生成设备、烘焙贴图的使用设备均为终端展开论述。

上述已说明本申请中涉及的名词和实施环境,接下来将论述具体实施例部分。为实现在烘焙贴图尺寸不变的条件下,在烘焙贴图上设置更多的视角贴图,图3是本申请一个示例性实施例提供的烘焙贴图的生成方法的流程图,该方法包括:

步骤320,确定摄像机模型的m个第一视角范围和n个第二视角范围的视角划分信息,第一视角范围未划分视角子范围,第二视角范围被划分为多个视角子范围;

其中,m、n为大于0的整数;

在一个实施例中,m个第一视角范围与摄像机模型拍摄三维虚拟物品得到原始分辨率的视角贴图相对应,n个第二视角范围与摄像机模型拍摄三维虚拟物品得到视角分辨率的视角贴图相对应,原始分辨率是摄像机模型拍摄三维虚拟物品得到的视角贴图未降采样对应的分辨率,视角分辨率是摄像机模型拍摄三维虚拟物品得到的视角贴图降采样对应的分辨率。

示例性的,视角贴图的原始分辨率为a,视角贴图的第一视角分辨率为1/4a,视角贴图的第二视角分辨率为1/16a,即,视角分辨率是摄像机模型拍摄三维虚拟物品得到的视角贴图进行1/4降采样对应的分辨率。

值得说明的一点是,m个第一视角范围也可以与摄像机模型拍摄三维虚拟物品得到视角分辨率的视角贴图相对应,即m个第一视角范围与进行了降采样的视角贴图相对应。即,本申请实施例可以实现为基于降采样得到的视角贴图,生成烘焙贴图。

示意性的,图4示出了本申请一个示例性实施例提供的摄像机模型从不同视角对三维虚拟物品进行拍摄的示意图。图4示出了一个摄像机从m个第一视角范围和n个第二视角范围对三维虚拟物品进行拍摄,其中,任意两个视角上的摄像机所处的拍摄位置与“树”的距离相等(与“树”的中心距离相等)。可选的,图4示出了m个第一视角范围401和n个第二视角范围402。在一个实施例中,n个第二视角范围中的第i个第二视角范围被划分为k2个视角子范围,可选的,n个第二视角范围中的第1至第32个第二视角范围均被划分为4个视角子范围,n个第二视角范围中的第33至第36个第二视角范围均被划分为16个视角子范围。

其中,m个第一视角范围中每个第一视角范围连续但不重叠,n个第二视角范围中每个第二视角范围连续但不重叠,n个第二视角范围中第i个第二视角范围的每个视角子范围连续但不重叠。

步骤340,通过摄像机模型获取三维虚拟物品在第一视角范围下的第一视角贴图,得到m个第一视角贴图;

结合参考图4,终端通过摄像机模型获取三维虚拟物品在m个第一视角范围401下的第一视角贴图,得到m个第一视角贴图。

结合参考图5,图5是本申请一个示例性实施例提供的烘焙贴图的示意图,图5中视角贴图1-20、视角贴图21、视角贴图22、视角贴图47、视角贴图48、视角贴图49、视角贴图50、视角贴图75、视角贴图76、视角贴图77、视角贴图78、视角贴图127、视角贴图128、视角贴图129、视角贴图130、视角贴图179、视角贴图180、视角贴图181、视角贴图182、视角贴图207、视角贴图208、视角贴图209、视角贴图210、视角贴图235、视角贴图236、视角贴图237-256,总共为64个第一视角贴图,结合参考图5,上述64个第一视角贴图设置在烘焙贴图的64个贴图区域501上。

步骤360,通过摄像机模型获取三维虚拟物品在视角子范围下的第二视角贴图,得到n组子视角贴图;将n组子视角贴图进行降采样处理,得到n组第二视角贴图;

结合参考图4,终端通过摄像机模型获取三维虚拟物品在视角子范围下的第二视角贴图,得到n组子视角贴图;将n组子视角贴图进行降采样处理,得到n组第二视角贴图,视角子范围是n个第二视角范围402划分得到的。

在一个可选的实施例中,摄像机模型拍摄三维虚拟物品得到的视角贴图的原始分辨率为a,终端将基于视角子范围得到的n组子视角贴图进行降采样,得到n组第二视角贴图,使得n组第二视角贴图中的第n1组视角贴图包含4个视角贴图,每个视角贴图的分辨率为1/4a,第n2组视角贴图包含16个视角贴图,每个视角贴图的分辨率为1/16a。

值得说明的一点是,本申请实施例对n组子视角贴图进行降采样的采样率不加以限定,可选的,n组第二视角贴图中的第n1组视角贴图包含4个视角贴图,每个视角贴图的分辨率为1/4a,第n2组视角贴图包含9个视角贴图,每个视角贴图的分辨率为1/9a,第n3组视角贴图包含16个视角贴图,每个视角贴图的分辨率为1/16a。

在本申请实施例中,m个第一视角贴图中的每个第一视角贴图占用的贴图区域的面积,与每组第二视角贴图占用的贴图区域的面积相同。即,4*1/4a=a或16*1/16a=a。

结合参考图5,图5中,视角贴图23-26为一组第二视角贴图,视角贴图27-30为一组第二视角贴图,视角贴图31-34为一组第二视角贴图,视角贴图35-38为一组第二视角贴图,视角贴图39-42为一组第二视角贴图,视角贴图43-46为一组第二视角贴图,视角贴图51-54为一组第二视角贴图,视角贴图55-58为一组第二视角贴图,视角贴图59-62为一组第二视角贴图,视角贴图63-66为一组第二视角贴图,视角贴图67-70为一组第二视角贴图,视角贴图71-74为一组第二视角贴图,视角贴图79-82为一组第二视角贴图,视角贴图83-86为一组第二视角贴图,视角贴图119-122为一组第二视角贴图,视角贴图123-126为一组第二视角贴图,视角贴图131-134为一组第二视角贴图,视角贴图135-138为一组第二视角贴图,视角贴图171-174为一组第二视角贴图,视角贴图175-178为一组第二视角贴图,视角贴图183-186为一组第二视角贴图,视角贴图187-190为一组第二视角贴图,视角贴图191-194为一组第二视角贴图,视角贴图195-198为一组第二视角贴图,视角贴图199-202为一组第二视角贴图,视角贴图203-206为一组第二视角贴图,视角贴图211-214为一组第二视角贴图,视角贴图215-218为一组第二视角贴图,视角贴图219-222为一组第二视角贴图,视角贴图223-226为一组第二视角贴图,视角贴图227-230为一组第二视角贴图,视角贴图231-234为一组第二视角贴图;上述构成了32组第二视角贴图,上述32组第二视角贴图设置在烘焙贴图的贴图区域502上,贴图区域502包括128个贴图子区域。

结合参考图6,图6是图5中4组第二视角贴图在烘焙贴图中所在的贴图区域503的放大示意图,其中视角贴图87-102构成一组第二视角贴图,视角贴图103-118构成一组第二视角贴图,视角贴图139-154构成一组第二视角贴图,视角贴图155-170构成一组第二视角贴图。

上述4组第二视角贴图设置在烘焙贴图的贴图区域503中,贴图区域503包括64个贴图子区域。

步骤380,根据视角划分信息将m个第一视角贴图和n组第二视角贴图,分别映射绘制至烘焙贴图的不同贴图区域。

在一个实施例中,终端根据视角划分信息将m个第一视角贴图和n组第二视角贴图分别映射绘制至烘焙贴图的不同贴图区域,可以包括以下两个步骤:

s1,根据视角划分信息将m个第一视角贴图映射绘制至烘焙贴图的m个贴图区域中;

在一个实施例中,终端根据视角划分信息和第一映射关系,在所述烘焙贴图上确定与第一视角范围对应的贴图区域,将每个第一视角贴图根据第一映射关系映射绘制至贴图区域,其中,m个第一视角贴图与m个第一视角范围对应,其中,第一映射关系是摄像机模型的三维视角与烘焙贴图上的二维坐标的映射关系。

示意性的,图7是本申请一个示例性实施例提供的第一映射关系的示意图。

第一映射关系实现了由摄像机模型拍摄三维虚拟物品的m个第一视角范围转换为烘焙贴图的m个贴图区域,即第一映射实现了由摄像机模型的三维视角转换为烘焙贴图上的二维坐标,在一个实施例中,摄像机模型拍摄三维虚拟物品的视角穿过三维虚拟物品的a’点,三维虚拟物品的a’点通过第一映射关系对应为烘焙贴图上的a点,a点所在贴图区域就是穿过a’点的视角对应的贴图区域,a点所在贴图区域上的视角贴图就是穿过a’点的视角对应的视角贴图。因此,第一映射关系实现了由m个第一视角范围转换为烘焙贴图的m个贴图区域。

示例性的,穿过a’点的三维视角为(1,2,3),a点的坐标为(1,1),第一映射关系实现了由(1,2,3)转换为(1,1)。

s2,根据视角划分信息将n组第二视角贴图映射绘制至烘焙贴图的n个贴图区域,n组第二视角贴图中的每组第二视角贴图阵列排布在同一个贴图区域中的不同贴图子区域。

在一个实施例中,n个第二视角范围中的第i个第二视角范围被划分为k2个视角子范围,k为大于1的整数,终端根据视角划分信息和第一映射关系,在烘焙贴图上确定与第i个第二视角范围对应的贴图区域,与第i个第二视角范围对应的贴图区域被划分为k2个贴图子区域;之后,终端将第i组第二视角贴图中的每个第二视角贴图,根据第一映射关系映射绘制至k2个贴图子区域中的一个贴图子区域。

其中,第i组第二视角贴图与第i个第二视角范围对应,第一映射关系是摄像机模型的三维视角与烘焙贴图上的二维坐标的映射关系。

示意性的,图7是本申请一个示例性实施例提供的第一映射关系的示意图。

第一映射实现了由摄像机模型拍摄三维虚拟物品的n个第二视角范围转换为烘焙贴图的n个贴图区域,将n个第二视角范围中的第i个第二视角范围的k2个视角子范围转换为n个贴图区域中的k2个贴图子区域。即第一映射实现了由三维视角转换为二维坐标,在一个实施例中,摄像机模型拍摄三维虚拟物品的视角穿过三维虚拟物品的a’点,三维虚拟物品的a’点通过第一映射关系对应为烘焙贴图上的a点,a点所在贴图区域就是穿过a’点的视角对应的贴图区域,a点所在贴图区域上的视角贴图就是穿过a’点的视角对应的视角贴图。因此,第一映射关系实现了由n个第二视角范围转换为烘焙贴图的n个贴图区域中的第i个贴图区域的k2个贴图子区域。

综上所述,通过获取与m个第一视角范围对应的m个第一视角贴图,和,与n个第二视角范围对应的n组第二视角贴图,以及将m个第一视角贴图和n组第二视角贴图映射绘制至烘焙贴图的不同贴图区域,最终生成烘焙贴图,其中,第二视角贴图的图像分辨率低于第一视角贴图。上述方法与现有的imposter技术相比,通过降低部分视角贴图的图像分辨率,在尺寸不变的情况下,烘焙贴图能容纳更多的视角贴图,极大拓宽了摄像机模型拍摄三维虚拟物品的拍摄视角的可选择范围,在摄像机模型的连续移动过程中,终端的屏幕上显示的画面切换更为流畅。

上述方法中,n个第二贴图视角范围中的第i个第二视角范围被划分为k2个视角子范围,将与视角子范围对应的n组第二视角贴图的第i组第二视角贴图的k2个第二视角贴图中的一个视角贴图,映射绘制在烘焙贴图的n个贴图区域中的k2个贴图子区域中的一个贴图子区域,提供了一种烘焙贴图上视角贴图的分辨率的设置方式,使得烘焙贴图的尺寸与所有视角贴图的分辨率完美兼容。

图5是本申请一个示例性实施例提供的烘焙贴图的示意图,图6是图5中贴图区域503的放大示意图。

图5示出了m个第一视角贴图设置在烘焙贴图的贴图区域501,n个第二视角贴图中的128个第二视角贴图设置在烘焙贴图的贴图区域502,贴图区域502包括128个贴图子区域,n个第二视角贴图中的64个第二视角贴图设置在烘焙贴图的贴图区域503,贴图区域503包括64个贴图子区域,其中贴图区域501设置在烘焙贴图的最外圈的回字形区域,贴图区域502设置在烘焙贴图的中间圈的回字形区域,贴图区域503设置在烘焙贴图的最内圈的区域。

可选的,贴图区域501内具有的视角贴图具有原始分辨率,贴图区域502内的视角贴图具有第一视角分辨率,贴图区域503内的视角贴图具有第二视角分辨率,示例性的,贴图区域501内具有的视角贴图的分辨率为a,贴图区域502内的视角贴图的分辨率为1/4a,贴图区域503内的视角贴图的分辨率为1/16a。

可选的,m个第一视角贴图中的每个第一视角贴图占用的贴图区域的面积,与每组第二视角贴图占用的贴图区域的面积相同。即,4*1/4a=a或16*1/16a=a。

示例性的,图8是本申请一个示例性实施例提供的烘焙贴图的示意图,图8是摄像机模型从不同视角拍摄“树”得到的烘焙贴图。

为实现通过摄像机模型获取三维虚拟物品的视角贴图,还需要对摄像机的拍摄参数进行设置,在基于图3所示的烘焙贴图的生成方法的实施例中,步骤320之前还包括以下步骤:

步骤312,设置摄像机模型的第一拍摄参数;

在一个可选的实施例中,在三维虚拟空间的一个默认位置上放置有摄像机模型,并设置摄像机的第一拍摄参数,使得摄像机模型在默认位置上对三维虚拟物品进行拍摄的画面完整包含了三维虚拟物品。

可选的,第一拍摄参数为摄像机模型距离三维虚拟物品的焦距,通过调整摄像机模型距离三维虚拟物品的焦距可实现摄像机模型的拍摄画面完整包含了三维虚拟物品。

在一个实施例中,终端设置摄像机模型的第一拍摄参数可以包括以下步骤:终端获取三维虚拟物品的最小包围盒;终端将最小包围盒的对角线长度作为摄像机模型的拍摄画面的长和宽;基于拍摄画面的长和宽,终端设置摄像机模型的第一拍摄参数。

其中,最小包围盒指能够包围三维虚拟物品的最小立方体。

示意性的,图9示出了基于第一拍摄参数,摄像机模型拍摄三维虚拟物品的拍摄画面,其中,图9所示的拍摄画面的长和宽等于“树”的最小包围盒的对角线长度。

步骤314,基于第一拍摄参数,根据三维虚拟物品在摄像机模型的拍摄画面占用区域的大小,调整得到摄像机模型的第二拍摄参数;

在一个可选的实施例中,基于第一拍摄参数,根据三维虚拟物品在摄像机模型的拍摄画面占用区域的大小,终端调整得到摄像机模型的第二拍摄参数。

可选的,步骤314还可以包括以下步骤:

步骤314-1,基于第一拍摄参数,控制摄像机从不同视角对三维虚拟物品进行拍摄,得到多个视角贴图;

在一个实施例中,终端控制摄像机从m个视角范围和n个视角范围,对三维虚拟物品进行拍摄,得到(m+n*k2)个视角贴图。

步骤314-2,将多个视角贴图中,对应三维虚拟物品的相同位置的像素点进行叠加,得到叠加图像;

在一个实施例中,终端将(m+n*k2)个视角贴图中,对应三维虚拟物品的相同位置的像素点进行叠加,得到叠加图像,示意性的,图10是本申请一个示例性实施例提供的叠加图像。

步骤314-3,将叠加图像的带像素区域的长度与叠加图像的长度求商,得到第一长度比,以及将叠加图像的带像素区域的宽度与叠加图像的宽度求商,得到第一宽度比,带像素区域是在叠加图像中三维虚拟物品的像素点占用的区域;

在一个实施例中,终端将叠加图像的带像素区域的长度与叠加图像的长度求商,得到第一长度比,如,带像素区域的长度为x1,叠加图像的长度为x2,第一长度比为x1/x2;以及,终端将叠加图像的带像素区域的宽度与叠加图像的宽度求商,得到第一宽度比,如,带像素区域的宽度为y1,叠加图像的宽度为y2,第一宽度比为y1/y2。

步骤314-4,基于第一长度比和第一宽度比,调整得到摄像机的第二拍摄参数,第二拍摄参数用于使得第二长度比等于第一长度比,第二长度比是基于第一拍摄参数拍摄得到的任一视角贴图的长度与基于第二拍摄参数拍摄得到的任一视角贴图的长度求商得到的,第二拍摄参数还用于使得第二宽度比等于第一宽度比,第二宽度比是基于第一拍摄参数拍摄得到的任一视角贴图的宽度与基于第二拍摄参数拍摄得到的任一视角贴图的宽度求商得到的。

在一个实施例中,基于第一长度比和第一宽度比,终端调整得到摄像机的第二拍摄参数,第二拍摄参数用于使得基于第一拍摄参数拍摄得到的任一视角贴图与基于第二拍摄参数拍摄得到的任一视角贴图的第二长度比等于第一长度比,第二拍摄参数还用于使得基于第一拍摄参数拍摄得到的任一视角贴图与基于第二拍摄参数拍摄得到的任一视角贴图的第二宽度比等于第一宽度比;

示意性的,基于第一拍摄参数拍摄得到的任一视角贴图的长度为x2,基于第二拍摄参数拍摄得到的任一视角贴图的长度为x3,第二长度比等于第一长度比,即x2/x3=x1/x2。

基于第一拍摄参数拍摄得到的任一视角贴图的宽度为y2,基于第二拍摄参数拍摄得到的任一视角贴图的宽度为y3,第二宽度比等于第一宽度比,即y2/y3=y1/y2。

综上所述,通过调整第一拍摄参数和第二拍摄参数,使得拍摄画面的长和宽更接近三维虚拟物品带像素区域的长和宽。上述方法保证了摄像机模型拍摄得到的拍摄画面最大限度地充满三维虚拟物品,尽可能保证烘焙贴图上绘制的视角贴图携带更大比例的三维虚拟物品信息,即,尽可能保证烘焙贴图的空间不被滥用。

为实现将视角贴图在烘焙贴图的区域信息进行存储,在基于图3所示的烘焙贴图的生成方法的实施例中,步骤380之后还包括:

步骤392,根据视角划分信息存储m个第一视角贴图在烘焙贴图中所在的贴图区域的区域信息;

在一个实施例中,终端根据视角划分信息和第二映射关系,在一级存储表中确定与第i个第一视角范围对应的第一存储位置;终端将第i个第一视角贴图在烘焙贴图中所在的贴图区域的区域信息,存储在第一存储位置,第i个第一视角贴图是与第i个第一视角范围对应的视角贴图;

其中,第二映射关系是摄像机模型的三维视角与一级存储表上的存储位置的映射关系,区域信息包括贴图区域的定位点坐标、高度信息和宽度信息。

在一个实施例中,第一视角贴图在烘焙贴图中所在的贴图区域的区域信息包括第一视角贴图在烘焙贴图中所在的贴图区域的起点坐标、第一视角贴图的长度信息、第一视角贴图的宽度信息。

一级存储表用于存储第i个第一视角贴图在烘焙贴图中所在的贴图区域的区域信息,以及,第i组第二视角贴图在二级存储表的目标存储区域的索引信息。

可选的,一级存储表采用二维数组的形式,如,一级存储表定义为inta[9][9]={1,1,1,2,1,3,1,4,1,5,...,10,9,10,10}。

第二映射关系用于由摄像机模型的三维视角转换为一级存储表上的存储位置,如摄像机模型的三维视角为[1,2,3],与该视角对应的一级存储表上的存储位置为a[3][4],即实现了由摄像机模型的三维视角[1,2,3]转换为一级存储表的二维整数[3,4]。

具体的,根据视角划分信息和第二映射关系,终端在一级存储表中确定与三维视角[1,2,3]对应的第一存储位置a[3][4],终端将与三维视角[1,2,3]对应的第一视角贴图在烘焙贴图中所在的贴图区域的区域信息,存储在第一存储位置a[3][4]。

步骤394,根据视角划分信息存储n组第二视角贴图在烘焙贴图中所在的贴图区域的区域信息。

在一个实施例中,终端将第i组第二视角贴图中的每个第二视角贴图在烘焙贴图中所在的贴图子区域的区域信息,存储在二级存储表的目标存储区域中;第i组第二视角贴图与第i个第二视角范围对应;终端根据视角划分信息和第二映射关系,在一级存储表中确定与第i个第二视角范围对应的第二存储位置;终端将二级存储表的目标存储区域的索引信息,存储在第二存储位置;

其中,第二映射关系是摄像机模型的三维视角与一级存储表上的存储位置的映射关系。

二级存储表的目标存储区域用于存储第i组第二视角贴图中的每个第二视角贴图在烘焙贴图中所在的贴图子区域的区域信息。

可选的,二级存储表采用二维数组的形式,如,二级存储表定义为intb[9][9]={1,1,1,2,1,3,1,4,1,5,...,10,9,10,10}。

索引信息包括第i组第二视角贴图所在二级存储表的编号、第i组第二视角贴图在二级存储表的目标存储区域的起点坐标,第i组第二视角贴图所占用的二级存储表的数据长度。

示意性的,第i组第二视角贴图所在二级存储表的编号为1,第i组第二视角贴图在二级存储表的目标存储区域的起点为b[0][0],第i组第二视角贴图所占用的二级存储表的数据长度为16,即从b[0][0]至b[1][5],即目标存储区域为从b[0][0]至b[1][5]。

可选的,第二存储位置还存储有与n个第二视角范围对应的标志位,标志位用于标记第二存储位置对应n个第二视角范围。

其中,上述终端将第i组第二视角贴图中的每个第二视角贴图在所述烘焙贴图中所在的贴图子区域的区域信息,存储在二级存储表中,包括:

根据视角划分信息和第三映射关系,终端在二级存储表的目标存储区域中,确定与第i组第二视角贴图中的第j个第二视角贴图的视角范围所对应的第三存储位置;终端将第j个第二视角贴图在烘焙贴图中所在的贴图子区域的区域信息,存储在第三存储位置;

其中,第三映射关系是摄像机模型的三维视角与二级存储表上的存储位置的映射关系。

在一个实施例中,第二视角贴图在烘焙贴图中所在的贴图区域的区域信息包括:第二视角贴图在烘焙贴图中所在的贴图区域的起点坐标、第二视角贴图的长度信息、第二视角贴图的宽度信息。

第三映射关系用于由摄像机模型的三维视角转换为二级存储表上的存储位置,如摄像机模型的三维视角为[2,3,4],与该视角对应的二级存储表的目标存储区域的存储位置为b[1][3],即实现了由摄像机模型的三维视角[2,3,4]转换为二级存储表的二维整数[1,3]。

在一个实施例中,根据视角划分信息和第二映射关系,终端在一级存储表中确定与三维视角[2,3,4]对应的存储位置为a[7][8],终端根据a[7][8]存储的目标存储区域的索引信息,确定目标存储区域为b[0][0]至b[1][5],根据视角划分信息和第三映射关系,终端确定目标存储区域中的b[1,3]为第三存储位置,第三存储位置存储与三维视角[2,3,4]对应的第二视角贴图在烘焙贴图中所在的贴图区域的区域信息。

综上所述,通过设置一级存储表和二级存储表,在一级存储表上存储m个第一视角贴图在烘焙贴图中所在的贴图区域的区域信息,和,n组第二视角贴图在二级存储表的目标存储区域的索引信息,在二级存储表的目标存储区域上存储n组第二视角贴图在烘焙贴图中所在的贴图区域的区域信息,实现了存储视角贴图在烘焙贴图的区域信息,使得在用户使用烘焙贴图时,能够根据一级存储表和二级存储表,在烘焙贴图上找到对应的视角贴图。上述方法规范了终端确定视角贴图的流程,在保证准确率的前提下,提高了终端确定视角贴图的效率。

上述已说明本申请生成烘焙贴图的方法实施例,接下来将论述使用烘焙贴图贴图的实施例。为实现在烘焙贴图尺寸不变的条件下,在烘焙贴图上设置更多视角的贴图图像,图11是本申请一个示例性实施例提供的烘焙贴图的使用方法的流程图,该方法包括:

步骤1120,获取三维虚拟物品的烘焙贴图;

其中,烘焙贴图是根据视角划分信息将m个第一视角贴图和n组第二视角贴图分别映射绘制至烘焙贴图的不同贴图区域得到的,m个第一视角贴图是通过摄像机模型获取三维虚拟物品在第一视角范围下的第一视角贴图得到的,n组第二视角贴图是通过摄像机模型获取三维虚拟物品在视角子范围下的第二视角贴图,得到n组子视角贴图,将n组子视角贴图进行降采样处理得到的,视角子范围是划分第二视角范围得到的,m个第一视角范围和n个第二视角范围根据视角划分信息构成三维虚拟物品的采集视角范围;

示意性的,图4示出了本申请一个示例性实施例提供的摄像机模型从不同视角对三维虚拟物品进行拍摄的示意图。图4示出了一个摄像机从m个第一视角范围和n个第二视角范围对三维虚拟物品进行拍摄,其中,任意两个视角上的摄像机所处的拍摄位置与树的距离相等(与“树”的中点距离相等)。可选的,图4示出了m个第一视角范围401和n个第二视角范围402。在一个实施例中,n个第二视角范围中的第i个第二视角范围被划分为k2个视角子范围,可选的,n个第二视角范围中的第1至第32个第二视角范围均被划分为4个视角子范围,n个第二视角范围中的第33至第36个第二视角范围均被划分为16个视角子范围。

结合参考图5,图5中视角贴图1-20、视角贴图21、视角贴图22、视角贴图47、视角贴图48、视角贴图49、视角贴图50、视角贴图75、视角贴图76、视角贴图77、视角贴图78、视角贴图127、视角贴图128、视角贴图129、视角贴图130、视角贴图179、视角贴图180、视角贴图181、视角贴图182、视角贴图207、视角贴图208、视角贴图209、视角贴图210、视角贴图235、视角贴图236、视角贴图237-256,总共为64个第一视角贴图,结合参考图5,上述64个第一视角贴图设置在烘焙贴图的64个贴图区域501上。

结合参考图5和图6,图5中,视角贴图23-26为一组第二视角贴图,视角贴图27-30为一组第二视角贴图,视角贴图31-34为一组第二视角贴图,视角贴图35-38为一组第二视角贴图,视角贴图39-42为一组第二视角贴图,视角贴图43-46为一组第二视角贴图,视角贴图51-54为一组第二视角贴图,视角贴图55-58为一组第二视角贴图,视角贴图59-62为一组第二视角贴图,视角贴图63-66为一组第二视角贴图,视角贴图67-70为一组第二视角贴图,视角贴图71-74为一组第二视角贴图,视角贴图79-82为一组第二视角贴图,视角贴图83-86为一组第二视角贴图,视角贴图119-122为一组第二视角贴图,视角贴图123-126为一组第二视角贴图,视角贴图131-134为一组第二视角贴图,视角贴图135-138为一组第二视角贴图,视角贴图171-174为一组第二视角贴图,视角贴图175-178为一组第二视角贴图,视角贴图183-186为一组第二视角贴图,视角贴图187-190为一组第二视角贴图,视角贴图191-194为一组第二视角贴图,视角贴图195-198为一组第二视角贴图,视角贴图199-202为一组第二视角贴图,视角贴图203-206为一组第二视角贴图,视角贴图211-214为一组第二视角贴图,视角贴图215-218为一组第二视角贴图,视角贴图219-222为一组第二视角贴图,视角贴图223-226为一组第二视角贴图,视角贴图227-230为一组第二视角贴图,视角贴图231-234为一组第二视角贴图;上述构成了32组第二视角贴图,上述32组第二视角贴图设置在烘焙贴图的贴图区域502上,贴图区域502包括128个贴图子区域。

结合参考图6,图6是图5中4组第二视角贴图在烘焙贴图中所在的贴图区域501的放大图,其中视角贴图87-102构成一组第二视角贴图,视角贴图103-118构成一组第二视角贴图,视角贴图139-154构成一组第二视角贴图,视角贴图155-170构成一组第二视角贴图。

其中,m个第一视角范围中每个第一视角范围连续但不重叠,n个第二视角范围中每个第二视角范围连续但不重叠,n个第二视角范围中第i个第二视角范围的每个视角子范围连续但不重叠。

在一个可选的实施例中,m个第一视角贴图是根据视角划分信息映射绘制至烘焙贴图的m个贴图区域的,n组第二视角贴图是根据视角划分信息映射绘制至烘焙贴图的n个贴图区域的,n组第二视角贴图中的每组第二视角贴图阵列排布在同一个贴图区域中的不同贴图子区域。

可选的,n个第二视角范围中的第i个第二视角范围被划分为k2个视角子范围,k为不小于2的整数,n组第二视角贴图是根据视角划分信息和第一映射关系,终端在烘焙贴图上确定与第i个第二视角范围对应的贴图区域,然后将第i组第二视角贴图中的每个第二视角贴图,根据第一映射关系映射绘制至k2个贴图子区域中的一个贴图子区域的;

其中,与第i个第二视角范围对应的贴图区域被划分为k2个贴图子区域,第i组第二视角贴图与第i个第二视角范围对应,第一映射关系是摄像机模型的三维视角与烘焙贴图上的二维坐标的映射关系。

示意性的,图7是本申请一个示例性实施例提供的第一映射关系的示意图,

第一映射关系实现了由摄像机模型拍摄三维虚拟物品的m个第一视角范围转换为烘焙贴图的m个贴图区域,即第一映射实现了由摄像机模型的三维视角转换为烘焙贴图上的二维坐标,在一个实施例中,摄像机模型拍摄三维虚拟物品的视角穿过三维虚拟物品的a’点,三维虚拟物品的a’点通过第一映射关系对应为烘焙贴图上的a点,a点所在贴图区域就是穿过a’点的视角对应的贴图区域,a点所在贴图区域上的视角贴图就是穿过a’点的视角对应的视角贴图。因此,第一映射关系实现了由m个第一视角范围转换为烘焙贴图的m个贴图区域。

可选的,m个第一视角贴图中的每个第一视角贴图占用的贴图区域的面积,与每组第二视角贴图占用的贴图区域的面积相同。

步骤1140,确定三维虚拟物品的采集视角;

其中,采集视角是摄像机模型朝向三维虚拟物品的视角。

在一个实施例中,终端获取摄像机模型朝向三维虚拟物品(或伪装为三维虚拟物品的一个面片)的采集视角,并确定采集视角的三维坐标。可选的,当终端获取摄像机朝向伪装为三维虚拟物品的一个面片的采集视角时,基于billboard(广告牌)技术,获取采集视角的三维坐标。

步骤1160,从烘焙贴图中确定与采集视角对应的视角贴图。

在一个实施例中,终端根据视角划分信息从烘焙贴图中确定与第一采集视角对应的目标第一视角贴图;或,终端根据视角划分信息从烘焙贴图中确定与第二采集视角对应的目标第二视角贴图。

其中,第一采集视角是m个第一视角范围中的一个视角,第二采集视角是n个第二视角范围中第i个视角范围的一个视角,i为大于0的整数。

在一个实施例中,一级存储表存储有与m个第一视角范围对应的m个第一视角贴图在烘焙贴图中所在的贴图区域的区域信息。

可选的,终端根据视角划分信息从烘焙贴图中确定与第一采集视角对应的第一视角贴图,包括:

第一、终端根据视角划分信息和第二映射关系,在一级存储表中确定与第一采集视角对应的第一存储位置;

第二、终端从第一存储位置获取第一采集视角在烘焙贴图中所在的贴图区域的区域信息;

第三、终端根据第一采集视角在烘焙贴图中所在的贴图区域的区域信息,从烘焙贴图中确定与第一采集视角对应的目标第一视角贴图;

其中,第二映射关系是摄像机模型的三维视角与一级存储表上的存储位置的映射关系,区域信息包括贴图区域的定位点坐标、高度信息和宽度信息。

在一个实施例中,一级存储表存储有与n个第二视角范围对应的二级存储表的目标存储区域的索引信息;二级存储表存储有与第i个视角范围对应的k2个第二视角贴图在烘焙贴图中所在的贴图区域的区域信息。

可选的,终端根据视角划分信息从烘焙贴图中确定与第二采集视角对应的第二视角贴图,包括:

第一、根据视角划分信息和第二映射关系,终端在一级存储表中确定与第i个第二视角范围对应的第二存储位置;

第二、终端从第二存储位置获取目标索引信息,目标索引信息是第i个第二视角范围在二级存储表中的目标存储区域的索引信息;

第三、根据目标索引信息和第三映射关系,终端在二级存储表中确定目标存储区域中的第三存储位置,第三存储位置存储有与目标视角子范围对应的目标第二视角贴图在烘焙贴图中所在的贴图子区域的区域信息;

第四、终端从第三存储位置获取子区域信息,子区域信息是目标第二视角贴图在烘焙贴图中所在的贴图子区域的区域信息;

第五、根据目标子区域信息,终端从烘焙贴图中确定目标第二视角贴图;

其中,第三映射关系是摄像机模型的三维视角与二级存储表上的存储位置的映射关系。

综上所述,通过一级存储表和二级存储表,终端从烘焙贴图中确定与采集视角对应的视角贴图,烘焙贴图由m个第一视角贴图和n组第二视角贴图映射绘制得到的,第二视角贴图的分辨率低于第一视角贴图的分辨率。上述方法与使用基于现有的imposter(伪装者)技术生成的烘焙贴图相比,可被选择的采集视角的范围更广,在摄像机模型的连续移动过程中,终端的屏幕上显示的画面切换更为流畅。

上述方法还规范了终端确定视角贴图的流程,在保证准确率的前提下,提高了终端确定视角贴图的效率。

图12是本申请一个示例性实施例提供的烘焙贴图的生成方法的流程图,该烘焙贴图的生成方法包括:

步骤1201,设置划分系数;

终端设置imposter烘焙时的划分系数。图13示出了开发人员在进行开发时对划分系数进行设置的界面,对原本要采样10*10的贴图布局的烘焙贴图,最外圈和次外圈保留原始贴图大小,对第三圈和第四圈的每个视角贴图进行2*2划分,对第五圈的每个视角贴图进行4*4的划分。

步骤1202,设置相机所有拍摄角度信息;

终端设置相机所有拍摄角度信息。

步骤1203,拍摄视角是否要划分;

终端判断视角是否要划分,若拍摄视角要划分,进入步骤1204,若拍摄视角不需要划分,进入步骤1203。

步骤1204,配置场景中树木位置;

终端配置场景中树木位置。

步骤1205,设置相机所有拍摄角度信息;

终端设置相机所有拍摄角度信息。

步骤1206,调整摄像机参数,使得树木可以充满相机屏幕;

终端调整摄像机参数,使得树木可以充满相机屏幕。

步骤1207,拍照,写入贴图文件填写划分表;

终端控制摄像机模型进行拍照,并将拍摄得到的视角贴图生成烘焙贴图,并将每个视角贴图所在烘焙贴图的位置信息存储在转换表和划分表中。

转换表,采用4个浮点数字来记录该视角的信息。如果该视角不需要进行进一步划分,则转换表中记录的4个数字分别为:

x=视角存在贴图的起始坐标点x;

y=视角存在贴图的起始坐标点y;

z=该视角的贴图宽度;

w=该视角的贴图高度;

如果该视角需要进行进一步划分,则转换表中记录的4个数字分别为:

x=需要去查找的划分表索引;

y=该划分表的起始点;

z=该视角所占用的长度;

w=0(划分标识位,如果该位为0,意味着该视角出现了划分情况);

划分表,由四个浮点数构成。如果该视角需要进一步划分,则划分表中记录的4个数字分别为:

x=划分后的视角存在贴图的起始坐标点x;

y=划分后的视角存在贴图的起始坐标点y;

z=划分后的视角的贴图宽度;

w=划分后的视角的贴图高度;

步骤1208,导出贴图文件、划分表和转换表。

终端导出生成的烘焙贴图、划分表和转换表。

图14是本申请一个示例性实施例提供的烘焙贴图的使用方法的流程图,该烘焙贴图的使用方法包括:

步骤1401,绘制面片;

终端绘制始终朝向摄像机模型的面片,可选的,采用billboard方法绘制面片。

步骤1402,视角是否被划分;

终端将摄像机模型的位置转换到面片的模型空间中,基于面片求出摄像机模型当前的拍摄视角,通过转换表的w值是否大于0来判断该视角是否被划分。若该视角被划分,进入步骤1404,若该视角未被划分,进入步骤1403。

步骤1403,读取贴图位置;

终端读取视角贴图所在位置,进行采样。

步骤1404,查找划分表;

终端根据存储的划分信息,查找到对应的划分表位置,读取划分后的视角贴图存储的位置,进行采样;

步骤1405,采样贴图进行渲染。

终端根据采样得到的视角贴图,在终端上渲染显示该视角贴图。

图15是本申请一个示例性实施例提供的烘焙贴图的生成装置的示意图,该烘焙贴图的生成装置1500包括:

确定模块1501,用于确定摄像机模型的m个第一视角范围和n个第二视角范围的视角划分信息,第一视角范围未划分视角子范围,第二视角范围被划分为多个视角子范围;

处理模块1502,用于通过摄像机模型获取三维虚拟物品在第一视角范围下的第一视角贴图,得到m个第一视角贴图;

处理模块1502,还用于通过摄像机模型获取三维虚拟物品在视角子范围下的第二视角贴图,得到n组子视角贴图;将n组子视角贴图进行降采样处理,得到n组第二视角贴图;

绘制模块1503,用于根据视角划分信息将m个第一视角贴图和n组第二视角贴图,分别映射绘制至烘焙贴图的不同贴图区域;

其中,m、n为大于0的整数。

在一个可选的实施例中,绘制模块1503还用于根据视角划分信息将m个第一视角贴图映射绘制至烘焙贴图的m个贴图区域中。

在一个可选的实施例中,绘制模块1503还用于根据视角划分信息将n组第二视角贴图映射绘制至烘焙贴图的n个贴图区域,n组第二视角贴图中的每组第二视角贴图阵列排布在同一个贴图区域中的不同贴图子区域。

在一个可选的实施例中,n个第二视角范围中的第i个第二视角范围被划分为k2个视角子范围,k为不小于2的整数。

在一个可选的实施例中,绘制模块1503还用于根据视角划分信息和第一映射关系,在烘焙贴图上确定与第i个第二视角范围对应的贴图区域,与第i个第二视角范围对应的贴图区域被划分为k2个贴图子区域。

在一个可选的实施例中,绘制模块1503还用于将第i组第二视角贴图中的每个第二视角贴图,根据第一映射关系映射绘制至k2个贴图子区域中的一个贴图子区域;第i组第二视角贴图与第i个第二视角范围对应。

其中,第一映射关系是摄像机模型的三维视角与烘焙贴图上的二维坐标的映射关系。

在一个可选的实施例中,m个第一视角贴图中的每个第一视角贴图占用的贴图区域的面积,与每组第二视角贴图占用的贴图区域的面积相同。

在一个可选的实施例中,该装置还包括设置模块1504。

在一个可选的实施例中,设置模块1504用于设置摄像机模型的第一拍摄参数。

在一个可选的实施例中,设置模块1504还用于基于第一拍摄参数,根据三维虚拟物品在摄像机模型的拍摄画面占用区域的大小,调整得到摄像机模型的第二拍摄参数。

在一个可选的实施例中,设置模块1504还用于获取三维虚拟物品的最小包围盒。

在一个可选的实施例中,设置模块1504还用于将最小包围盒的对角线长度作为摄像机模型的拍摄画面的长和宽。

在一个可选的实施例中,设置模块1504还用于基于拍摄画面的长和宽,设置摄像机模型的第一拍摄参数。

在一个可选的实施例中,设置模块1504还用于基于第一拍摄参数,控制摄像机模型从不同视角对三维虚拟物品进行拍摄,得到多个视角贴图。

在一个可选的实施例中,设置模块1504还用于将多个视角贴图中,对应三维虚拟物品的相同位置的像素点进行叠加,得到叠加图像。

在一个可选的实施例中,设置模块1504还用于将叠加图像的带像素区域的长度与叠加图像的长度求商,得到第一长度比,以及将叠加图像的带像素区域的宽度与叠加图像的宽度求商,得到第一宽度比,带像素区域是在叠加图像中三维虚拟物品的像素点占用的区域。

在一个可选的实施例中,设置模块1504还用于基于第一长度比和第一宽度比,调整得到摄像机模型的第二拍摄参数,第二拍摄参数用于使得第二长度比等于第一长度比,第二长度比是基于第一拍摄参数拍摄得到的任一视角贴图的长度与基于第二拍摄参数拍摄得到的任一视角贴图的长度求商得到的,第二拍摄参数还用于使得第二宽度比等于第一宽度比,第二宽度比是基于第一拍摄参数拍摄得到的任一视角贴图的宽度与基于第二拍摄参数拍摄得到的任一视角贴图的宽度求商得到的。

在一个可选的实施例中,该装置还包括存储模块1505。

在一个可选的实施例中,存储模块1505用于根据视角划分信息存储m个第一视角贴图在烘焙贴图中所在的贴图区域的区域信息。

在一个可选的实施例中,存储模块1505还用于根据视角划分信息存储n组第二视角贴图在烘焙贴图中所在的贴图区域的区域信息。

在一个可选的实施例中,存储模块1505还用于根据视角划分信息和第二映射关系,在一级存储表中确定与第i个第一视角范围对应的第一存储位置。

在一个可选的实施例中,存储模块1505还用于将第i个第一视角贴图在烘焙贴图中所在的贴图区域的区域信息,存储在第一存储位置,第i个第一视角贴图是与第i个第一视角范围对应的视角贴图。

其中,i为大于0的整数,第二映射关系是摄像机模型的三维视角与一级存储表上的存储位置的映射关系,区域信息包括贴图区域的定位点坐标、高度信息和宽度信息。

在一个可选的实施例中,存储模块1505还用于将第i组第二视角贴图中的每个第二视角贴图在烘焙贴图中所在的贴图子区域的区域信息,存储在二级存储表的目标存储区域中;第i组第二视角贴图与第i个第二视角范围对应。

在一个可选的实施例中,存储模块1505还用于根据视角划分信息和第二映射关系,在一级存储表中确定与第i个第二视角范围对应的第二存储位置。

在一个可选的实施例中,存储模块1505还用于将二级存储表的目标存储区域的索引信息,存储在第二存储位置。

其中,第二映射关系是摄像机模型的三维视角与一级存储表上的存储位置的映射关系。

在一个可选的实施例中,存储模块1505还用于根据视角划分信息和第三映射关系,在二级存储表的目标存储区域中,确定与第i组第二视角贴图中的第j个第二视角贴图的视角范围所对应的第三存储位置。

在一个可选的实施例中,存储模块1505还用于将第j个第二视角贴图在烘焙贴图中所在的贴图子区域的区域信息,存储在第三存储位置。

在一个可选的实施例中,存储模块1505还用于其中,第三映射关系是摄像机模型的三维视角与二级存储表上的存储位置的映射关系。

综上所述,通过获取与m个第一视角范围对应的m个第一视角贴图,和,与n个第二视角范围对应的n组第二视角贴图,以及将m个第一视角贴图和n组第二视角贴图映射绘制至烘焙贴图的不同贴图区域,最终生成烘焙贴图,其中,第二视角贴图的图像分辨率低于第一视角贴图。上述装置与现有的imposter技术相比,通过降低部分视角贴图的图像分辨率,在尺寸不变的情况下,生成的烘焙贴图能容纳更多的视角贴图,极大拓宽了摄像机模型拍摄三维虚拟物品的拍摄视角的可选择范围,在摄像机模型的连续移动过程中,终端的屏幕上显示的画面切换更为流畅。

上述装置中,n个第二贴图视角范围中的第i个第二视角范围被划分为k2个视角子范围,将与视角子范围对应的n组第二视角贴图的第i组第二视角贴图的k2个第二视角贴图中的一个视角贴图,映射绘制在烘焙贴图的n个贴图区域中的k2个贴图子区域中的一个贴图子区域,提供了一种烘焙贴图上视角贴图的分辨率的设置方式,使得烘焙贴图的尺寸与所有视角贴图的分辨率完美兼容。

图16是本申请一个示例性实施例提供的烘焙贴图的使用装置的示意图,该烘焙贴图的使用装置1600包括:

获取模块1601,用于获取三维虚拟物品的烘焙贴图,烘焙贴图是根据视角划分信息将m个第一视角贴图和n组第二视角贴图分别映射绘制至烘焙贴图的不同贴图区域得到的,m个第一视角贴图是通过摄像机模型获取三维虚拟物品在第一视角范围下的第一视角贴图得到的,n组第二视角贴图是通过摄像机模型获取三维虚拟物品在视角子范围下的第二视角贴图,得到n组子视角贴图,将n组子视角贴图进行降采样处理得到的,视角子范围是划分第二视角范围得到的,m个第一视角范围和n个第二视角范围根据视角划分信息构成三维虚拟物品的采集视角范围;

确定模块1602,用于确定三维虚拟物品的采集视角,采集视角是摄像机模型朝向三维虚拟物品的视角;

确定模块1602,还用于从烘焙贴图中确定与采集视角对应的视角贴图;

其中,m、n为大于0的整数。

在一个可选的实施例中,m个第一视角贴图是根据视角划分信息映射绘制至烘焙贴图的m个贴图区域的,n组第二视角贴图是根据视角划分信息映射绘制至烘焙贴图的n个贴图区域的,n组第二视角贴图中的每组第二视角贴图阵列排布在同一个贴图区域中的不同贴图子区域。

在一个可选的实施例中,n个第二视角范围中的第i个第二视角范围被划分为k2个视角子范围,k为不小于2的整数。

在一个可选的实施例中,n组第二视角贴图是根据视角划分信息和第一映射关系,在烘焙贴图上确定与第i个第二视角范围对应的贴图区域,然后将第i组第二视角贴图中的每个第二视角贴图,根据第一映射关系映射绘制至k2个贴图子区域中的一个贴图子区域的。

其中,与第i个第二视角范围对应的贴图区域被划分为k2个贴图子区域,第i组第二视角贴图与第i个第二视角范围对应,第一映射关系是摄像机模型的三维视角与烘焙贴图上的二维坐标的映射关系。

在一个可选的实施例中,m个第一视角贴图中的每个第一视角贴图占用的贴图区域的面积,与每组第二视角贴图占用的贴图区域的面积相同。

在一个可选的实施例中,确定模块1602,还用于根据视角划分信息从烘焙贴图中确定与第一采集视角对应的目标第一视角贴图。

在一个可选的实施例中,确定模块1602,还用于根据视角划分信息从烘焙贴图中确定与第二采集视角对应的目标第二视角贴图。

其中,第一采集视角是m个第一视角范围中的一个视角,第二采集视角是n个第二视角范围中第i个视角范围的一个视角,i为大于0的整数。

在一个可选的实施例中,确定模块1602,还用于根据视角划分信息和第二映射关系,在一级存储表中确定与第一采集视角对应的第一存储位置。

在一个可选的实施例中,确定模块1602,还用于从第一存储位置获取第一采集视角在烘焙贴图中所在的贴图区域的区域信息。

在一个可选的实施例中,确定模块1602,还用于根据第一采集视角在烘焙贴图中所在的贴图区域的区域信息,从烘焙贴图中确定与第一采集视角对应的目标第一视角贴图。

其中,第二映射关系是摄像机模型的三维视角与一级存储表上的存储位置的映射关系,区域信息包括贴图区域的定位点坐标、高度信息和宽度信息。

在一个可选的实施例中,一级存储表存储有与n个第二视角范围对应的二级存储表的目标存储区域的索引信息;二级存储表存储有与第i个视角范围对应的k2个第二视角贴图在烘焙贴图中所在的贴图区域的区域信息。

在一个可选的实施例中,确定模块1602,还用于根据视角划分信息和第二映射关系,在一级存储表中确定与第i个第二视角范围对应的第二存储位置。

在一个可选的实施例中,确定模块1602,还用于从第二存储位置获取目标索引信息,目标索引信息是第i个第二视角范围在二级存储表中的目标存储区域的索引信息。

在一个可选的实施例中,确定模块1602,还用于根据目标索引信息和第三映射关系,在二级存储表中确定目标存储区域中的第三存储位置,第三存储位置存储有与目标视角子范围对应的目标第二视角贴图在烘焙贴图中所在的贴图子区域的区域信息。

在一个可选的实施例中,确定模块1602,还用于从第三存储位置获取子区域信息,子区域信息是目标第二视角贴图在烘焙贴图中所在的贴图子区域的区域信息。

在一个可选的实施例中,确定模块1602,根据目标子区域信息,从烘焙贴图中确定目标第二视角贴图。

其中,第三映射关系是摄像机模型的三维视角与二级存储表上的存储位置的映射关系。

综上所述,通过一级存储表和二级存储表,上述装置从烘焙贴图中确定与采集视角对应的视角贴图,烘焙贴图由m个第一视角贴图和n组第二视角贴图映射绘制得到的,第二视角贴图的分辨率低于第一视角贴图的分辨率。上述装置与使用基于现有的imposter技术生成的烘焙贴图相比,可被选择的采集视角的范围更广,在摄像机模型的连续移动过程中,终端的屏幕上显示的画面切换更为流畅。

上述装置还规范了确定视角贴图的流程,在保证准确率的前提下,提高了上述装置确定视角贴图的效率。

图17示出了本申请一个示例性实施例提供的计算机设备的结构框图。该计算机设备1700可以是便携式移动终端,比如:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备1700还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,计算机设备1700包括有:处理器1701和存储器1702。

处理器1701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1701可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1701可以集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1701还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器1702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1701所执行以实现本申请中方法实施例提供的烘焙贴图的生成方法或烘焙贴图的使用方法。

在一些实施例中,计算机设备1700还可选包括有:外围设备接口1703和至少一个外围设备。处理器1701、存储器1702和外围设备接口1703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1703相连。具体地,外围设备包括:射频电路1704、显示屏1705、摄像头组件1706、音频电路1707、定位组件1708和电源1709中的至少一种。

外围设备接口1703可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1701和存储器1702。在一些实施例中,处理器1701、存储器1702和外围设备接口1703被集成在同一芯片或电路板上;在一些其他实施例中,处理器1701、存储器1702和外围设备接口1703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1704用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路1704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1704包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路1704还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏1705用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1705是触摸显示屏时,显示屏1705还具有采集在显示屏1705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1701进行处理。此时,显示屏1705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1705可以为一个,设置在计算机设备1700的前面板;在另一些实施例中,显示屏1705可以为至少两个,分别设置在计算机设备1700的不同表面或呈折叠设计;在另一些实施例中,显示屏1705可以是柔性显示屏,设置在计算机设备1700的弯曲表面上或折叠面上。甚至,显示屏1705还可以设置成非矩形的不规则图形,也即异形屏。显示屏1705可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件1706用于采集图像或视频。可选地,摄像头组件1706包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1701进行处理,或者输入至射频电路1704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1701或射频电路1704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1707还可以包括耳机插孔。

定位组件1708用于定位计算机设备1700的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件1708可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。

电源1709用于为计算机设备1700中的各个组件进行供电。电源1709可以是交流电、直流电、一次性电池或可充电电池。当电源1709包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,计算机设备1700还包括有一个或多个传感器1710。该一个或多个传感器1710包括但不限于:加速度传感器1711、陀螺仪传感器1712、压力传感器1713、指纹传感器1714、光学传感器1715以及接近传感器1716。

加速度传感器1711可以检测以计算机设备1700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1711可以用于检测重力加速度在三个坐标轴上的分量。处理器1701可以根据加速度传感器1712采集的重力加速度信号,控制显示屏1705以横向视图或纵向视图进行用户界面的显示。加速度传感器1712还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1712可以检测计算机设备1700的机体方向及转动角度,陀螺仪传感器1712可以与加速度传感器1711协同采集用户对计算机设备1700的3d动作。处理器1701根据陀螺仪传感器1712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1713以设置在计算机设备1700的侧边框和/或显示屏1705的下层。当压力传感器1713设置在计算机设备1700的侧边框时,可以检测用户对计算机设备1700的握持信号,由处理器1701根据压力传感器1712采集的握持信号进行左右手识别或快捷操作。当压力传感器1713设置在显示屏1705的下层时,由处理器1701根据用户对显示屏1705的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1714用于采集用户的指纹,由处理器1701根据指纹传感器1714采集到的指纹识别用户的身份,或者,由指纹传感器1714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1714可以被设置在计算机设备1700的正面、背面或侧面。当计算机设备1700上设置有物理按键或厂商logo时,指纹传感器1714可以与物理按键或厂商logo集成在一起。

光学传感器1715用于采集环境光强度。在一个实施例中,处理器1701可以根据光学传感器1715采集的环境光强度,控制显示屏1705的显示亮度。具体地,当环境光强度较高时,调高显示屏1705的显示亮度;当环境光强度较低时,调低显示屏1705的显示亮度。在另一个实施例中,处理器1701还可以根据光学传感器1715采集的环境光强度,动态调整摄像头组件1706的拍摄参数。

接近传感器1716,也称距离传感器,通常设置在计算机设备1700的前面板。接近传感器1716用于采集用户与计算机设备1700的正面之间的距离。在一个实施例中,当接近传感器1716检测到用户与计算机设备1700的正面之间的距离逐渐变小时,由处理器1701控制显示屏1705从亮屏状态切换为息屏状态;当接近传感器1716检测到用户与计算机设备1700的正面之间的距离逐渐变大时,由处理器1701控制显示屏1705从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图17中示出的结构并不构成对计算机设备1700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

本申请还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方法实施例提供的烘焙贴图的生成方法或烘焙贴图的使用方法。

本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例提供的烘焙贴图的生成方法或烘焙贴图的使用方法。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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