CN109461199B - 画面渲染方法和装置、存储介质及电子装置 - Google Patents
画面渲染方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN109461199B CN109461199B CN201811371864.9A CN201811371864A CN109461199B CN 109461199 B CN109461199 B CN 109461199B CN 201811371864 A CN201811371864 A CN 201811371864A CN 109461199 B CN109461199 B CN 109461199B
- Authority
- CN
- China
- Prior art keywords
- depth
- pixel point
- depth value
- rendering
- target object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/536—Depth or shape recovery from perspective effects, e.g. by using vanishing points
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种画面渲染方法和装置、存储介质及电子装置。其中,该方法包括:确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面,其中,目标画面中包含背景画面和在背景画面上移动的角色对象,背景画面中包括位于固定位置的目标对象;利用与目标对象相对应的深度贴图中所指示的深度偏移,确定背景画面中目标对象上的像素点所对应的第一深度值,其中,深度贴图中记录有目标对象上各个像素点的深度偏移;获取移动到当前显示位置的角色对象上的像素点所对应的第二深度值;根据第一深度值和第二深度值渲染目标画面。本发明解决了相关技术中对二维画面信息进行渲染的准确性较低的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种画面渲染方法和装置、存储介质及电子装置。
背景技术
在通过客户端呈现的二维(2Dimension,简称2D)虚拟场景中,往往仅携带有该2D虚拟场景的二维画面信息,因而在渲染画面中所包含的各个虚拟对象时,常用的渲染方式是:当对上述虚拟对象进行渲染时,虚拟对象之间出现遮挡,则对被遮挡的虚拟对象做半透明处理,以模拟出上述虚拟对象在2D虚拟场景中的遮挡关系。
然而,在采用上述渲染方式来模拟画面中的遮挡关系时,将使得渲染效果出现严重失真,从而导致渲染准确性较低的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种画面渲染方法和装置、存储介质及电子装置,以至少解决相关技术中对二维画面信息进行渲染的准确性较低的技术问题。
根据本发明实施例的一个方面,提供了一种画面渲染方法,包括:确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面,其中,上述目标画面中包含背景画面和在上述背景画面上移动的角色对象,上述背景画面中包括位于固定位置的目标对象;利用与上述目标对象相对应的深度贴图中所指示的深度偏移,确定上述背景画面中上述目标对象上的像素点所对应的第一深度值,其中,上述深度贴图中记录有上述目标对象上各个像素点的深度偏移;获取移动到当前显示位置的上述角色对象上的像素点所对应的第二深度值;根据上述第一深度值和上述第二深度值渲染上述目标画面。
根据本发明实施例的另一方面,还提供了一种画面渲染装置,包括:第一确定单元,用于确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面,其中,上述目标画面中包含背景画面和在上述背景画面上移动的角色对象,上述背景画面中包括位于固定位置的目标对象;第二确定单元,用于利用与上述目标对象相对应的深度贴图中所指示的深度偏移,确定上述背景画面中上述目标对象上的像素点所对应的第一深度值,其中,上述深度贴图中记录有上述目标对象上各个像素点的深度偏移;获取单元,用于获取移动到当前显示位置的上述角色对象上的像素点所对应的第二深度值;渲染单元,用于根据上述第一深度值和上述第二深度值渲染上述目标画面。
作为一种可选的示例,上述装置还包括:第三确定单元,用于在上述利用与上述目标对象相对应的深度贴图中所指示的深度偏移,确定上述背景画面中上述目标对象上的像素点所对应的第一深度值之前,确定上述背景画面中上述目标对象与上述二维虚拟场景中所呈现的地面之间的接地线;第四确定单元,用于将上述目标对象上的像素点到上述接地线的投影距离,确定为上述目标对象上的像素点的上述深度偏移;生成单元,用于利用上述深度偏移生成上述深度贴图。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述画面渲染方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的画面渲染方法。
在本发明实施例中,采用了确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面;利用与上述目标对象相对应的深度贴图中所指示的深度偏移,确定上述背景画面中上述目标对象上的像素点所对应的第一深度值;获取移动到当前显示位置的上述角色对象上的像素点所对应的第二深度值;根据上述第一深度值和上述第二深度值渲染上述目标画面的方法,在上述方法中,由于在获取到背景画面后,可以根据背景画面中的目标对象的第一深度值与角色对象上的像素点的第二深度值确定是否渲染角色对象上的像素点,从而可以使角色对象与背景画面中的目标画面层次清晰,遮挡关系明显,保证了在背景画面中的目标对象与背景画面之外的角色对象之间存在遮挡的情况下仍能够准确地对背景画面与角色对象进行渲染,提高了渲染的准确性。进而解决了相关技术中对二维画面信息进行渲染的准确性较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的画面渲染方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的画面渲染方法的流程示意图;
图3是根据本发明实施例的一种可选的画面渲染方法的示意图;
图4是根据本发明实施例的另一种可选的画面渲染方法的示意图;
图5是根据本发明实施例的又一种可选的画面渲染方法的示意图;
图6是根据本发明实施例的又一种可选的画面渲染方法的示意图;
图7是根据本发明实施例的又一种可选的画面渲染方法的示意图;
图8是根据本发明实施例的又一种可选的画面渲染方法的示意图;
图9是根据本发明实施例的一种可选的画面渲染装置的结构示意图;
图10是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种画面渲染方法,可选地,作为一种可选的实施方式,上述画面渲染方法可以但不限于应用于如图1所示的环境中。如图1所示,用户102与用户设备104之间可以进行数据交互。用户设备104包括存储器106与处理器108。存储器106用于存储待渲染的目标画面,处理器108用于对交互数据进行处理。用户设备104通过网络110通过步骤S102将待渲染目标画面上传到服务器112,服务器112中包含有存储设备114与渲染引擎116。存储设备114用于存储待渲染目标画面与渲染后目标画面,渲染引擎116用于将待渲染目标画面渲染为渲染后目标画面。在得到上述渲染后目标画面后,服务器112通过网络110通过步骤S104返回渲染后目标画面给用户设备104,用户设备104显示上述渲染后目标画面。
需要说明的是,相关技术中,在渲染二维画面信息的时候,通常采用的是如下方法:
方法一:场景整做
该方法地表和物件不分离,绘制在一张图上,当角色被场景上的物件遮挡时,角色做半透明处理,以表现被遮挡。优点:消耗资源少(所以更多见于早期的2D游戏)。缺点:表现力差(由于角色做半透明处理,因此,角色的渲染是模糊不清的,渲染准确性差)。
方法二:地表和场景物件分离
该方法地表与场景物件单独出图,实时对所有物件排序,按从后往前的顺序绘制(画家算法)。优点:相对于早期方案表现力好。缺点:消耗高(安装包和内存的资源量大、排序消耗的CPU时间长、绘制时渲染次数多)。
由上述内容可知,相关技术中渲染2D画面时存在失真严重或者消耗高的问题。而在本实施例中,由于在获取到背景画面后,可以根据背景画面中的目标对象的第一深度值与角色对象上的像素点的第二深度值确定是否渲染角色对象上的像素点,从而可以使角色对象与背景画面中的目标画面层次清晰,遮挡关系明显,保证了在背景画面中的目标对象与背景画面之外的角色对象之间存在遮挡的情况下仍能够准确地对背景画面与角色对象进行渲染,提高了渲染的准确性。同时由于本实施例一次性渲染了背景画面与角色对象,从而降低了消耗,节省了资源。
可选地,上述将画面渲染方法应用于服务器中仅为一种示例,上述画面渲染方法还可以但不限于应用于可以计算数据的终端上,例如手机、平板电脑、笔记本电脑、PC机等终端上,上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器可以包括但不限于任何可以进行计算的硬件设备。
可选地,作为一种可选的实施方式,如图2所示,上述画面渲染方法包括:
S202,确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面,其中,目标画面中包含背景画面和在背景画面上移动的角色对象,背景画面中包括位于固定位置的目标对象;
S204,利用与目标对象相对应的深度贴图中所指示的深度偏移,确定背景画面中目标对象上的像素点所对应的第一深度值,其中,深度贴图中记录有目标对象上各个像素点的深度偏移;
S206,获取移动到当前显示位置的角色对象上的像素点所对应的第二深度值;
S208,根据第一深度值和第二深度值渲染目标画面。
可选地,上述画面渲染方法可以但不限于应用于渲染二维平面游戏的游戏画面的过程中,或者应用于渲染二维动画的画面的过程中。
以下结合将上述画面渲染方法应用于渲染二维平面游戏的游戏画面的过程进行说明。在获取到二维平面游戏的游戏画面之后,将获取到的游戏画面作为待渲染的目标画面。待渲染的目标画面中包含有背景画面与背景画面上移动的角色对象。背景画面中包括有固定位置的目标对象。获取背景画面中国的目标对象上的像素点对应的第一深度值与角色对象上的像素点的第二深度值,根据上述第一深度值与第二深度值对目标画面进行渲染。在上述过程中,在获取到背景画面后,可以根据背景画面中的目标对象的第一深度值与角色对象上的像素点的第二深度值确定是否渲染角色对象上的像素点,从而可以使角色对象与背景画面中的目标画面层次清晰,遮挡关系明显,保证了在背景画面中的目标对象与背景画面之外的角色对象之间存在遮挡的情况下仍能够准确地对背景画面与角色对象进行渲染,提高了渲染的准确性。
可选地,可以但不限于将任意连续的两张待渲染目标画面中移动了的对象确定为角色对象,将未移动的对象确定为目标对象。例如,在获取到连续两帧的二维动画的画面后,画面中的对象位置或形状发生了变化,例如,人物进行了移动,则将位置或形状发生了变化的对象确定为角色对象,而画面中的对象位置与形状均未发生改变,例如建筑物的位置未发生变化形状也未改变,则将位置与形状均未发生改变的对象确定为目标对象。
可选地,可以但不限于为目标画面中的每一个像素点确定一个深度值,其中,上述深度值用于表示当前像素点所呈现出的画面的远近。例如如图3所示,图3中包括待渲染目标画面302。根据终端的显示屏幕设立平面直角坐标系,则目标画面302中的每一个像素点都对应一个坐标。根据坐标值的纵坐标得到每一个像素点的深度值。从上到下每一行的深度值分别为a、b、…、h。纵向的像素点越向上深度值越大,表示像素点所呈现的画面越远。深度值越小则表示像素点所呈现的画面越近。横向的像素点的深度值相同。在渲染过程中,如果像素点的深度值变小,则表现出的画面覆盖之前的画面。若像素点的深度值变大,则表现出的画面不变。
可选地,在确定了背景画面中的每一个像素点的深度值后,在确定背景画面上的目标对象的像素点的第一深度值之前,还可以通过以下方法获取到上述深度贴图:确定背景画面中目标对象与二维虚拟场景中所呈现的地面之间的接地线;将目标对象上的像素点到接地线的投影距离,确定为目标对象上的像素点的深度偏移;利用深度偏移生成深度贴图。
可选地,上述深度偏移值可以但不限于目标对象与背景图片中的地面的连接线。上述深度偏移可以但不限于为目标对象上的像素点与投影到接地线上的像素点之间的深度值的差值。
例如,以背景图片中包含的目标对象中存在像素点1与像素点2为例,像素点2为非接地线上的像素点,像素点1为像素点2投影到接地线上的像素点。像素点1的深度值例如为100,像素点2的深度值为150。则像素点1与像素点2之间的投影距离为50,可以确定像素点2的深度偏移为50。此时,根据目标对象中的每一个点的深度偏移,生成深度贴图。
可选地,在生成深度贴图后,可以但不限于根据深度贴图计算目标对象的第一深度值。例如如图4所示,在根据步骤S402根据当前像素点的坐标值获取到像素点的深度值之后,根据步骤S404获取到深度贴图。由于深度贴图中保存有深度偏移,因此,通过步骤S406采集深度贴图中深度偏移。由于获取到了像素点的深度值与深度偏移,从而可以通过步骤S408根据深度偏移对深度值执行偏移处理,得到目标对象中像素点的第一深度值。
可选地,可以通过以下方法获取到角色对象上的像素点的第二深度值:获取与角色对象关联的目标位置上的特征像素点所对应的深度值;将特征像素点所对应的深度值作为角色对象上的每个像素点的第二深度值。
可选地,上述特征像素点而可以但不限于从角色对象所覆盖的像素点中选择一个像素点作为特征像素点。例如,获取角色对象最下方的像素点作为特征像素点,将最下方的像素点的深度值赋予角色对象中的每一个像素点,从而使角色对象中的每一个像素点的深度值相同。在此情况下,每一个像素点的深度值都为第二深度值。
可选地,在渲染过程中,由于已经获取到了目标对象的第一深度值,与角色对象的第二深度值,因此在渲染的过程中,可以按照以下方法进行渲染:渲染背景画面,其中,背景画面中目标对象上的像素点按照第一深度值进行渲染;确定角色对象在背景画面中所占的像素点,并从角色对象在背景画面中所占的像素点中获取当前像素点执行以下操作;在确定当前像素点并非目标对象上的像素点的情况下,按照第二深度值对角色对象上的像素点进行渲染;在确定当前像素点为目标对象上的像素点的情况下,比对当前像素点上的第一深度值与第二深度值,得到比对结果,其中,比对结果用于指示目标对象与角色对象之间的遮挡关系;根据比对结果渲染角色对象。
可选地,由于目标对象与角色对象之间可能会存在遮挡关系。因此在渲染的过程中,先渲染目标对象,然后在目标对象渲染完成之后,渲染角色对象。将角色对象与目标对象未重合的部分正常渲染,将角色对象与目标对象重合的部分进行判断,如果第一深度值小于第二深度值,表示目标对象遮挡住了角色对象,则重合部分不进行渲染。如果第一深度值大于第二深度值,则表示角色对象遮挡住了目标对象,从而按照渲染角色对象的方法正常渲染重合部分。
结合图5对渲染角色对象的过程进行说明。由于角色对象所处的位置的坐标与目标画面中的坐标维度可能不同。因此,需要将角色对象的坐标做一个转换,转换为目标画面中的坐标。即将角色对象的坐标转换为以终端的显示屏幕设立的二维直角坐标系中的坐标。在通过步骤S502调用渲染器并通过步骤S504获取到角色对象坐标后,通过步骤S506将角色对象坐标转换为以终端的显示屏幕设立的二维直角坐标系中的坐标。然后,根据步骤S508,根据角色对象的坐标,对角色对象的深度值做偏移处理,得到第二深度值。之后通过步骤S510比对第一深度值与第二深度值,在第一深度值大于第二深度值的情况下,执行步骤S512,渲染角色对象中与目标对象重合的部分,在第一深度值小于第二深度值的情况下,不渲染角色对象中与目标对象重合的部分。
通过本实施例,通过确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面;利用与上述目标对象相对应的深度贴图中所指示的深度偏移,确定上述背景画面中上述目标对象上的像素点所对应的第一深度值;获取移动到当前显示位置的上述角色对象上的像素点所对应的第二深度值;根据上述第一深度值和上述第二深度值渲染上述目标画面的方法,在上述方法中,由于在获取到背景画面后,可以根据背景画面中的目标对象的第一深度值与角色对象上的像素点的第二深度值确定是否渲染角色对象上与目标对象重合的像素点,从而可以使角色对象与背景画面中的目标画面层次清晰,遮挡关系明显,保证了在背景画面中的目标对象与背景画面之外的角色对象之间存在遮挡的情况下仍能够准确地对背景画面与角色对象进行渲染,提高了渲染的准确性。
作为一种可选的实施方案,根据第一深度值和第二深度值渲染目标画面包括:
S1,渲染背景画面,其中,背景画面中目标对象上的像素点按照第一深度值进行渲染;
S2,确定角色对象在背景画面中所占的像素点,并从角色对象在背景画面中所占的像素点中获取当前像素点执行以下操作:
S3,在确定当前像素点并非目标对象上的像素点的情况下,按照第二深度值对角色对象上的像素点进行渲染;
S4,在确定当前像素点为目标对象上的像素点的情况下,比对当前像素点上的第一深度值与第二深度值,得到比对结果,其中,比对结果用于指示目标对象与角色对象之间的遮挡关系;
S5,根据比对结果渲染角色对象。
例如,结合图6进行说明。如图6所示,图6为一张可选的目标画面,图6中包含有目标对象602与角色对象604。在渲染过程中,先渲染背景画面,背景画面中的目标对象602中的像素点按照第一深度值进行渲染。之后按照第二深度值渲染角色对象604,角色对象604中的每一个与目标对象602重合的像素点依次作为当前像素点进行第一深度值与第二深度值的比对,由于第二深度值为角色对象604的像素点的深度值,而第一深度值为目标对象602上像素点的深度值,因此,在比对后,可以得到角色对象604与目标对象602的遮挡关系。图6中显示第二深度值小于第一深度值的情况,表示角色对象604中的像素点需要渲染,则表现出的画面即为角色对象的像素点遮住了目标对象的像素点。
通过本实施例,通过按照第一深度值与第二深度值对角色对象进行渲染,从而可以明确渲染得到角色对象与目标对象的遮挡关系,提高了对目标画面进行渲染的准确性。
作为一种可选的实施方案,根据比对结果渲染角色对象包括:
S1,在比对结果指示第一深度值大于第二深度值的情况下,则渲染角色对象;
S2,在比对结果指示第一深度值小于等于第二深度值的情况下,则放弃渲染角色对象。
由于在图3中已经提到,纵坐标值越大,表示像素点的深度值越大,则对应的像素点所表现的画面越远。因此,在确定了第一深度值与第二深度值对角色对象中的像素点进行渲染的时候,使用第二深度值对角色对象进行渲染,而对于角色对象与目标对象重合的部分的像素点,则将上述像素点作为当前像素点,比对当前像素点的第一深度值与第二深度值的大小,若第一深度值小于第二深度值,则不渲染当前像素点,表示角色对象上的像素点被目标对象所遮挡。若第一深度值大于第二深度值,则渲染当前像素点,表示角色对象上的像素点未被目标对象所遮挡。
通过本实施例,通过根据第一深度值与第二深度值的大小决定是否渲染角色对象,从而提高了对角色对象进行渲染的准确度,进而提高了对目标画面进行渲染的渲染准确度。
作为一种可选的实施方案,渲染背景画面包括:
S1,获取与背景画面对应的深度缓冲中所存储的深度信息,其中,与目标对象上的像素点对应的深度信息中包括根据深度偏移所确定的第一深度值,与二维虚拟场景中用于呈现地面的地面像素点对应的深度信息中包括地面像素点对应的第三深度值;
S2,按照深度信息对背景画面进行渲染。
可选地,结合图3进行说明。在获取到目标画面后,目标画面中包含有背景画面,背景画面中包含有目标对象。根据终端你屏幕设立平面直角坐标系,则每一个目标画面中的像素点对应一个坐标值。根据坐标值为目标画面中的每一个像素点设置一个深度值。深度值包括用于呈现地面的地面像素点的第三深度值和用于呈现目标对象的像素点的经过深度偏移处理后的第一深度值。将上述第三深度值与第一深度值作为深度信息存储到深度缓冲中。在渲染的过程中,可以从深度缓冲中获取第三深度值渲染目标画面的地面,使用第一深度值渲染目标画面中的目标对象。
通过本实施例,通过获取背景画面对应的深度缓存中的深度信息对目标对象上的像素点进行渲染,从而保证了对目标对象进行渲染的准确性,进而保证了对目标画面进行渲染的渲染准确性。
作为一种可选的实施方案,在按照深度缓冲中所存储的深度信息对背景画面进行渲染之前,还包括:
S1,获取背景画面中每个像素点在客户端所在终端屏幕中的显示坐标,并对背景画面中每个像素点依次执行以下步骤:
S2,根据显示坐标确定在为终端屏幕所配置的深度指示方向上像素点的深度变化值,并将深度变化值确定为像素点的初始深度值;
S3,在像素点为地面像素点的情况下,将初始深度值作为第三深度值存储到深度缓冲中;
S4,在像素点为目标对象上的像素点的情况下,将初始深度值更新为第一深度值,并存储到深度缓冲中。
可选地,上述深度变化值可以但不限于为像素点的纵坐标值。上述地面像素点可以但不限于为用于显示地面的画面的像素点。
例如,在根据终端的显示屏幕设立的平面直角坐标系获取到背景画面中的每一个像素点的显示坐标后,根据显示坐标的纵坐标确定为像素点的初始深度值。则背景换面中的每一个像素点都包含一个初始深度值。在像素点用于显示地面的画面的情况下,将初始深度值作为第三深度值存储到深度缓冲中。在像素点为目标对象中的像素点的情况下,将像素点的初始深度值更新为第一深度值,并将第一深度值存储到深度缓冲中。
通过本实施例,通过根据像素点的所处位置决定像素点的初始深度值或者第一深度值,从而得到深度缓冲,从而提高了获取深度缓冲的准确度,进一步提高了对目标画面进行渲染的渲染准确度。
作为一种可选的实施方案,获取移动到当前显示位置的角色对象上的像素点所对应的第二深度值包括:
S1,获取与角色对象关联的目标位置上的特征像素点所对应的深度值;
S2,将特征像素点所对应的深度值作为角色对象上的每个像素点的第二深度值。
可选地,上述获取与角色对象关联的目标位置上的特征像素点所对应的深度值可以但不限于为获取角色对象的纵坐标最小的像素点的深度值。例如,结合图7进行说明。图7中显示有目标画面中的角色对象702。角色对象702的纵坐标最小的点为角色对象的右脚的最低点704-1与左脚的最低点704-2。由于两者的纵坐标相等,因此,获取右脚的最低点704-1的深度值或者左脚的最低点704-2的深度值,并将上述深度值作为角色对象上的每一个像素点的第二深度值。
通过本实施例,通过将特征像素点的深度值作为角色对象上每一个像素点的第二深度值,从而可以准确地根据第二深度值决定是否渲染角色对象的像素点,从而提高了对目标画面进行渲染的渲染效率。
作为一种可选的实施方案,在利用与目标对象相对应的深度贴图中所指示的深度偏移,确定背景画面中目标对象上的像素点所对应的第一深度值之前,还包括:
S1,确定背景画面中目标对象与二维虚拟场景中所呈现的地面之间的接地线;
S2,将目标对象上的像素点到接地线的投影距离,确定为目标对象上的像素点的深度偏移;
S3,利用深度偏移生成深度贴图。
可选地,上述深度偏移可以但不限于为一个大于或者等于零的值。
可选地,上述接地线可以但不限与为目标对象与地面的连接线。例如,结合图8进行说明。图8中显示有目标对象802,目标对象802与地面的连接线为804-1与804-2。目标对象上的一个点806竖直投影到接地线的808位置。则806与808的投影距离为深度偏移。获取到目标对象中的每一个像素点的深度偏移,从而生成深度贴图。
通过本实施例,通过根据背景画面中的目标对象的像素点到接地线的投影距离确定深度偏移,从而可以提高深度贴图的生成效率与准确地,进而保证了获取到的第一深度值的准确性,提高了对目标画面进行渲染的准确性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述画面渲染方法的画面渲染装置。如图9所示,该装置包括:
(1)第一确定单元902,用于确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面,其中,目标画面中包含背景画面和在背景画面上移动的角色对象,背景画面中包括位于固定位置的目标对象;
(2)第二确定单元904,用于利用与目标对象相对应的深度贴图中所指示的深度偏移,确定背景画面中目标对象上的像素点所对应的第一深度值,其中,深度贴图中记录有目标对象上各个像素点的深度偏移;
(3)获取单元906,用于获取移动到当前显示位置的角色对象上的像素点所对应的第二深度值;
(4)渲染单元908,用于根据第一深度值和第二深度值渲染目标画面。
可选地,上述画面渲染装置可以但不限于应用于渲染二维平面游戏的游戏画面的过程中,或者应用于渲染二维动画的画面的过程中。
以下结合将上述画面渲染方法应用于渲染二维平面游戏的游戏画面的过程进行说明。在获取到二维平面游戏的游戏画面之后,将获取到的游戏画面作为待渲染的目标画面。待渲染的目标画面中包含有背景画面与背景画面上移动的角色对象。背景画面中包括有固定位置的目标对象。获取背景画面中国的目标对象上的像素点对应的第一深度值与角色对象上的像素点的第二深度值,根据上述第一深度值与第二深度值对目标画面进行渲染。在上述过程中,在获取到背景画面后,可以根据背景画面中的目标对象的第一深度值与角色对象上的像素点的第二深度值确定是否渲染角色对象上的像素点,从而可以使角色对象与背景画面中的目标画面层次清晰,遮挡关系明显,保证了在背景画面中的目标对象与背景画面之外的角色对象之间存在遮挡的情况下仍能够准确地对背景画面与角色对象进行渲染,提高了渲染的准确性。
可选地,可以但不限于将任意连续的两张待渲染目标画面中移动了的对象确定为角色对象,将未移动的对象确定为目标对象。例如,在获取到连续两帧的二维动画的画面后,画面中的对象位置或形状发生了变化,例如,人物进行了移动,则将位置或形状发生了变化的对象确定为角色对象,而画面中的对象位置与形状均未发生改变,例如建筑物的位置未发生变化形状也未改变,则将位置与形状均未发生改变的对象确定为目标对象。
可选地,可以但不限于为目标画面中的每一个像素点确定一个深度值,其中,上述深度值用于表示当前像素点所呈现出的画面的远近。例如如图3所示,图3中包括待渲染目标画面302。根据终端的显示屏幕设立平面直角坐标系,则目标画面302中的每一个像素点都对应一个坐标。根据坐标值的纵坐标得到每一个像素点的深度值。从上到下每一行的深度值分别为a、b、…、h。纵向的像素点越向上深度值越大,表示像素点所呈现的画面越远。深度值越小则表示像素点所呈现的画面越近。横向的像素点的深度值相同。在渲染过程中,如果像素点的深度值变小,则表现出的画面覆盖之前的画面。若像素点的深度值变大,则表现出的画面不变。
可选地,在确定了背景画面中的每一个像素点的深度值后,在确定背景画面上的目标对象的像素点的第一深度值之前,还可以通过以下方法获取到上述深度贴图:确定背景画面中目标对象与二维虚拟场景中所呈现的地面之间的接地线;将目标对象上的像素点到接地线的投影距离,确定为目标对象上的像素点的深度偏移;利用深度偏移生成深度贴图。
可选地,上述深度偏移值可以但不限于目标对象与背景图片中的地面的连接线。上述深度偏移可以但不限于为目标对象上的像素点与投影到接地线上的像素点之间的深度值的差值。
例如,以背景图片中包含的目标对象中存在像素点1与像素点2为例,像素点2为非接地线上的像素点,像素点1为像素点2投影到接地线上的像素点。像素点1的深度值例如为100,像素点2的深度值为150。则像素点1与像素点2之间的投影距离为50,可以确定像素点2的深度偏移为50。此时,根据目标对象中的每一个点的深度偏移,生成深度贴图。
可选地,在生成深度贴图后,可以但不限于根据深度贴图计算目标对象的第一深度值。例如如图4所示,在根据步骤S402根据当前像素点的坐标值获取到像素点的深度值之后,根据步骤S404获取到深度贴图。由于深度贴图中保存有深度偏移,因此,通过步骤S406采集深度贴图中深度偏移。由于获取到了像素点的深度值与深度偏移,从而可以通过步骤S408根据深度偏移对深度值执行偏移处理,得到目标对象中像素点的第一深度值。
可选地,可以通过以下方法获取到角色对象上的像素点的第二深度值:获取与角色对象关联的目标位置上的特征像素点所对应的深度值;将特征像素点所对应的深度值作为角色对象上的每个像素点的第二深度值。
可选地,上述特征像素点而可以但不限于从角色对象所覆盖的像素点中选择一个像素点作为特征像素点。例如,获取角色对象最下方的像素点作为特征像素点,将最下方的像素点的深度值赋予角色对象中的每一个像素点,从而使角色对象中的每一个像素点的深度值相同。在此情况下,每一个像素点的深度值都为第二深度值。
可选地,在渲染过程中,由于已经获取到了目标对象的第一深度值,与角色对象的第二深度值,因此在渲染的过程中,可以按照以下方法进行渲染:渲染背景画面,其中,背景画面中目标对象上的像素点按照第一深度值进行渲染;确定角色对象在背景画面中所占的像素点,并从角色对象在背景画面中所占的像素点中获取当前像素点执行以下操作;在确定当前像素点并非目标对象上的像素点的情况下,按照第二深度值对角色对象上的像素点进行渲染;在确定当前像素点为目标对象上的像素点的情况下,比对当前像素点上的第一深度值与第二深度值,得到比对结果,其中,比对结果用于指示目标对象与角色对象之间的遮挡关系;根据比对结果渲染角色对象。
可选地,由于目标对象与角色对象之间可能会存在遮挡关系。因此在渲染的过程中,先渲染目标对象,然后在目标对象渲染完成之后,渲染角色对象。将角色对象与目标对象未重合的部分正常渲染,将角色对象与目标对象重合的部分进行判断,如果第一深度值小于第二深度值,表示目标对象遮挡住了角色对象,则重合部分不进行渲染。如果第一深度值大于第二深度值,则表示角色对象遮挡住了目标对象,从而按照渲染角色对象的方法正常渲染重合部分。
结合图5对渲染角色对象的过程进行说明。由于角色对象所处的位置的坐标与目标画面中的坐标维度可能不同。因此,需要将角色对象的坐标做一个转换,转换为目标画面中的坐标。即将角色对象的坐标转换为以终端的显示屏幕设立的二维直角坐标系中的坐标。在通过步骤S502调用渲染器并通过步骤S504获取到角色对象坐标后,通过步骤S506将角色对象坐标转换为以终端的显示屏幕设立的二维直角坐标系中的坐标。然后,根据步骤S508,根据角色对象的坐标,对角色对象的深度值做偏移处理,得到第二深度值。之后通过步骤S510比对第一深度值与第二深度值,在第一深度值大于第二深度值的情况下,执行步骤S512,渲染角色对象中与目标对象重合的部分,在第一深度值小于第二深度值的情况下,不渲染角色对象中与目标对象重合的部分。
通过本实施例,通过确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面;利用与上述目标对象相对应的深度贴图中所指示的深度偏移,确定上述背景画面中上述目标对象上的像素点所对应的第一深度值;获取移动到当前显示位置的上述角色对象上的像素点所对应的第二深度值;根据上述第一深度值和上述第二深度值渲染上述目标画面的方法,在上述方法中,由于在获取到背景画面后,可以根据背景画面中的目标对象的第一深度值与角色对象上的像素点的第二深度值确定是否渲染角色对象上与目标对象重合的像素点,从而可以使角色对象与背景画面中的目标画面层次清晰,遮挡关系明显,保证了在背景画面中的目标对象与背景画面之外的角色对象之间存在遮挡的情况下仍能够准确地对背景画面与角色对象进行渲染,提高了渲染的准确性。
作为一种可选的实施方案,上述渲染单元908包括:
(1)第一渲染模块,用于渲染背景画面,其中,背景画面中目标对象上的像素点按照第一深度值进行渲染;
(2)第一确定模块,用于确定角色对象在背景画面中所占的像素点,并从角色对象在背景画面中所占的像素点中获取当前像素点执行以下操作:
(3)第二渲染模块,用于在确定当前像素点并非目标对象上的像素点的情况下,按照第二深度值对角色对象上的像素点进行渲染;
(4)比对模块,用于在确定当前像素点为目标对象上的像素点的情况下,比对当前像素点上的第一深度值与第二深度值,得到比对结果,其中,比对结果用于指示目标对象与角色对象之间的遮挡关系;
(5)第三渲染模块,用于根据比对结果渲染角色对象。
例如,结合图6进行说明。如图6所示,图6为一张可选的目标画面,图6中包含有目标对象602与角色对象604。在渲染过程中,先渲染背景画面,背景画面中的目标对象602中的像素点按照第一深度值进行渲染。之后按照第二深度值渲染角色对象604,角色对象604中的每一个与目标对象602重合的像素点依次作为当前像素点进行第一深度值与第二深度值的比对,由于第二深度值为角色对象604的像素点的深度值,而第一深度值为目标对象602上像素点的深度值,因此,在比对后,可以得到角色对象604与目标对象602的遮挡关系。图6中显示第二深度值小于第一深度值的情况,表示角色对象604中的像素点需要渲染,则表现出的画面即为角色对象的像素点遮住了目标对象的像素点。
通过本实施例,通过按照第一深度值与第二深度值对角色对象进行渲染,从而可以明确渲染得到角色对象与目标对象的遮挡关系,提高了对目标画面进行渲染的准确性。
作为一种可选的实施方案,上述第三渲染模块包括:
(1)第一渲染子模块,用于在比对结果指示第一深度值大于第二深度值的情况下,则渲染角色对象;
(2)第二渲染子模块,用于在比对结果指示第一深度值小于等于第二深度值的情况下,则放弃渲染角色对象。
由于在上述图3中已经提到,纵坐标值越大,表示像素点的深度值越大,则对应的像素点所表现的画面越远。因此,在确定了第一深度值与第二深度值对角色对象中的像素点进行渲染的时候,使用第二深度值对角色对象进行渲染,而对于角色对象与目标对象重合的部分的像素点,则将上述像素点作为当前像素点,比对当前像素点的第一深度值与第二深度值的大小,若第一深度值小于第二深度值,则不渲染当前像素点,表示角色对象上的像素点被目标对象所遮挡。若第一深度值大于第二深度值,则渲染当前像素点,表示角色对象上的像素点未被目标对象所遮挡。
通过本实施例,通过根据第一深度值与第二深度值的大小决定是否渲染角色对象,从而提高了对角色对象进行渲染的准确度,进而提高了对目标画面进行渲染的渲染准确度。
作为一种可选的实施方案,上述第一渲染模块包括:
(1)第一获取子模块,用于获取与背景画面对应的深度缓冲中所存储的深度信息,其中,与目标对象上的像素点对应的深度信息中包括根据深度偏移所确定的第一深度值,与二维虚拟场景中用于呈现地面的地面像素点对应的深度信息中包括地面像素点对应的第三深度值;
(2)第三渲染子模块,用于按照深度信息对背景画面进行渲染。
可选地,结合图3进行说明。在获取到目标画面后,目标画面中包含有背景画面,背景画面中包含有目标对象。根据终端你屏幕设立平面直角坐标系,则每一个目标画面中的像素点对应一个坐标值。根据坐标值为目标画面中的每一个像素点设置一个深度值。深度值包括用于呈现地面的地面像素点的第三深度值和用于呈现目标对象的像素点的经过深度偏移处理后的第一深度值。将上述第三深度值与第一深度值作为深度信息存储到深度缓冲中。在渲染的过程中,可以从深度缓冲中获取第三深度值渲染目标画面的地面,使用第一深度值渲染目标画面中的目标对象。
通过本实施例,通过获取背景画面对应的深度缓存中的深度信息对目标对象上的像素点进行渲染,从而保证了对目标对象进行渲染的准确性,进而保证了对目标画面进行渲染的渲染准确性。
作为一种可选的实施方案,上述第一渲染模块还包括:
(1)第二获取子模块,用于在按照深度缓冲中所存储的深度信息对背景画面进行渲染之前,获取背景画面中每个像素点在客户端所在终端屏幕中的显示坐标,并对背景画面中每个像素点依次执行以下步骤:
根据显示坐标确定在为终端屏幕所配置的深度指示方向上像素点的深度变化值,并将深度变化值确定为像素点的初始深度值;
在像素点为地面像素点的情况下,将初始深度值作为第三深度值存储到深度缓冲中;
在像素点为目标对象上的像素点的情况下,将初始深度值更新为第一深度值,并存储到深度缓冲中。
可选地,上述深度变化值可以但不限于为像素点的纵坐标值。上述地面像素点可以但不限于为用于显示地面的画面的像素点。
例如,在根据终端的显示屏幕设立的平面直角坐标系获取到背景画面中的每一个像素点的显示坐标后,根据显示坐标的纵坐标确定为像素点的初始深度值。则背景换面中的每一个像素点都包含一个初始深度值。在像素点用于显示地面的画面的情况下,将初始深度值作为第三深度值存储到深度缓冲中。在像素点为目标对象中的像素点的情况下,将像素点的初始深度值更新为第一深度值,并将第一深度值存储到深度缓冲中。
通过本实施例,通过根据像素点的所处位置决定像素点的初始深度值或者第一深度值,从而得到深度缓冲,从而提高了获取深度缓冲的准确度,进一步提高了对目标画面进行渲染的渲染准确度。
作为一种可选的实施方案,上述获取单元906包括:
(1)获取模块,用于获取与角色对象关联的目标位置上的特征像素点所对应的深度值;
(2)第二确定模块,用于将特征像素点所对应的深度值作为角色对象上的每个像素点的第二深度值。
可选地,上述获取与角色对象关联的目标位置上的特征像素点所对应的深度值可以但不限于为获取角色对象的纵坐标最小的像素点的深度值。例如,结合图7进行说明。图7中显示有目标画面中的角色对象702。角色对象702的纵坐标最小的点为角色对象的右脚的最低点704-1与左脚的最低点704-2。由于两者的纵坐标相等,因此,获取右脚的最低点704-1的深度值或者左脚的最低点704-2的深度值,并将上述深度值作为角色对象上的每一个像素点的第二深度值。
通过本实施例,通过将特征像素点的深度值作为角色对象上每一个像素点的第二深度值,从而可以准确地根据第二深度值决定是否渲染角色对象的像素点,从而提高了对目标画面进行渲染的渲染效率。
作为一种可选的实施方案,上述装置还包括:
(1)第三确定单元,用于在利用与目标对象相对应的深度贴图中所指示的深度偏移,确定背景画面中目标对象上的像素点所对应的第一深度值之前,确定背景画面中目标对象与二维虚拟场景中所呈现的地面之间的接地线;
(2)第四确定单元,用于将目标对象上的像素点到接地线的投影距离,确定为目标对象上的像素点的深度偏移;
(3)生成单元,用于利用深度偏移生成深度贴图。
可选地,上述深度偏移可以但不限于为一个大于或者等于零的值。
可选地,上述接地线可以但不限与为目标对象与地面的连接线。例如,结合图8进行说明。图8中显示有目标对象802,目标对象802与地面的连接线为804-1与804-2。目标对象上的一个点806竖直投影到接地线的808位置。则806与808的投影距离为深度偏移。获取到目标对象中的每一个像素点的深度偏移,从而生成深度贴图。
通过本实施例,通过根据背景画面中的目标对象的像素点到接地线的投影距离确定深度偏移,从而可以提高深度贴图的生成效率与准确地,进而保证了获取到的第一深度值的准确性,提高了对目标画面进行渲染的准确性。
根据本发明实施例的又一个方面,还提供了一种用于实施上述画面渲染方法的电子装置,如图10所示,该电子装置包括存储器1002和处理器1004,该存储器1002中存储有计算机程序,该处理器1004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面,其中,目标画面中包含背景画面和在背景画面上移动的角色对象,背景画面中包括位于固定位置的目标对象;
S2,利用与目标对象相对应的深度贴图中所指示的深度偏移,确定背景画面中目标对象上的像素点所对应的第一深度值,其中,深度贴图中记录有目标对象上各个像素点的深度偏移;
S3,获取移动到当前显示位置的角色对象上的像素点所对应的第二深度值;
S4,根据第一深度值和第二深度值渲染目标画面。
可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。
其中,存储器1002可用于存储软件程序以及模块,如本发明实施例中的画面渲染方法和装置对应的程序指令/模块,处理器1004通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的画面渲染方法。存储器1002可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1002具体可以但不限于用于存储目标画面、深度贴图、深度信息等。作为一种示例,如图10所示,上述存储器1002中可以但不限于包括上述画面渲染装置中的第一确定单元902、第二确定单元904、获取单元906及渲染单元908。此外,还可以包括但不限于上述画面渲染装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1006包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1006为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器1008,用于显示渲染结果;和连接总线1010,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面,其中,目标画面中包含背景画面和在背景画面上移动的角色对象,背景画面中包括位于固定位置的目标对象;
S2,利用与目标对象相对应的深度贴图中所指示的深度偏移,确定背景画面中目标对象上的像素点所对应的第一深度值,其中,深度贴图中记录有目标对象上各个像素点的深度偏移;
S3,获取移动到当前显示位置的角色对象上的像素点所对应的第二深度值;
S4,根据第一深度值和第二深度值渲染目标画面。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,渲染背景画面,其中,背景画面中目标对象上的像素点按照第一深度值进行渲染;
S2,确定角色对象在背景画面中所占的像素点,并从角色对象在背景画面中所占的像素点中获取当前像素点执行以下操作:
S3,在确定当前像素点并非目标对象上的像素点的情况下,按照第二深度值对角色对象上的像素点进行渲染;
S4,在确定当前像素点为目标对象上的像素点的情况下,比对当前像素点上的第一深度值与第二深度值,得到比对结果,其中,比对结果用于指示目标对象与角色对象之间的遮挡关系;
S5,根据比对结果渲染角色对象。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在比对结果指示第一深度值大于第二深度值的情况下,则渲染角色对象;
S2,在比对结果指示第一深度值小于等于第二深度值的情况下,则放弃渲染角色对象。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取与背景画面对应的深度缓冲中所存储的深度信息,其中,与目标对象上的像素点对应的深度信息中包括根据深度偏移所确定的第一深度值,与二维虚拟场景中用于呈现地面的地面像素点对应的深度信息中包括地面像素点对应的第三深度值;
S2,按照深度信息对背景画面进行渲染。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取背景画面中每个像素点在客户端所在终端屏幕中的显示坐标,并对背景画面中每个像素点依次执行以下步骤:
S2,根据显示坐标确定在为终端屏幕所配置的深度指示方向上像素点的深度变化值,并将深度变化值确定为像素点的初始深度值;
S3,在像素点为地面像素点的情况下,将初始深度值作为第三深度值存储到深度缓冲中;
S4,在像素点为目标对象上的像素点的情况下,将初始深度值更新为第一深度值,并存储到深度缓冲中。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取与角色对象关联的目标位置上的特征像素点所对应的深度值;
S2,将特征像素点所对应的深度值作为角色对象上的每个像素点的第二深度值。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,确定背景画面中目标对象与二维虚拟场景中所呈现的地面之间的接地线;
S2,将目标对象上的像素点到接地线的投影距离,确定为目标对象上的像素点的深度偏移;
S3,利用深度偏移生成深度贴图。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种画面渲染方法,其特征在于,包括:
确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面,其中,所述目标画面中包含背景画面和在所述背景画面上移动的角色对象,所述背景画面中包括位于固定位置的目标对象;
确定所述背景画面中所述目标对象与所述二维虚拟场景中所呈现的地面之间的接地线;
将所述目标对象上的像素点到所述接地线的投影距离,确定为所述目标对象上的像素点的深度偏移;
利用所述深度偏移生成深度贴图;
利用所述深度贴图中所指示的所述深度偏移,确定所述背景画面中所述目标对象上的像素点所对应的第一深度值,其中,所述深度贴图中记录有所述目标对象上各个像素点的深度偏移;
获取与所述角色对象关联的目标位置上的特征像素点所对应的深度值,其中,所述特征像素点为从所述角色对象所覆盖的像素点中选择的像素点;
将所述特征像素点所对应的深度值作为所述角色对象上的每个像素点的第二深度值;
根据所述第一深度值和所述第二深度值渲染所述目标画面。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一深度值和所述第二深度值渲染所述目标画面包括:
渲染所述背景画面,其中,所述背景画面中所述目标对象上的像素点按照所述第一深度值进行渲染;
确定所述角色对象在所述背景画面中所占的像素点,并从所述角色对象在所述背景画面中所占的像素点中获取当前像素点执行以下操作:
在确定所述当前像素点并非所述目标对象上的像素点的情况下,按照所述第二深度值对所述角色对象上的像素点进行渲染;
在确定所述当前像素点为所述目标对象上的像素点的情况下,比对所述当前像素点上的所述第一深度值与所述第二深度值,得到比对结果,其中,所述比对结果用于指示所述目标对象与所述角色对象之间的遮挡关系;根据所述比对结果渲染所述角色对象。
3.根据权利要求2所述的方法,其特征在于,所述根据所述比对结果渲染所述角色对象包括:
在所述比对结果指示所述第一深度值大于所述第二深度值的情况下,则渲染所述角色对象;
在所述比对结果指示所述第一深度值小于等于所述第二深度值的情况下,则放弃渲染所述角色对象。
4.根据权利要求2所述的方法,其特征在于,所述渲染所述背景画面包括:
获取与所述背景画面对应的深度缓冲中所存储的深度信息,其中,与所述目标对象上的像素点对应的所述深度信息中包括根据所述深度偏移所确定的所述第一深度值,与所述二维虚拟场景中用于呈现地面的地面像素点对应的所述深度信息中包括所述地面像素点对应的第三深度值;
按照所述深度信息对所述背景画面进行渲染。
5.根据权利要求4所述的方法,其特征在于,在所述按照所述深度缓冲中所存储的深度信息对所述背景画面进行渲染之前,还包括:
获取所述背景画面中每个像素点在所述客户端所在终端屏幕中的显示坐标,并对所述背景画面中每个像素点依次执行以下步骤:
根据所述显示坐标确定在为所述终端屏幕所配置的深度指示方向上所述像素点的深度变化值,并将所述深度变化值确定为所述像素点的初始深度值;
在所述像素点为所述地面像素点的情况下,将所述初始深度值作为所述第三深度值存储到所述深度缓冲中;
在所述像素点为所述目标对象上的像素点的情况下,将所述初始深度值更新为所述第一深度值,并存储到所述深度缓冲中。
6.一种画面渲染装置,其特征在于,包括:
第一确定单元,用于确定在客户端所要呈现的二维虚拟场景中待渲染的目标画面,其中,所述目标画面中包含背景画面和在所述背景画面上移动的角色对象,所述背景画面中包括位于固定位置的目标对象;
第二确定单元,用于确定所述背景画面中所述目标对象与所述二维虚拟场景中所呈现的地面之间的接地线;将所述目标对象上的像素点到所述接地线的投影距离,确定为所述目标对象上的像素点的深度偏移;利用所述深度偏移生成深度贴图;利用所述深度贴图中所指示的所述深度偏移,确定所述背景画面中所述目标对象上的像素点所对应的第一深度值,其中,所述深度贴图中记录有所述目标对象上各个像素点的深度偏移;
获取单元,获取与所述角色对象关联的目标位置上的特征像素点所对应的深度值,其中,所述特征像素点为从所述角色对象所覆盖的像素点中选择的像素点;将所述特征像素点所对应的深度值作为所述角色对象上的每个像素点的第二深度值;
渲染单元,用于根据所述第一深度值和所述第二深度值渲染所述目标画面。
7.根据权利要求6所述的装置,其特征在于,所述渲染单元包括:
第一渲染模块,用于渲染所述背景画面,其中,所述背景画面中所述目标对象上的像素点按照所述第一深度值进行渲染;
第一确定模块,用于确定所述角色对象在所述背景画面中所占的像素点,并从所述角色对象在所述背景画面中所占的像素点中获取当前像素点执行以下操作:
第二渲染模块,用于在确定所述当前像素点并非所述目标对象上的像素点的情况下,按照所述第二深度值对所述角色对象上的像素点进行渲染;
比对模块,用于在确定所述当前像素点为所述目标对象上的像素点的情况下,比对所述当前像素点上的所述第一深度值与所述第二深度值,得到比对结果,其中,所述比对结果用于指示所述目标对象与所述角色对象之间的遮挡关系;
第三渲染模块,用于根据所述比对结果渲染所述角色对象。
8.根据权利要求7所述的装置,其特征在于,所述第三渲染模块包括:
第一渲染子模块,用于在所述比对结果指示所述第一深度值大于所述第二深度值的情况下,则渲染所述角色对象;
第二渲染子模块,用于在所述比对结果指示所述第一深度值小于等于所述第二深度值的情况下,则放弃渲染所述角色对象。
9.根据权利要求7所述的装置,其特征在于,所述第一渲染模块包括:
第一获取子模块,用于获取与所述背景画面对应的深度缓冲中所存储的深度信息,其中,与所述目标对象上的像素点对应的所述深度信息中包括根据所述深度偏移所确定的所述第一深度值,与所述二维虚拟场景中用于呈现地面的地面像素点对应的所述深度信息中包括所述地面像素点对应的第三深度值;
第三渲染子模块,用于按照所述深度信息对所述背景画面进行渲染。
10.根据权利要求9所述的装置,其特征在于,所述第一渲染模块还包括:
第二获取子模块,用于在所述按照所述深度缓冲中所存储的深度信息对所述背景画面进行渲染之前,获取所述背景画面中每个像素点在所述客户端所在终端屏幕中的显示坐标,并对所述背景画面中每个像素点依次执行以下步骤:
根据所述显示坐标确定在为所述终端屏幕所配置的深度指示方向上所述像素点的深度变化值,并将所述深度变化值确定为所述像素点的初始深度值;
在所述像素点为所述地面像素点的情况下,将所述初始深度值作为所述第三深度值存储到所述深度缓冲中;
在所述像素点为所述目标对象上的像素点的情况下,将所述初始深度值更新为所述第一深度值,并存储到所述深度缓冲中。
11.根据权利要求6至10中任一项所述的装置,其特征在于,所述获取单元包括:
获取模块,用于获取与所述角色对象关联的目标位置上的特征像素点所对应的深度值;
第二确定模块,用于将所述特征像素点所对应的深度值作为所述角色对象上的每个像素点的所述第二深度值。
12.一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至5任一项中所述的方法。
13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至5任一项中所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811371864.9A CN109461199B (zh) | 2018-11-15 | 2018-11-15 | 画面渲染方法和装置、存储介质及电子装置 |
PCT/CN2019/115610 WO2020098530A1 (zh) | 2018-11-15 | 2019-11-05 | 画面渲染方法和装置、存储介质及电子装置 |
EP19883796.5A EP3882862A4 (en) | 2018-11-15 | 2019-11-05 | METHOD AND DEVICE FOR IMAGE REPRODUCTION, STORAGE MEDIUM AND ELECTRONIC DEVICE |
US17/170,993 US11488346B2 (en) | 2018-11-15 | 2021-02-09 | Picture rendering method and apparatus, storage medium, and electronic apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811371864.9A CN109461199B (zh) | 2018-11-15 | 2018-11-15 | 画面渲染方法和装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109461199A CN109461199A (zh) | 2019-03-12 |
CN109461199B true CN109461199B (zh) | 2022-12-30 |
Family
ID=65610855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811371864.9A Active CN109461199B (zh) | 2018-11-15 | 2018-11-15 | 画面渲染方法和装置、存储介质及电子装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11488346B2 (zh) |
EP (1) | EP3882862A4 (zh) |
CN (1) | CN109461199B (zh) |
WO (1) | WO2020098530A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109461199B (zh) | 2018-11-15 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 画面渲染方法和装置、存储介质及电子装置 |
CN110570505B (zh) * | 2019-09-11 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置、设备及存储介质 |
CN110838162B (zh) * | 2019-11-26 | 2023-11-28 | 网易(杭州)网络有限公司 | 植被渲染方法及装置、存储介质及电子设备 |
CN110889890B (zh) * | 2019-11-29 | 2023-07-28 | 深圳市商汤科技有限公司 | 图像处理方法及装置、处理器、电子设备及存储介质 |
CN111124582B (zh) * | 2019-12-26 | 2023-04-07 | 珠海金山数字网络科技有限公司 | 一种图标调用的方法及装置 |
CN113129417A (zh) * | 2019-12-27 | 2021-07-16 | 华为技术有限公司 | 一种全景应用中图像渲染的方法及终端设备 |
CN111494943B (zh) * | 2020-04-21 | 2023-03-31 | 网易(杭州)网络有限公司 | 一种图像显示方法、装置、电子设备及可读存储介质 |
CN111726479B (zh) * | 2020-06-01 | 2023-05-23 | 北京像素软件科技股份有限公司 | 图像渲染的方法及装置、终端、可读存储介质 |
CN114494566A (zh) * | 2020-11-09 | 2022-05-13 | 华为技术有限公司 | 图像渲染方法和装置 |
CN112532882B (zh) * | 2020-11-26 | 2022-09-16 | 维沃移动通信有限公司 | 图像显示方法和装置 |
CN114937108A (zh) * | 2021-02-05 | 2022-08-23 | 中国科学院过程工程研究所 | 一种图像渲染方法、装置、电子设备及介质 |
CN113313807B (zh) * | 2021-06-28 | 2022-05-06 | 完美世界(北京)软件科技发展有限公司 | 一种画面的渲染方法、装置、存储介质和电子装置 |
CN113674435B (zh) * | 2021-07-27 | 2024-08-20 | 阿里巴巴创新公司 | 图像处理方法、电子地图展示方法、装置及电子设备 |
CN115345862B (zh) * | 2022-08-23 | 2023-03-10 | 成都智元汇信息技术股份有限公司 | 基于列数据的仿x光机扫描成像的方法及装置和显示器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6459433B1 (en) * | 1997-04-30 | 2002-10-01 | Ati Technologies, Inc. | Method and apparatus for compression of a two dimensional video object |
US7256779B2 (en) * | 2003-05-08 | 2007-08-14 | Nintendo Co., Ltd. | Video game play using panoramically-composited depth-mapped cube mapping |
JP2007050147A (ja) * | 2005-08-19 | 2007-03-01 | Seiko Epson Corp | 遊技機及びその制御方法 |
JP5697989B2 (ja) * | 2007-12-26 | 2015-04-08 | コーニンクレッカ フィリップス エヌ ヴェ | グラフィックスオブジェクトを重ね合わせるための画像プロセッサ |
JP5714393B2 (ja) * | 2011-04-13 | 2015-05-07 | 任天堂株式会社 | 情報処理プログラム、情報処理装置、情報処理方法及び情報処理システム |
CN102902355B (zh) * | 2012-08-31 | 2015-12-02 | 中国科学院自动化研究所 | 移动设备的空间交互方法 |
US20140267273A1 (en) * | 2013-03-15 | 2014-09-18 | Janne Kontkanen | System and method for overlaying two-dimensional map elements over terrain geometry |
CN103384343B (zh) * | 2013-07-02 | 2015-08-19 | 南京大学 | 一种填补图像空洞的方法及其装置 |
CN104268922B (zh) * | 2014-09-03 | 2017-06-06 | 广州博冠信息科技有限公司 | 一种图像渲染方法及图像渲染装置 |
CN105513112B (zh) * | 2014-10-16 | 2018-11-16 | 北京畅游天下网络技术有限公司 | 图像处理方法和装置 |
CN108470369B (zh) * | 2018-03-26 | 2022-03-15 | 城市生活(北京)资讯有限公司 | 一种水面渲染方法及装置 |
CN109461199B (zh) * | 2018-11-15 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 画面渲染方法和装置、存储介质及电子装置 |
-
2018
- 2018-11-15 CN CN201811371864.9A patent/CN109461199B/zh active Active
-
2019
- 2019-11-05 WO PCT/CN2019/115610 patent/WO2020098530A1/zh unknown
- 2019-11-05 EP EP19883796.5A patent/EP3882862A4/en active Pending
-
2021
- 2021-02-09 US US17/170,993 patent/US11488346B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11488346B2 (en) | 2022-11-01 |
EP3882862A1 (en) | 2021-09-22 |
US20210166467A1 (en) | 2021-06-03 |
CN109461199A (zh) | 2019-03-12 |
EP3882862A4 (en) | 2022-03-16 |
WO2020098530A1 (zh) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109461199B (zh) | 画面渲染方法和装置、存储介质及电子装置 | |
CN107358649B (zh) | 地形文件的处理方法和装置 | |
CN110706341B (zh) | 一种城市信息模型的高性能渲染方法、装置及存储介质 | |
CN110288692B (zh) | 光照渲染方法和装置、存储介质及电子装置 | |
CN111815755A (zh) | 虚拟物体被遮挡的区域确定方法、装置及终端设备 | |
CN110378947B (zh) | 3d模型重建方法、装置及电子设备 | |
CN110990516A (zh) | 地图数据的处理方法、装置和服务器 | |
CN112270736B (zh) | 增强现实处理方法及装置、存储介质和电子设备 | |
CN111583381B (zh) | 游戏资源图的渲染方法、装置及电子设备 | |
CN113256782B (zh) | 三维模型的生成方法、装置、存储介质、电子设备 | |
CN112675545B (zh) | 地表仿真画面的显示方法和装置、存储介质及电子设备 | |
CN109377552B (zh) | 图像遮挡计算方法、装置、计算设备及存储介质 | |
US9679349B2 (en) | Method for visualizing three-dimensional data | |
CN108230434B (zh) | 图像纹理的处理方法、装置、存储介质和电子装置 | |
WO2023134277A1 (zh) | 可见元素的确定方法和装置、存储介质及电子设备 | |
CN113592994B (zh) | 用于纹理贴图的方法、装置和存储介质 | |
CN113064689A (zh) | 场景识别方法和装置、存储介质及电子设备 | |
CN108847120B (zh) | 一种基于电子围栏地图订单热力图分布的绘制方法 | |
CN110517201A (zh) | 循环保边平滑滤波的方法、装置和电子设备 | |
CN112200861B (zh) | 柱类型的确定方法和装置、存储介质及电子设备 | |
CN111240550B (zh) | 聊天窗口的展示方法、装置、电子设备及存储介质 | |
CN110378948B (zh) | 3d模型重建方法、装置及电子设备 | |
CN114564526A (zh) | 三维地球数据显示方法、装置、设备及存储介质 | |
CN108829840B (zh) | 一种电子围栏地图构建方法及装置 | |
CN110473146B (zh) | 遥感图像显示方法、装置及存储介质和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |