发明内容
有鉴于此,本说明书实施例提供了一种图像绘制方法、装置、计算设备及存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种图像绘制方法,包括:
通过虚拟相机获取待展示的3D场景的场景数据以及所述3D场景对应的UI数据;
为所述UI数据中的UI控件配置深度;
基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元;
根据所述渲染图元绘制所述待展示的3D场景。
可选地,为所述UI数据中的UI控件配置深度包括:
为所述UI数据中的UI控件配置第一深度;
将UI控件的第一深度与预设的标准深度比较,确定对应的第一缩放系数;
利用所述第一缩放系数对UI控件的第一深度进行调整,得到UI控件的深度。
可选地,基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元之前还包括:
获取3D场景的场景数据中各个场景元素的第二深度;
将场景元素的第二深度与预设的标准深度比较,确定对应的第二缩放系数;
利用所述第二缩放系数对场景元素的第二深度进行调整,得到场景元素的深度;
基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元包括:
基于所述3D场景的场景元素以及场景元素对应的深度、所述UI数据以及UI控件对应的深度生成所述3D场景的渲染图元。
可选地,所述3D场景包括至少两层场景数据。
可选地,所述3D场景包括至少两层UI数据。
可选地,所述UI控件包括:操作轮盘、技能释放键和/或方向键。
可选地,所述场景元素包括:地形、树木、天空、动物和/或建筑。
根据本说明书实施例的第二方面,提供了一种图像绘制装置,包括:
获取模块:被配置为通过虚拟相机获取待展示的3D场景的场景数据以及所述3D场景对应的UI数据;
配置模块:被配置为为所述UI数据中的UI控件配置深度;
生成模块:被配置为基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元;
绘制模块:被配置为根据所述渲染图元绘制所述待展示的3D场景。
可选地,配置模块包括:
配置单元:被配置为为所述UI数据中的UI控件配置第一深度;
第一确定单元:被配置为将UI控件的第一深度与预设的标准深度比较,确定对应的第一缩放系数;
第一调整单元:被配置为利用所述第一缩放系数对UI控件的第一深度进行调整,得到UI控件的深度。
可选地,生成模块包括:
获取单元:被配置为获取3D场景的场景数据中各个场景元素的第二深度;
第二确定单元:被配置为将场景元素的第二深度与预设的标准深度比较,确定对应的第二缩放系数;
第二调整单元:被配置为利用所述第二缩放系数对场景元素的第二深度进行调整,得到场景元素的深度;
基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元包括:
生成单元:被配置为基于所述3D场景的场景元素以及场景元素对应的深度、所述UI数据以及UI控件对应的深度生成所述3D场景的渲染图元。
可选地,所述3D场景包括至少两层场景数据。
可选地,所述3D场景包括至少两层UI数据。
可选地,所述UI控件包括:操作轮盘、技能释放键和/或方向键。
可选地,所述场景元素包括:地形、树木、天空、动物和/或建筑。
根据本说明书实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述图像绘制方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述图像绘制方法的步骤。
本说明书实施例中,通过虚拟相机获取待展示的3D场景的场景数据以及所述3D场景对应的UI数据,所述UI数据中的UI控件配置深度,基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元,根据所述渲染图元绘制所述待展示的3D场景。通过对所述UI控件配置深度并进行渲染,使UI控件画面具有立体感。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请中,提供了一种图像绘制方法、装置、计算设备及存储介质,在下面的实施例中逐一进行详细说明。
图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备100的上述以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示图像绘制方法中的步骤。图2是示出了根据本说明书一实施例的图像绘制方法的流程图,包括步骤202至步骤208。
步骤202:通过虚拟相机获取待展示的3D场景的场景数据以及所述3D场景对应的UI数据。
本说明书一实施例中,通过FOV(Field of view,视场角)确定3D场景中的视野范围,在所述视野范围中获取待展示的3D场景的场景数据以及所述3D场景对应的UI数据。
本说明书一实施例中,所述3D场景可以包括至少两层场景数据,可以包括至少两层UI数据。在3D场景中多层场景数据的深度不同,多层UI数据深度不同,并在获取3D场景时,为所述3D场景设定基本层,所述基本层为设定的深度位置。
步骤204:为所述UI数据中的UI控件配置深度。
本说明书实施例中,为UI控件配置配置深度时,需要考虑FOV。配置与3D场景对应的深度即在FOV内对所述UI控件的深度进行配置。
本说明书一实施例中,为所述UI(User Interface,用户界面)数据中的UI控件配置与3D(3Dimensions,三维)场景对应的深度包括:
为所述UI数据中的UI控件配置第一深度;
将UI控件的第一深度与预设的标准深度比较,确定对应的第一缩放系数;
利用所述第一缩放系数对UI控件的第一深度进行调整,得到UI控件的深度。
在实际应用中,3D场景中存在多个UI控件的情况,每个UI控件可以根据图像绘制需求,配置不同的深度,各个UI控件的画面可以一致或不一致,用于显示出UI画面立体效果,本说明书对此不做任何限定。
本说明书一实施例中,所述UI控件包括:操作轮盘、技能释放键和/或方向键。
本说明书一实施例中,所述场景元素包括:地形、树木、天空、动物和/或建筑。
本说明书一实施例中,计算缩放系数公式:
H=D/S
其中所述H表示缩放系数,D表示深度,S表示预设的标准深度。
本说明书一实施例中,通过对所述UI数据中的UI控件配置深度,确定所述UI控件的缩放系数,可以对所述UI控件均进行渲染绘制出立体感。
在实际应用中,以3D游戏为例,通过UI数据中的UI控件配置第一深度,其中所述UI控件为游戏中的操作轮盘,通过游戏中的操作轮盘与虚拟相机的距离确定第一深度D1,并根据第一深度D1与标准深度S1进行比较,计算出第一缩放系数H1,其中H1=D1/S1,通过第一缩放系数H1对所述操作轮盘的第一深度D1进行调整,得到调整后的操作轮盘的深度。
步骤206:基于所述3D场景的场景数据,所述UI数据以及UI控件的深度生成所述3D场景的渲染图元。
本说明书一实施例中,基于所述3D场景的场景数据,所述UI数据以及UI控件的深度生成所述3D场景的渲染图元之前还包括:
获取3D场景的场景数据中各个场景元素的第二深度;
将场景元素的第二深度与预设的标准深度比较,确定对应的第二缩放系数;
利用所述第二缩放系数对场景元素的第二深度进行调整,得到场景元素的深度;
基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元包括:
基于所述3D场景的场景元素以及场景元素对应的深度、所述UI数据以及UI控件对应的深度生成所述3D场景的渲染图元。
本说明书一实施例中,所述3D场景的场景数据中可以包括场景元素与场景元素对应的深度。
在实际应用中,3D场景中存在多个场景元素的情况下,每个场景元素可以在获取3D场景对应的深度时,获取每个场景元素对应的深度;每个场景元素也可以根据图像绘制需求,配置不同的深度,本说明书对此不做任何限定。
在实际应用中,以3D游戏为例,通过UI数据中的UI控件配置第一深度,其中所述UI控件为游戏中的操作轮盘,通过游戏中的操作轮盘与虚拟相机的距离确定第一深度D1,并根据第一深度D1与标准深度S1进行比较,计算出第一缩放系数H1,其中H1=D1/S1,通过第一缩放系数H1对所述操作轮盘的第一深度D1进行调整,得到调整后的操作轮盘的深度。获取3D场景的场景数据中各个场景元素的第二深度D2,其中所述场景元素为树木,并将所述树木的深度与预设的标准深度S2进行比较,得出对应的第二缩放系数H2,所述H2=D2/S2,通过第二缩放系数H2对所述树木的第二深度D2进行调整,得到调整后的树木深度。
本说明书一实施例中,通过对所述3D场景中的场景元素与UI控件的缩放,得到远处物体小,近处物体大的图像,对所述UI控件确定深度与场景元素的深度生成3D场景的渲染图元。
步骤208:根据所述渲染图元绘制所述待展示的3D场景。
本说明书一实施例中,所述渲染图元绘制包括应用程序阶段、几何阶段和光栅化阶段,根据所述生成的渲染图元进行绘制,通过对所述UI控件配置深度,使得对UI控件进行投影时具有立体感,并采用透视投影的方式对所述UI控件进行投影,将UI控件与场景数据生成的图元进行透视投影,并根据缩放系数确定远近各个UI控件与场景元素的尺寸比例一致,确保距离较远的UI控件与较近的UI控件的显示效果偏差过大。
本说明书一实施例中,在3D场景中不同层场景数据的深度是不同的,不同层UI数据深度是不同的。当所述场景数据与UI数据的深度相同时,则所述场景数据中的场景元素与UI数据中的UI控件在同一层上进行渲染;当所述场景数据与UI数据的深度不相同时,则所述场景数据中的场景元素在场景层上进行渲染,UI数据中的UI控件在UI层上进行渲染。
本说明书一实施例中,通过虚拟相机获取待展示的3D场景的场景数据以及所述3D场景对应的UI数据,所述UI数据中的UI控件配置深度,基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元,根据所述渲染图元绘制所述待展示的3D场景。通过设定的基本层对所述UI控件配置深度并进行渲染,使UI控件画面具有立体感,并根据缩放系数确定3D场景中UI控件与场景元素的尺寸比例一致,最终的投影对所述UI控件与场景元素进行透视投影,将UI控件与场景元素最终的显示效果具有立体感。
参见图3(a)、图3(b)和图4,对本说明书一实施例提供的图像绘制方法进行描述。
图3(a)、图3(b)是图像绘制方法以对3D游戏为例的示意图,图4是图像绘制方法以对3D游戏为例的流程图,该图像绘制方法包括步骤402至步骤410。
步骤402:通过虚拟相机获取待展示3D场景中的场景层以及UI层。
本说明书一实施例中,所述场景数据为场景层,所述UI数据为UI层,在本实施例中,以一层场景层与两层UI层进行详细描述。
本说明书一实施例中,参见图3(a)所示,通过虚拟相机获取3D游戏中的层与UI层,其中所述场景层包括场景层1,场景层1中包括场景元素1与场景元素2,所述场景元素1为3D游戏中的山,场景元素2为3D游戏中的树木;所述UI层包括UI层1与UI层2,所述UI层1中包括UI控件1,所述UI层2中包括UI控件2,其中所述UI控件1为方向按键,所述UI控件2为攻击按键。
参见图3(b),图3(b)为图3(a)的截面图,相对应的包括:图3(b)中S表述虚拟相机,AGB表示UI层1,DHC表示UI层2,EIF表示场景层1。
步骤404:为所述UI层配置深度,并获取场景层深度。
参见图3(b),为所述UI层1与UI层2配置深度,所述UI层1的深度SG为K1,所述UI层2的深度SH为K2,所述场景层1深度SF为K3。
步骤406:将配置的深度与预设的标准深度比较,确定对应的缩放系数。
参见图3(b),预设的标准深度为K,通过上述获取的UI层深度与场景层深度确定对应的缩放系数,所述UI层1的缩放系数R1=K1/K,所述UI层2的所述缩放系数R2=K2/K,所述场景层1的缩放系数R3=K3/K,通过计算每个层的缩放系数确定UI层中UI控件的缩放系数和场景层中场景元素的缩放系数,则所述UI控件1的缩放系数为R1,所述UI控件2的缩放系数为R2,所述场景元素1和场景元素2的缩放系数为R3。
步骤408:根据UI控件与场景元素对应的缩放系数生成3D场景的渲染图元。
本说明书一实施例中,通过对所述UI控件与场景元素共同确定对应的缩放系数,使得所述UI控件与场景元素的缩放尺寸一致,并将所述UI控件加入到3D场景中,生成对应的3D场景的渲染图元,对UI控件与场景元素均进行绘制。
步骤410:根据所述渲染图元绘制待展示的3D场景。
本说明书一实施例中,所述渲染图元中包括UI控件与场景元素,对所述渲染图元进行绘制时,采用透视投影方式,显示出的3D场景中包括UI控件与场景元素,绘制出新的3D游戏画面。其中所述方向按键与攻击按键均显示为立体感,在游戏进行过程中,UI控件在游戏角色旋转的时候可以产生透视关系,并可以在界面上显示3D的按键。
本说明书一实施例中,通过虚拟相机获取待展示3D场景中的场景层以及UI层,为所述UI层配置深度,并获取场景层深度,通过深度与预设的标准深度比较,计算对应的缩放系数,根据UI控件与场景元素对应的缩放系数生成3D场景的渲染图元,根据所述渲染图元绘制待展示的3D场景。对所述UI控件与场景元素均进行透视投影,使显示的画面中包括UI控件并以3D的方式显示,使得画面更有立体感,提高了玩家在游戏中的体验。
参见图5(a)、图5(b)和图6,对本说明书一实施例提供的图像绘制方法进行描述。
图5(a)和图5(b)是图像绘制方法以对3D游戏为例的示意图,图6是图像绘制方法以对3D游戏为例的流程图,该图像绘制方法包括步骤602至步骤610。
本说明书一实施例中,所述3D场景中包括多层场景数据与多层UI数据,在本实施例中,通过以两层场景数据和两层UI数据进行描述。
步骤602:通过虚拟相机获取待展示3D场景中的多层场景层与多层UI层。
参见图5(a),通过虚拟相机获取3D游戏中的场景层与UI层,其中所述场景层包括场景层1与场景层2,场景层1中包括场景元素1,场景层2中包括场景元素2和场景元素3,所述场景元素1为3D游戏中的山,场景元素2为3D游戏中的树木,场景元素3为3D游戏中的水;所述UI层包括UI层1与UI层2,所述UI层1中包括UI控件1,所述UI层2中包括UI控件2,其中所述UI控件1为方向按键,所述UI控件2为攻击按键。
参见图5(b)所示,图5(b)为图5(a)的截面图,相对应的包括:图5(b)中S表述虚拟相机,AGB表示UI层1,DHC表示UI层2,EIF表示场景层1,MON表示场景层2。
步骤604:为所述UI层分别配置不同深度,并获取每层场景层的深度。
参见图5(b)所示,为所述UI层1与UI层2配置深度,所述UI层1的深度SG为K1,所述UI层2的深度SH为K2,所述场景层1深度SF为K3,所述场景层2深度SO为K4。
步骤606:将UI层配置的深度与预设的标准深度比较,将场景层深度与预设的标准深度比较,确定对应的缩放系数。
参见图5(b)所示,预设的标准深度为K,通过上述获取的UI层深度与场景层深度确定对应的缩放系数,所述UI层1的缩放系数R1=K1/K,所述UI层2的所述缩放系数R2=K2/K,所述场景层1的缩放系数R3=K3/K,所述场景层2的缩放系数R4=K4/K,通过计算每个层的缩放系数确定UI层中UI控件的缩放系数和场景层中场景元素的缩放系数,则所述UI控件1的缩放系数为R1,所述UI控件2的缩放系数为R2,所述场景元素1的缩放系数为R3,所述场景元素2和场景元素3的缩放系数为R4。
步骤608:根据UI层的UI控件与场景层的场景元素对应的缩放系数生成3D场景的渲染图元。
本说明书一实施例中,通过对所述UI控件与场景元素共同确定对应的缩放系数,使得所述UI控件与场景元素的缩放尺寸一致,并将所述UI控件加入到3D场景中,生成对应的3D场景的渲染图元,对UI控件与场景元素均进行绘制。
步骤610:根据所述渲染图元绘制待展示的3D场景。
本说明书一实施例中,所述渲染图元中包括UI控件与场景元素,对所述渲染图元进行绘制时,采用透视投影方式,显示出的3D场景中包括UI控件与场景元素,绘制出新的3D游戏画面。其中所述方向按键与攻击按键均显示为立体感,在游戏进行过程中,UI控件在游戏角色旋转的时候可以产生透视关系,并可以在界面上显示3D的按键。
本说明书一实施例中,通过虚拟相机获取待展示3D场景中的多层场景层与多层UI层,为所述UI层配置深度,并获取场景层深度,通过深度与预设的标准深度比较,计算对应的缩放系数,根据UI控件与场景元素对应的缩放系数生成3D场景的渲染图元,根据所述渲染图元绘制待展示的3D场景。根据不同的3D场景可以设定多个场景层和多个UI层,对所述UI层中的UI控件与场景层中的场景元素均进行透视投影,使显示的画面中包括UI控件并以3D的方式显示,使得画面更有立体感,提高了玩家在游戏中的体验。
与上述方法实施例相对应,本说明书还提供了图像绘制装置实施例,图7示出了本说明书一个实施例的图像绘制装置的结构示意图。如图7所示,该装置700包括:
获取模块702:被配置为通过虚拟相机获取待展示的3D场景的场景数据以及所述3D场景对应的UI数据;
配置模块704:被配置为为所述UI数据中的UI控件配置深度;
生成模块706:被配置为基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元;
绘制模块708:被配置为根据所述渲染图元绘制所述待展示的3D场景。
一个可选的实施例中,配置模块704包括:
配置单元:被配置为为所述UI数据中的UI控件配置第一深度;
第一确定单元:被配置为将UI控件的第一深度与预设的标准深度比较,确定对应的第一缩放系数;
第一调整单元:被配置为利用所述第一缩放系数对UI控件的第一深度进行调整,得到UI控件的深度。
一个可选的实施例中,生成模块706包括:
获取单元:被配置为获取3D场景的场景数据中各个场景元素的第二深度;
第二确定单元:被配置为将场景元素的第二深度与预设的标准深度比较,确定对应的第二缩放系数;
第二调整单元:被配置为利用所述第二缩放系数对场景元素的第二深度进行调整,得到场景元素的深度;
基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元包括:
生成单元:被配置为基于所述3D场景的场景元素以及场景元素对应的深度、所述UI数据以及UI控件的对应深度生成所述3D场景的渲染图元。
一个可选的实施例中,所述3D场景包括至少两层场景数据。
一个可选的实施例中,所述3D场景包括至少两层UI数据。
一个可选的实施例中,所述UI控件包括:操作轮盘、技能释放键和/或方向键。
一个可选的实施例中,所述场景元素包括:地形、树木、天空、动物和/或建筑。
本说明书实施例中,通过通过虚拟相机获取待展示的3D场景的场景数据以及所述3D场景对应的UI数据,所述UI数据中的UI控件配置深度,基于所述3D场景的场景数据、所述UI数据以及UI控件的深度生成所述3D场景的渲染图元,根据所述渲染图元绘制所述待展示的3D场景。通过对所述UI控件配置深度并进行渲染,使UI控件画面具有立体感。
本说明书一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的图像绘制方法的步骤。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述图像绘制方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的图像绘制方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述图像绘制方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。