CN110211218B - 画面渲染方法和装置、存储介质及电子装置 - Google Patents
画面渲染方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN110211218B CN110211218B CN201910413396.5A CN201910413396A CN110211218B CN 110211218 B CN110211218 B CN 110211218B CN 201910413396 A CN201910413396 A CN 201910413396A CN 110211218 B CN110211218 B CN 110211218B
- Authority
- CN
- China
- Prior art keywords
- target
- depth information
- object pixel
- light source
- pixel points
- 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
-
- 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/50—Lighting effects
-
- 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/55—Depth or shape recovery from multiple images
- G06T7/586—Depth or shape recovery from multiple images from multiple light sources, e.g. photometric stereo
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种画面渲染方法和装置、存储介质及电子装置。其中,该方法包括:获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息;获取多光源中每个目标光源对应的第二深度信息;根据第一深度信息和第二深度信息,从对象像素点中确定出目标对象像素点,其中,目标对象像素点所在位置位于至少一个目标光源的光照范围内;对目标对象像素点进行光照运算,得到与目标对象像素点相匹配的光照运算结果;根据光照运算结果渲染目标画面。本发明解决了使用正向渲染对多光源场景进行画面渲染时,存在画面渲染的操作复杂度较高的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种画面渲染方法和装置、存储介质及电子装置。
背景技术
为了在计算机设备中呈现三维场景下的画面,通常会使用渲染技术来进行画面渲染。其中,渲染包括正向渲染(Forward Rendering)和延迟渲染(Deferred Rendering),这里正向渲染是目前应用范围比较广的渲染方式。
然而,在采用正向渲染的方式进行画面渲染时,对画面中的像素点进行光照运算的计算量,往往会随场景中光源的数量的增加而增加。例如,在使用正向渲染方式对场景中m个光源下的n个物体对象进行渲染着色时,计算复杂度为O(n*m)次。也就是说,在使用正向渲染对多光源场景进行画面渲染时,存在画面渲染的操作复杂度较高的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种画面渲染方法和装置、存储介质及电子装置,以至少解决使用正向渲染对多光源场景进行画面渲染时,存在画面渲染的操作复杂度较高的技术问题。
根据本发明实施例的一个方面,提供了一种画面渲染方法,包括:获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息;获取上述多光源中每个目标光源对应的第二深度信息;根据上述第一深度信息和上述第二深度信息,从上述对象像素点中确定出目标对象像素点,其中,上述目标对象像素点所在位置位于至少一个上述目标光源的光照范围内;对上述目标对象像素点进行光照运算,得到与上述目标对象像素点相匹配的光照运算结果;根据上述光照运算结果渲染上述目标画面。
根据本发明实施例的另一方面,还提供了一种画面渲染装置,包括:第一获取单元,用于获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息;第二获取单元,用于获取上述多光源中每个目标光源对应的第二深度信息;第一确定单元,用于根据上述第一深度信息和上述第二深度信息,从上述对象像素点中确定出目标对象像素点,其中,上述目标对象像素点所在位置位于至少一个上述目标光源的光照范围内;运算单元,用于对上述目标对象像素点进行光照运算,得到与上述目标对象像素点相匹配的光照运算结果;渲染单元,用于根据上述光照运算结果渲染上述目标画面。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述画面渲染方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的画面渲染方法。
在本发明实施例中,在获取目标画面中在多光源场景下的目标对象对应的对象像素点的第一深度信息,及多光源中每个目标光源对应的第二深度信息之后,根据上述第一深度信息及第二深度信息,从上述对象像素点中确定出位于至少一个目标光源的光照范围内的目标对象像素点,进一步,对上述确定出的目标对象像素点进行光照运算,以得到与目标对象像素点相匹配的光照运算结果,从而实现根据上述光照运算结果来渲染目标画面。也就是说,在对待渲染的目标画面中多光源场景下的目标对象进行渲染的过程中,可以利用第一深度信息和第二深度信息,对目标对象上的对象像素点进行筛选,得到目标对象像素点,从而实现对筛选后得到的目标对象像素点进行光照运算,而不再对每个对象像素点都进行多光源的光照运算,以达到减少光照运行的计算量,实现简化画面渲染过程的操作复杂度的效果。进而解决了使用正向渲染对多光源场景进行画面渲染时,存在画面渲染的操作复杂度较高的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的画面渲染方法的网络环境的示意图;
图2是根据本发明实施例的一种可选的画面渲染方法的硬件环境的示意图;
图3是根据本发明实施例的一种可选的画面渲染方法的流程图;
图4是根据相关技术中的一种可选的渲染效果的示意图;
图5是根据本发明实施例的另一种可选的画面渲染方法的流程图;
图6是根据本发明实施例的又一种可选的画面渲染方法的流程图;
图7是根据本发明实施例的一种可选的画面渲染方法的示意图;
图8是根据本发明实施例的又一种可选的画面渲染方法的流程图;
图9是根据本发明实施例的一种可选的画面渲染装置的结构示意图;
图10是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种画面渲染方法,可选地,作为一种可选的实施方式,上述画面渲染方法可以但不限于应用于如图1所示的网络环境中。上述画面渲染方法可以但不限于应用于如图1所示的网络环境中的画面渲染控制系统中,该画面渲染控制系统包括用户设备102、网络110及服务器112。假设用户设备102中安装有运行终端应用的客户端,在如图1所示的游戏应用的客户端中呈现有多光源场景下的游戏界面,该界面中包括多光源100和目标对象101。其中,用户设备102中包括人机交互屏幕104,处理器106及存储器108。人机交互屏幕104用于通过与上述客户端对应的人机交互接口检测人机交互操作(如点击操作或触屏操作等),还用于呈现渲染后的目标画面;处理器106,用于根据人机交互操作生成对应的操作指令,并响应该操作指令执行对应的操作。存储器108用于存储上述操作指令,多光源中每个目标光源的属性信息和目标对象相关的属性信息及光照运算后得到的光照运算结果,如目标对象对应的对象像素点的第一深度信息,及目标光源对应的第二深度信息。
如步骤S102,用户设备102通过人机交互屏幕104获取待渲染的目标画面。然后,用户设备102可以执行步骤S104,通过网络110发送该目标画面至服务器112。服务器112中包括数据库114及处理引擎116。其中,数据库114用于存储目标画面,及根据该目标画面获取到的第一深度信息及第二深度信息,处理器引擎116用于根据上述第一深度信息及第二深度信息确定出目标对象上的目标对象像素点,并对该目标对象像素点进行光照运算,得到光照运算结果。
服务器112中的处理引擎116将调用数据库114中存储的目标画面执行步骤S106-S112:获取目标画面中在多光源场景下的目标对象对应的对象像素点的第一深度信息,并获取多光源中每个目标光源对应的第二深度信息。然后根据上述第一深度信息及第二深度信息,从上述对象像素点中确定出目标对象像素点,其中,该目标对象像素点所在位置位于至少一个目标光源的光照范围内。进一步,对上述目标对象像素点进行光照运算,以得到与目标对象像素点相匹配的光照运算结果。之后,执行步骤S114,将该光照运算结果通过网络110发送给用户设备102。进一步,用户设备102中的处理器106将执行步骤S116:根据光照运算结果在人机交互屏幕104中渲染目标画面。
此外,作为一种可选的实施方式,上述画面渲染方法还可以但不限于应用于如图2所示的硬件环境中,如应用于用户设备102中。假设用户设备102中安装有运行终端应用的客户端,在如图1所示的游戏应用的客户端中呈现有多光源场景下的游戏界面,该界面中包括多光源100和目标对象101。其中,用户设备102中包括人机交互屏幕104,处理器106及存储器108。用户设备102通过处理器106执行步骤S202-S208,获取目标画面中在多光源场景下的目标对象对应的对象像素点的第一深度信息,并获取多光源中每个目标光源对应的第二深度信息。然后根据上述第一深度信息及第二深度信息,从上述对象像素点中确定出目标对象像素点,其中,该目标对象像素点所在位置位于至少一个目标光源的光照范围内。进一步,对上述目标对象像素点进行光照运算,以得到与目标对象像素点相匹配的光照运算结果。之后,执行步骤S210:根据光照运算结果在人机交互屏幕104中渲染目标画面。
需要说明的是,在本实施例中,在获取目标画面中在多光源场景下的目标对象对应的对象像素点的第一深度信息,及多光源中每个目标光源对应的第二深度信息之后,根据上述第一深度信息及第二深度信息,从上述对象像素点中确定出位于至少一个目标光源的光照范围内的目标对象像素点,进一步,对上述确定出的目标对象像素点进行光照运算,以得到与目标对象像素点相匹配的光照运算结果,从而实现根据上述光照运算结果来渲染目标画面。也就是说,在对待渲染的目标画面中多光源场景下的目标对象进行渲染的过程中,可以利用第一深度信息和第二深度信息,对目标对象上的对象像素点进行筛选,得到目标对象像素点,从而实现对筛选后得到的目标对象像素点进行光照运算,而不再对每个对象像素点都进行多光源的光照运算,以达到减少光照运行的计算量,实现简化画面渲染过程的操作复杂度的效果。
可选地,在本实施例中,上述用户设备可以但不限于为手机、平板电脑、笔记本电脑、PC机等支持运行应用客户端的计算机设备。上述服务器和用户设备可以但不限于通过网络实现数据交互,上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,作为一种可选的实施方式,如图3所示,上述画面渲染方法包括:
S302,获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息;
S304,获取多光源中每个目标光源对应的第二深度信息;
S306,根据第一深度信息和第二深度信息,从对象像素点中确定出目标对象像素点,其中,目标对象像素点所在位置位于至少一个目标光源的光照范围内;
S308,对目标对象像素点进行光照运算,得到与目标对象像素点相匹配的光照运算结果;
S310,根据光照运算结果渲染目标画面。
需要说明的是,上述图3所示方法步骤可以但不限于应用于图1所示画面渲染控制系统中,通过用户设备102和服务器112之间的数据交互完成,也可以但不限于应用于图2所示用户设备102中,由用户设备102独立完成。上述仅是示例,本实施例中对此不作任何限定。
可选地,在本实施例中,上述画面渲染方法可以但不限于应用于游戏应用的画面渲染过程中,其中,该游戏应用可以但不限于为具有多光源的三维(简称3D)游戏应用。此外,在本实施例中,上述多光源的每个目标光源可以包括但不限于:点光源、体渲染点光源。上述目标对象可以但不限于为上述游戏应用所提供的多光源的场景下受到目标光源的光照影响的虚拟对象,如这里虚拟对象可以包括但不限于:虚拟人物角色、虚拟装备、虚拟建筑、虚拟交通工具等。其中,上述目标对象在目标画面中可以但不限于对应多个对象像素点,即,通过上述多个对象像素点在目标画面中呈现目标对象。上述仅是一种示例,本实施例中对此不作任何限定。
例如,假设以3D游戏应用为例,结合图1所示游戏界面来说明:获取所要渲染的目标画面,其中,该目标画面中包括两个光源及受到上述光源的光照影响的目标对象(如虚拟人物角色)。获取该虚拟人物角色对应的对象像素点的第一深度信息,及上述两个光源中每个光源的第二深度信息。利用上述第一深度信息和第二深度信息,确定虚拟人物角色对应的对象像素点中位于至少一个光源的光照范围内的目标对象像素点,并对上述确定出的目标对象像素点进行光照运算,以根据光照运算得到的光照运算结果来渲染上述目标画面。从而避免对虚拟人物角色上的全部对象像素点都执行与上述两个光源相匹配的光照运算,以减少光照运算的计算量,实现简化对目标画面进行渲染的操作,达到降低画面渲染的操作复杂度的效果。
可选地,在本实施例中上述多光源中的目标光源可以但不限于采用体渲染光源,其中,点光源光照效果如图4中左侧所示效果,体渲染点光源光照效果如图4中右侧所示效果。在本实施例中,通过体渲染点光源,可以在上述场景中大量的使用动态光源来影响环境表现,而不会给图像处理器(Graphics Processing Unit,简称GPU)带来过多的负载,以在正向渲染多光源的场景下的目标对象时,可以达到接近延迟渲染的效果。
可选地,在本实施例中,上述第一深度信息可以但不限于是对象像素点进行坐标转换后得到的深度纹理。其中,上述过程可以包括但不限于:将对象像素点在世界坐标系下的三维坐标转换为屏幕坐标系下的二维坐标之后,利用对象像素点在z轴的信息得到上述深度纹理。此外,上述第二深度信息也可以但不限于是对目标光源进行坐标转换后得到的深度纹理。其中,上述过程可以包括但不限于:将目标光源在世界坐标系下的三维坐标转换为屏幕坐标系下的二维坐标之后,利用目标光源在z轴的信息得到上述深度纹理。
需要说明的是,上述目标光源的坐标可以但不限于使用光源体中心位置的坐标。此外,上述目标光源可以但不限于具有对应的光源坐标系,将目标光源在光源坐标系下的坐标进行转换,以得到上述目标光源在世界坐标系下的三维坐标。
可选地,在本实施例中,根据第一深度信息和第二深度信息,从对象像素点中确定出目标对象像素点可以包括但不限于:依次获取每个目标光源对应的第二深度信息,利用该第二深度信息与对象像素点的第一深度信息进行比对,以确定上述目标对象像素点。其中,上述对象像素点的第一深度信息,可以但不限于按照对象像素点在屏幕坐标系下的二维坐标存储至对应的深度缓存中。
进一步,在获取到目标光源的第二深度信息后,可以但不限于利用目标光源在屏幕坐标系下的二维坐标,访问与该二维坐标对应的深度缓存,以获取在该二维坐标出现的对象像素点对应的第一深度信息,从而实现快速定位出与目标光源关联的对象像素点的第一深度信息,提高深度信息的比对效率。
可选地,在本实施例中,可以但不限于:将对象像素点中除目标对象像素点之外的其他对象像素点确定为非目标对象像素点;对非目标对象像素点执行放弃渲染处理。
进一步,在本实施例中,上述非目标对象像素点可以但不限于通过以下方式确定:在比对多光源中全部光源的第二深度信息和第一深度信息之后,若比对结果指示全部的第二深度信息中均未包含第一深度信息的情况下,则将第一深度信息对应的对象像素点确定为非目标对象像素点,其中,非目标对象像素点将被放弃渲染。也就是说,通过上述比对过程可以对目标对象的对象像素点进行过滤渲染,进一步简化画面渲染的处理过程,达到提高画面渲染的效率。
而在本实施例中,在比对结果指示至少一个目标光源的第二深度信息包含第一深度信息的情况下,则将包含在上述第二深度信息中的第一深度信息对应的对象像素点确定为候选对象像素点,进一步从上述候选对象像素点中确定出目标对象像素点。
可选地,在本实施例中,从候选对象像素点中确定出目标对象像素点的过程可以但不限于包括:利用第一深度信息及候选对象像素点在屏幕坐标系下的二维坐标进行逆运算,得到候选对象像素点对应的像素点位置;利用第二深度信息及目标光源在屏幕坐标系下的二维坐标进行逆运算,得到目标光源对应的光源位置;获取像素点位置和光源位置之间的距离,并比对该距离与目标光源的光照半径;在确定上述该距离小于目标光源的光照半径的情况下,确定候选对象像素点位于目标光源相匹配的光照范围内,并确定候选对象像素点为目标对象像素点。
可选地,在本实施例中,对目标对象像素点进行光照运算,得到与目标对象像素点相匹配的光照运算结果包括:对目标对象像素点进行光照衰减处理,得到处理结果;利用目标光照模型对处理结果进行光照运算,其中,目标光照模型包括以下之一:简单光照模型(简称Phong模型)、基于物理的光照模型(Physical Based Rendering,简称PBR模型)。
需要说明的是,在本实施例中,上述对目标画面进行渲染可以但不限于是使用正向渲染方式进行渲染,其中,正向渲染的过程可以但不限于参考步骤S502-S514:
S502,顶点生成(Vertex Generation)。获取目标画面中目标对象对应的Mesh上的顶点数据;
S504,顶点处理(Vertex Processing)。通过着色器(Shader)对上述顶点数据中指示的顶点进行坐标转换,从而将顶点的坐标从世界空间转换到屏幕空间。
S506,图元生成(Primitive Generation)。
S508,图元处理(Primitive Processing)。由底层渲染应用接口(ApplicationInterface,简称API)来处理,把上述顶点绘制成三角形图元;
S510,光栅化处理(Rasterization),并生成像素点(Fragment Processing)。也是由底层渲染应用接口API处理,对上述图元进行遮挡剔除等操作。
S512,像素点颜色处理(Fragment Processing)。通过着色器(Shader)对光栅化处理后的数据进行颜色处理,输出最终颜色。
S514,帧缓存(Frame Buffer)。对经过颜色处理的像素点所在的画面帧进行保存。
此外,需要说明的是,在本实施例中,在正向渲染上述目标画面的过程中采用上述画面渲染方式,不仅仍然具备正向渲染的优势,如相对延迟渲染,更加简单直接,而且还可以通过上述实施例中提供的过程来筛选目标对象上的对象像素点,得到目标对象像素点,以对该目标对象像素点进行光照运算,而无需再对每个对象像素点都进行多光源的光照运算,从而克服正向渲染对动态多光源的支持存在限制的问题,进而实现在正向渲染目标画面中多光源场景下的目标对象的过程中,减少计算量,降低画面渲染的操作复杂度。
通过本申请提供的实施例,在对待渲染的目标画面中多光源场景下的目标对象进行渲染的过程中,可以利用第一深度信息和第二深度信息,对目标对象上的对象像素点进行筛选,得到目标对象像素点,从而实现对筛选后得到的目标对象像素点进行光照运算,而不再对每个对象像素点都进行多光源的光照运算,以达到减少光照运行的计算量,实现简化画面渲染过程的操作复杂度的效果。
作为一种可选的方案,在获取多光源中每个目标光源对应的第二深度信息之后,如图6所示,还包括:
S602,依次将每个目标光源作为当前的目标光源,获取当前的目标光源的第二深度信息,并执行以下操作:
S604,比对第二深度信息和第一深度信息,以确定第二深度信息中是否包含第一深度信息;在确定出第二深度信息中未包含第一深度信息的情况下,获取下一个目标光源作为当前的目标光源,返回步骤S602。在第二深度信息中包含第一深度信息的情况下,执行步骤S606。
S606,将包含在第二深度信息中的第一深度信息所对应的对象像素点确定为候选对象像素点;
S608,从候选对象像素点中确定出目标对象像素点。
S610,在多光源中全部光源的第二深度信息中均未包含第一深度信息的情况下,将第一深度信息对应的对象像素点确定为非目标对象像素点。
需要说明的是,通过上述比对每个目标光源的第二深度信息和对象像素点的第一深度信息,来对目标对象上的对象像素点进行筛选过滤:
1)将包含在第二深度信息中的第一深度信息所对应的对象像素点确定为候选对象像素点,进一步从候选对象像素点中确定出目标对象像素点。
2)将对象像素点中除目标对象像素点之外的其他对象像素点,确定为非目标对象像素点。
通过本申请提供的实施例,通过确定目标光源的第二深度信息是否包含第一深度信息,以确定第一深度信息所对应的对象像素点是需要放弃渲染处理的非目标对象像素点,还是用于获取目标对象像素点的候选对象像素点。从而实现利用深度信息的比对结果,来对目标对象上的对象像素点进行筛选过滤,以简化对目标画面进行渲染的操作,进而达到降低画面渲染的操作复杂度,提高渲染效率的目的。
作为一种可选的方案,从候选对象像素点中确定出目标对象像素点包括:
S1,依次获取候选对象像素点对应的第一深度信息作为当前候选对象像素点对应的第一深度信息,并执行以下操作:
S11,根据当前候选对象像素点对应的第一深度信息,确定当前候选对象像素点的第一位置;
S12,根据第二深度信息确定目标光源的光源位置;
S13,获取第一位置到光源位置的第一距离;
S14,在第一距离小于目标光源的光照半径的情况下,确定第一位置位于与目标光源相匹配的光照范围内,并确定当前候选对象像素点为目标对象像素点,其中,光照半径用于指示与目标光源相匹配的光照范围。
需要说明的是,上述目标光源的坐标可以但不限于使用光源体中心位置的坐标。此外,上述目标光源可以但不限于具有对应的光源坐标系。
具体结合图7所示示例进行说明,假设仍以游戏应用为例,其中,当前候选对象像素点为虚拟人物角色身上的一个对象像素点704,对应位置B,左侧的光源为目标光源702,中心位置对应位置A,以上述假设为例进行说明:
如图7所示,目标光源702对应的位置A(光源位置)到对象像素点704对应的位置B(第一位置)之间的第一距离为距离d,目标光源702的光照半径为半径r。比对得出:半径r>距离d,则可以确定上述位置B上的对象像素点704为目标对象像素点。进一步,若假设上述半径r<距离d,则可以确定上述位置B上的对象像素点704并非目标对象像素点(图中非示出)。
通过本申请提供的实施例,利用第一深度信息确定对象像素点的第一位置,利用第二深度信息确定目标光源的光源位置,根据第一位置和光源位置获取第一距离,从而根据第一距离与目标光源的光照半径的比对结果,来从上述候选对象像素点中准确的确定出目标对象像素点,以实现对上述筛选确定出的目标对象像素点来进行多光源的光照运算,而不再对全部的对象像素点进行光照运算,以达到减少光照运算的计算量,简化画面渲染的操作,提高画面渲染效率的效果。
作为一种可选的方案,上述获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息可以包括但不限于:将目标对象对应的对象像素点在世界坐标系下的第一三维坐标,转换为与目标画面所在的目标空间对应的空间坐标系下的第二三维坐标,其中,目标空间的空间大小小于场景所在世界空间的空间大小;根据第二三维坐标,确定对象像素点在屏幕坐标系下的二维坐标及第一深度信息,并将第一深度信息存储至深度缓存的渲染队列中。
需要说明的是,上述目标空间可以但不限于为目标画面所对应的可视空间,例如,该可视空间可以为与该目标画面对应的单位立方体空间,x,y,z三个方向上的坐标值均位于区间[-1,1]。也就是说,利用目标空间对目标画面对应的世界空间进行裁剪,从而实现对位于目标空间中的对象像素点执行下一步坐标转换处理,以过滤删除部分接近边界的对象像素点。上述仅为一种示例,本实施例中对此不作任何限定。
进一步,在本实施例中,对于对象像素点,在将目标空间的坐标转换为屏幕坐标系下的二维坐标后,可以将原三维坐标中z轴坐标对应的信息作为深度信息,按照二维坐标所指示的位置保存至深度缓存的渲染队列中。
此外,在本实施例中,在保存上述对象像素点的深度信息(第一深度信息)的同时,还可以但不限于保存该对象像素点对应的法线信息,如法线纹理。以便于在对对象像素点进行光照运算时,可以利用该法线纹理来确定目标光源的光照方向,进而确定对该对象像素点的光照影响。
可选地,在本实施例中,获取多光源中每个目标光源对应的第二深度信息包括:将目标光源在世界坐标系下的第三三维坐标,转换为与目标空间对应的空间坐标系下的第四三维坐标;根据第四三维坐标,确定目标光源在屏幕坐标系下的二维坐标及第二深度信息。
需要说明的是,在本实施例中,上述第二深度信息的确定过程可以但不限于参考上述第一深度信息的确定过程,本实施例中在此不再赘述。
通过本申请提供的实施例,通过对对象像素点和目标光源在对应坐标系下的坐标转换,来分别获取对象像素点的第一深度信息和目标光源的第二深度信息,从而便于利用获取到的第一深度信息和第二深度信息,来筛选得到用于光照运算的目标对象像素点,以简化针对多光源的光照运算操作,达到提高画面渲染效率的效果。
作为一种可选的方案,在确定目标光源在屏幕坐标系下的二维坐标及第二深度信息之后,还包括:
1)利用对象像素点的二维坐标及第一深度信息进行逆运算,得到对象像素点在世界坐标下的第一对象位置坐标;将第一对象位置坐标转换为目标光源所在光源坐标系下的第二对象位置坐标,以根据第二对象位置坐标和目标光源在光源坐标系下的第一光源位置坐标确定目标对象像素点;或者
2)利用对象像素点的二维坐标及第一深度信息进行逆运算,得到对象像素点在世界坐标下的第一对象位置坐标;利用目标光源的二维坐标及第二深度信息进行逆运算,得到目标光源在世界坐标下的第二光源位置坐标,以根据第一对象位置坐标和第二光源位置坐标确定目标对象像素点。
需要说明的是,在本实施例中,在获取到第一深度信息和对象像素点的二维坐标,及第二深度信息和目标光源的二维坐标之后,可以但不限于通过逆运算确定对象像素点与目标光源的位置坐标,进一步通过位置坐标,来确定对象像素点中的目标对象像素点。具体实现过程可以但不限于参照结合图7说明的示例,本实施例中对此不作任何限定。
此外,在本实施例中,通过对二维坐标和深度信息进行逆运算,以使得对象像素点和目标光源在相同坐标系下进行位置比对,从而保证位置比对的准确性,进而保证确定目标对象像素点的准确性。进一步,上述相同坐标系可以为世界坐标系,对目标光源的二维坐标和深度信息进行逆运算,得到目标光源在世界坐标系下的坐标,进而比对世界坐标系下目标光源与对象像素点之间的位置;此外,上述相同坐标系可以为光源坐标系,对对象像素点的二维坐标和深度信息进行逆运算,得到对象像素点在光源坐标系下的坐标,进而比对光源坐标系下目标光源与对象像素点之间的位置。上述仅是示例,本实施例中对此不作任何限定。
具体结合图8所示示例进行说明,假设以将上述画面渲染方法应用于Unity引擎为例进行说明,假设在Unity中将获取到的与目标对象(用Geometry表示)渲染组中的Mesh对应的对象像素点的深度纹理(用Depth表示)存储到深度缓存(Depth Buffer)中。此外,还可以在运行中通过更改渲染设置,将深度纹理(Depth)和法线纹理(Normal)保存到一个缓存中,也可以分别对应保存到深度缓存(Depth buffer)和法线缓存(Normal buffer)中。将目标光源(可以用box表示)在光源坐标系下的坐标变换到目标画面对应的屏幕坐标系下,得到目标光源的二维坐标和深度纹理。将上述获取到信息保存到缓存的渲染队列中。
对上述目标对象所在的目标画面进行渲染的步骤可以包括:步骤S802-S812:
获取渲染队列中目标对象上的对象像素点的深度信息(如深度纹理)和法线信息(法线纹理),以及一个目标光源的深度信息(如深度纹理)和法线信息(法线纹理)。然后,利用目标光源转换后的二维坐标,在深度缓存中查找对应的对象像素点的深度信息(如深度纹理)。然后比对目标光源的深度信息(如深度纹理)和查找到的对象像素点的深度信息(如深度纹理)。在全部的目标光源的深度信息(如深度纹理)中均未包括查找到的对象像素点的深度信息(如深度纹理)的情况下,直接放弃该对象像素点的渲染。
在目标光源的深度信息(如深度纹理)包括查找到的对象像素点的深度信息(如深度纹理)的情况下,利用上述深度信息和二维坐标进行逆运算,以确定对象像素点的对象位置坐标,及目标光源的光源位置坐标。
然后,通过比对对象位置坐标及光源位置坐标获取目标对象上的目标对象像素点,以剔除不在光照范围内的非对象像素点。
利用确定出的目标对象像素点进行光照衰减处理,得到处理结果。进一步根据实际需求确定光照运算模型,如简单光照模型(简称Phong模型)、基于物理的光照模型(Physical Based Rendering,简称PBR模型)。
进一步,获取法线缓存中存储的对象像素点的法线纹理,通过确定出的光照运算模型,利用上述法线纹理来进行光照运算(如着色运算),最后进行画面渲染。
例如,使用Phong光照模型对每个对象像素点进行着色运算:
I=Ipaka+∑(Ipdkdcosi+Ipskscosθ)
其中,Ipa为环境光颜色,ka为环境光处理系数,Ipd为漫反射光颜色,kd为漫反射光系数,Ips为镜面反射光颜色,ks为镜面反射光处理系数。i为漫反射角度,θ为镜面反射角度。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述画面渲染方法的画面渲染装置。如图9所示,该装置包括:
1)第一获取单元902,用于获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息;
2)第二获取单元904,用于获取多光源中每个目标光源对应的第二深度信息;
3)第一确定单元906,用于根据第一深度信息和第二深度信息,从对象像素点中确定出目标对象像素点,其中,目标对象像素点所在位置位于至少一个目标光源的光照范围内;
4)运算单元908,用于对目标对象像素点进行光照运算,得到与目标对象像素点相匹配的光照运算结果;
5)渲染单元910,用于根据光照运算结果渲染目标画面。
需要说明的是,上述图3所示单元模块可以但不限于应用于图1所示画面渲染控制系统中的用户设备102和服务器112中,也可以但不限于位于图2所示用户设备102中。上述仅是示例,本实施例中对此不作任何限定。
可选地,在本实施例中,上述画面渲染方法可以但不限于应用于游戏应用的画面渲染过程中,其中,该游戏应用可以但不限于为具有多光源的三维(简称3D)游戏应用。此外,在本实施例中,上述多光源的每个目标光源可以包括但不限于:点光源、体渲染点光源。上述目标对象可以但不限于为上述游戏应用所提供的多光源的场景下受到目标光源的光照影响的虚拟对象,如这里虚拟对象可以包括但不限于:虚拟人物角色、虚拟装备、虚拟建筑、虚拟交通工具等。其中,上述目标对象在目标画面中可以但不限于对应多个对象像素点,即,通过上述多个对象像素点在目标画面中呈现目标对象。上述仅是一种示例,本实施例中对此不作任何限定。
例如,假设以3D游戏应用为例,结合图1所示游戏界面来说明:获取所要渲染的目标画面,其中,该目标画面中包括两个光源及受到上述光源的光照影响的目标对象(如虚拟人物角色)。获取该虚拟人物角色对应的对象像素点的第一深度信息,及上述两个光源中每个光源的第二深度信息。利用上述第一深度信息和第二深度信息,确定虚拟人物角色对应的对象像素点中位于至少一个光源的光照范围内的目标对象像素点,并对上述确定出的目标对象像素点进行光照运算,以根据光照运算得到的光照运算结果来渲染上述目标画面。从而避免对虚拟人物角色上的全部对象像素点都执行与上述两个光源相匹配的光照运算,以减少光照运算的计算量,实现简化对目标画面进行渲染的操作,达到降低画面渲染的操作复杂度的效果。
可选地,在本实施例中,上述装置还包括:第二确定单元,用于在根据第一深度信息和第二深度信息,从对象像素点中确定出目标对象像素点之后,将对象像素点中除目标对象像素点之外的其他对象像素点确定为非目标对象像素点;第一处理单元,用于对非目标对象像素点执行放弃渲染处理。
可选地,在本实施例中,上述运算单元908包括:第二处理模块,用于对目标对象像素点进行光照衰减处理,得到处理结果;运算模块,用于利用目标光照模型对处理结果进行光照运算,其中,目标光照模型包括以下之一:简单光照模型、基于物理的光照模型。
通过本申请提供的实施例,在对待渲染的目标画面中多光源场景下的目标对象进行渲染的过程中,可以利用第一深度信息和第二深度信息,对目标对象上的对象像素点进行筛选,得到目标对象像素点,从而实现对筛选后得到的目标对象像素点进行光照运算,而不再对每个对象像素点都进行多光源的光照运算,以达到减少光照运行的计算量,实现简化画面渲染过程的操作复杂度的效果。
作为一种可选的方案,上述最终还包括:
1)第二处理单元,用于在获取多光源中每个目标光源对应的第二深度信息之后,依次对每个目标光源对应的第二深度信息执行以下操作:
S1,比对第二深度信息和第一深度信息;
S2,在第二深度信息中未包含第一深度信息的情况下,获取下一个目标光源对应的第二深度信息,其中,在多光源中全部光源的第二深度信息中均未包含第一深度信息的情况下,将第一深度信息对应的对象像素点确定为非目标对象像素点。
此外,上述第二处理单元还用于执行以下操作:
S3,在比对第二深度信息和第一深度信息之后,在第二深度信息中包含第一深度信息的情况下,将包含在第二深度信息中的第一深度信息所对应的对象像素点确定为候选对象像素点;
S4,从候选对象像素点中确定出目标对象像素点。
通过本申请提供的实施例,通过确定目标光源的第二深度信息是否包含第一深度信息,以确定第一深度信息所对应的对象像素点是需要放弃渲染处理的非目标对象像素点,还是用于获取目标对象像素点的候选对象像素点。从而实现利用深度信息的比对结果,来对目标对象上的对象像素点进行筛选过滤,以简化对目标画面进行渲染的操作,进而达到降低画面渲染的操作复杂度,提高渲染效率的目的。
作为一种可选的方案,第二处理单元还用于执行以下操作:
S1,依次获取候选对象像素点对应的第一深度信息作为当前候选对象像素点对应的第一深度信息,并执行以下操作:
S11,根据当前候选对象像素点对应的第一深度信息,确定当前候选对象像素点的第一位置;
S12,根据第二深度信息确定目标光源的光源位置;
S13,获取第一位置到光源位置的第一距离;
S14,在第一距离小于目标光源的光照半径的情况下,确定第一位置位于与目标光源相匹配的光照范围内,并确定当前候选对象像素点为目标对象像素点,其中,光照半径用于指示与目标光源相匹配的光照范围。
通过本申请提供的实施例,利用第一深度信息确定对象像素点的第一位置,利用第二深度信息确定目标光源的光源位置,根据第一位置和光源位置获取第一距离,从而根据第一距离与目标光源的光照半径的比对结果,来从上述候选对象像素点中准确的确定出目标对象像素点,以实现对上述筛选确定出的目标对象像素点来进行多光源的光照运算,而不再对全部的对象像素点进行光照运算,以达到减少光照运算的计算量,简化画面渲染的操作,提高画面渲染效率的效果。
作为一种可选的方案,第一获取单元902包括:
1)第一转换模块,用于将目标对象对应的对象像素点在世界坐标系下的第一三维坐标,转换为与目标画面所在的目标空间对应的空间坐标系下的第二三维坐标,其中,目标空间的空间大小小于场景所在世界空间的空间大小;
2)第一确定模块,用于根据第二三维坐标,确定对象像素点在屏幕坐标系下的二维坐标及第一深度信息,并将第一深度信息存储至深度缓存的渲染队列中。
需要说明的是,上述目标空间可以但不限于为目标画面所对应的可视空间,例如,该可视空间可以为与该目标画面对应的单位立方体空间,x,y,z三个方向上的坐标值均位于区间[-1,1]。也就是说,利用目标空间对目标画面对应的世界空间进行裁剪,从而实现对位于目标空间中的对象像素点执行下一步坐标转换处理,以过滤删除部分接近边界的对象像素点。上述仅为一种示例,本实施例中对此不作任何限定。
进一步,在本实施例中,对于对象像素点,在将目标空间的坐标转换为屏幕坐标系下的二维坐标后,可以将原三维坐标中z轴坐标对应的信息作为深度信息,按照二维坐标所指示的位置保存至深度缓存的渲染队列中。
此外,在本实施例中,在保存上述对象像素点的深度信息(第一深度信息)的同时,还可以但不限于保存该对象像素点对应的法线信息,如法线纹理。以便于在对对象像素点进行光照运算时,可以利用该法线纹理来确定目标光源的光照方向,进而确定对该对象像素点的光照影响。
可选地,在本实施例中,第二获取单元904包括:
1)第二转换模块,用于将目标光源在世界坐标系下的第三三维坐标,转换为与目标空间对应的空间坐标系下的第四三维坐标;
2)第二确定模块,用于根据第四三维坐标,确定目标光源在屏幕坐标系下的二维坐标及第二深度信息。
需要说明的是,在本实施例中,上述第二深度信息的确定过程可以但不限于参考上述第一深度信息的确定过程,本实施例中在此不再赘述。
通过本申请提供的实施例,通过对对象像素点和目标光源在对应坐标系下的坐标转换,来分别获取对象像素点的第一深度信息和目标光源的第二深度信息,从而便于利用获取到的第一深度信息和第二深度信息,来筛选得到用于光照运算的目标对象像素点,以简化针对多光源的光照运算操作,达到提高画面渲染效率的效果。
作为一种可选的方案,还包括:
1)第一处理模块,用于在确定目标光源在屏幕坐标系下的二维坐标及第二深度信息之后,利用对象像素点的二维坐标及第一深度信息进行逆运算,得到对象像素点在世界坐标下的第一对象位置坐标;将第一对象位置坐标转换为目标光源所在光源坐标系下的第二对象位置坐标,以根据第二对象位置坐标和目标光源在光源坐标系下的第一光源位置坐标确定目标对象像素点;或者
2)第二处理模块,用于在确定目标光源在屏幕坐标系下的二维坐标及第二深度信息之后,利用对象像素点的二维坐标及第一深度信息进行逆运算,得到对象像素点在世界坐标下的第一对象位置坐标;利用目标光源的二维坐标及第二深度信息进行逆运算,得到目标光源在世界坐标下的第二光源位置坐标,以根据第一对象位置坐标和第二光源位置坐标确定目标对象像素点。
需要说明的是,在本实施例中,在获取到第一深度信息和对象像素点的二维坐标,及第二深度信息和目标光源的二维坐标之后,可以但不限于通过逆运算确定对象像素点与目标光源的位置坐标,进一步通过位置坐标,来确定对象像素点中的目标对象像素点。具体实现过程可以但不限于参照结合图7说明的示例,本实施例中对此不作任何限定。
根据本发明实施例的又一个方面,还提供了一种用于实施上述画面渲染方法的电子装置,如图10所示,该电子装置包括存储器1002和处理器1004,该存储器1002中存储有计算机程序,该处理器1004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息;
S2,获取多光源中每个目标光源对应的第二深度信息;
S3,根据第一深度信息和第二深度信息,从对象像素点中确定出目标对象像素点,其中,目标对象像素点所在位置位于至少一个目标光源的光照范围内;
S4,对目标对象像素点进行光照运算,得到与目标对象像素点相匹配的光照运算结果;
S5,根据光照运算结果渲染目标画面。
可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。
其中,存储器1002可用于存储软件程序以及模块,如本发明实施例中的画面渲染方法和装置对应的程序指令/模块,处理器1004通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的画面渲染方法。存储器1002可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1002具体可以但不限于用于存储第一深度信息和第二深度信息,以及光照运算结果等信息。作为一种示例,如图10所示,上述存储器1002中可以但不限于包括上述画面渲染装置中的第一获取单元902、第二获取单元904、第一确定单元906、运算单元908及渲染单元910。此外,还可以包括但不限于上述画面渲染装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1006包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1006为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器1008,用于显示渲染后的目标画面;和连接总线1010,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息;
S2,获取多光源中每个目标光源对应的第二深度信息;
S3,根据第一深度信息和第二深度信息,从对象像素点中确定出目标对象像素点,其中,目标对象像素点所在位置位于至少一个目标光源的光照范围内;
S4,对目标对象像素点进行光照运算,得到与目标对象像素点相匹配的光照运算结果;
S5,根据光照运算结果渲染目标画面。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (18)
1.一种画面渲染方法,其特征在于,包括:
获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息和第一法线信息,其中,所述目标对象为游戏应用所提供的所述多光源的场景下受到目标光源的光照影响的虚拟对象,所述第一法线信息用于记录所述对象像素点的法线纹理;
获取所述多光源中每个目标光源对应的第二深度信息和第二法线信息;
将在所述每个目标光源各自对应的所述第二深度信息中查找到的所述第一深度信息对应的对象像素点,确定为目标对象像素点,其中,所述目标对象像素点所在位置位于至少一个所述目标光源的光照范围内;
将在所述每个目标光源各自对应的所述第二深度信息中并未查找到的所述第一深度信息对应的对象像素点,确定为非目标对象像素点,并对所述非目标对象像素点执行放弃渲染处理;
对所述目标对象像素点进行光照衰减处理,得到处理结果;
根据与所述第一法线信息对应的光照运算模型和所述处理结果来进行光照运算,得到光照运算结果;
根据所述光照运算结果渲染所述目标画面。
2.根据权利要求1所述的方法,其特征在于,在所述获取所述多光源中每个目标光源对应的第二深度信息和第二法线信息之后,还包括:
依次对每个所述目标光源对应的所述第二深度信息执行以下操作:
比对所述第二深度信息和所述第一深度信息;
在所述第二深度信息中未包含所述第一深度信息的情况下,获取下一个目标光源对应的第二深度信息,其中,在所述多光源中全部光源的第二深度信息中均未包含所述第一深度信息的情况下,将所述第一深度信息对应的对象像素点确定为非目标对象像素点。
3.根据权利要求2所述的方法,其特征在于,在所述比对所述第二深度信息和所述第一深度信息之后,还包括:
在所述第二深度信息中包含所述第一深度信息的情况下,将包含在所述第二深度信息中的所述第一深度信息所对应的对象像素点确定为候选对象像素点;
从所述候选对象像素点中确定出所述目标对象像素点。
4.根据权利要求3所述的方法,其特征在于,所述从所述候选对象像素点中确定出所述目标对象像素点包括:
依次获取所述候选对象像素点对应的第一深度信息作为当前候选对象像素点对应的第一深度信息,并执行以下操作:
根据所述当前候选对象像素点对应的第一深度信息,确定所述当前候选对象像素点的第一位置;
根据所述第二深度信息确定所述目标光源的光源位置;
获取所述第一位置到所述光源位置的第一距离;
在所述第一距离小于所述目标光源的光照半径的情况下,确定所述第一位置位于与所述目标光源相匹配的所述光照范围内,并确定所述当前候选对象像素点为所述目标对象像素点,其中,所述光照半径用于指示与所述目标光源相匹配的所述光照范围。
5.根据权利要求1所述的方法,其特征在于,所述获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息包括:
将所述目标对象对应的所述对象像素点在世界坐标系下的第一三维坐标,转换为与所述目标画面所在的目标空间对应的空间坐标系下的第二三维坐标,其中,所述目标空间的空间大小小于所述场景所在世界空间的空间大小;
根据所述第二三维坐标,确定所述对象像素点在屏幕坐标系下的二维坐标及所述第一深度信息,并将所述第一深度信息存储至深度缓存的渲染队列中。
6.根据权利要求5所述的方法,其特征在于,所述获取所述多光源中每个目标光源对应的第二深度信息包括:
将所述目标光源在所述世界坐标系下的第三三维坐标,转换为与所述目标空间对应的所述空间坐标系下的第四三维坐标;
根据所述第四三维坐标,确定所述目标光源在所述屏幕坐标系下的二维坐标及所述第二深度信息。
7.根据权利要求6所述的方法,其特征在于,在所述确定所述目标光源在所述屏幕坐标系下的二维坐标及所述第二深度信息之后,还包括:
利用所述对象像素点的二维坐标及所述第一深度信息进行逆运算,得到所述对象像素点在所述世界坐标下的第一对象位置坐标;将所述第一对象位置坐标转换为所述目标光源所在光源坐标系下的第二对象位置坐标,以根据所述第二对象位置坐标和所述目标光源在所述光源坐标系下的第一光源位置坐标确定所述目标对象像素点;或者
利用所述对象像素点的二维坐标及所述第一深度信息进行逆运算,得到所述对象像素点在所述世界坐标下的第一对象位置坐标;利用所述目标光源的二维坐标及所述第二深度信息进行逆运算,得到所述目标光源在所述世界坐标下的第二光源位置坐标,以根据所述第一对象位置坐标和所述第二光源位置坐标确定所述目标对象像素点。
8.根据权利要求1至7中任一项所述的方法,其特征在于,在所述对所述目标对象像素点进行光照衰减处理,得到处理结果之后,还包括:
确定与所述第一法线信息对应的光照运算模型为目标光照模型,其中,所述目标光照模型包括以下之一:简单光照模型、基于物理的光照模型。
9.一种画面渲染装置,其特征在于,包括:
第一获取单元,用于获取待渲染的目标画面中在多光源的场景下的目标对象对应的对象像素点的第一深度信息和第一法线信息,其中,所述目标对象为游戏应用所提供的所述多光源的场景下受到目标光源的光照影响的虚拟对象,所述第一法线信息用于记录所述对象像素点的法线纹理;
第二获取单元,用于获取所述多光源中每个目标光源对应的第二深度信息和第二法线信息;
第一确定单元,用于将在所述每个目标光源各自对应的所述第二深度信息中查找到的所述第一深度信息对应的对象像素点,确定为目标对象像素点,其中,所述目标对象像素点所在位置位于至少一个所述目标光源的光照范围内;
第二确定单元,用于将在所述每个目标光源各自对应的所述第二深度信息中并未查找到的所述第一深度信息对应的对象像素点,确定为非目标对象像素点;
第一处理单元,用于对所述非目标对象像素点执行放弃渲染处理;
第二处理单元,用于对所述目标对象像素点进行光照衰减处理,得到处理结果;
运算单元,用于根据与所述第一法线信息对应的光照运算模型和所述处理结果来进行光照运算,得到光照运算结果;
渲染单元,用于根据所述光照运算结果渲染所述目标画面。
10.根据权利要求9所述的装置,其特征在于,还包括:
第二处理单元,用于在所述获取所述多光源中每个目标光源对应的第二深度信息之后,依次对每个所述目标光源对应的所述第二深度信息执行以下操作:
比对所述第二深度信息和所述第一深度信息;
在所述第二深度信息中未包含所述第一深度信息的情况下,获取下一个目标光源对应的第二深度信息,其中,在所述多光源中全部光源的第二深度信息中均未包含所述第一深度信息的情况下,将所述第一深度信息对应的对象像素点确定为非目标对象像素点。
11.根据权利要求10所述的装置,其特征在于,所述第二处理单元还用于执行以下操作:
在所述比对所述第二深度信息和所述第一深度信息之后,在所述第二深度信息中包含所述第一深度信息的情况下,将包含在所述第二深度信息中的所述第一深度信息所对应的对象像素点确定为候选对象像素点;
从所述候选对象像素点中确定出所述目标对象像素点。
12.根据权利要求11所述的装置,其特征在于,所述第二处理单元还用于执行以下操作:
依次获取所述候选对象像素点对应的第一深度信息作为当前候选对象像素点对应的第一深度信息,并执行以下操作:
根据所述当前候选对象像素点对应的第一深度信息,确定所述当前候选对象像素点的第一位置;
根据所述第二深度信息确定所述目标光源的光源位置;
获取所述第一位置到所述光源位置的第一距离;
在所述第一距离小于所述目标光源的光照半径的情况下,确定所述第一位置位于与所述目标光源相匹配的所述光照范围内,并确定所述当前候选对象像素点为所述目标对象像素点,其中,所述光照半径用于指示与所述目标光源相匹配的所述光照范围。
13.根据权利要求9所述的装置,其特征在于,所述第一获取单元包括:
第一转换模块,用于将所述目标对象对应的所述对象像素点在世界坐标系下的第一三维坐标,转换为与所述目标画面所在的目标空间对应的空间坐标系下的第二三维坐标,其中,所述目标空间的空间大小小于所述场景所在世界空间的空间大小;
第一确定模块,用于根据所述第二三维坐标,确定所述对象像素点在屏幕坐标系下的二维坐标及所述第一深度信息,并将所述第一深度信息存储至深度缓存的渲染队列中。
14.根据权利要求13所述的装置,其特征在于,所述第二获取单元包括:
第二转换模块,用于将所述目标光源在所述世界坐标系下的第三三维坐标,转换为与所述目标空间对应的所述空间坐标系下的第四三维坐标;
第二确定模块,用于根据所述第四三维坐标,确定所述目标光源在所述屏幕坐标系下的二维坐标及所述第二深度信息。
15.根据权利要求14所述的装置,其特征在于,还包括:
第一处理模块,用于在所述确定所述目标光源在所述屏幕坐标系下的二维坐标及所述第二深度信息之后,利用所述对象像素点的二维坐标及所述第一深度信息进行逆运算,得到所述对象像素点在所述世界坐标下的第一对象位置坐标;将所述第一对象位置坐标转换为所述目标光源所在光源坐标系下的第二对象位置坐标,以根据所述第二对象位置坐标和所述目标光源在所述光源坐标系下的第一光源位置坐标确定所述目标对象像素点;或者
第二处理模块,用于在所述确定所述目标光源在所述屏幕坐标系下的二维坐标及所述第二深度信息之后,利用所述对象像素点的二维坐标及所述第一深度信息进行逆运算,得到所述对象像素点在所述世界坐标下的第一对象位置坐标;利用所述目标光源的二维坐标及所述第二深度信息进行逆运算,得到所述目标光源在所述世界坐标下的第二光源位置坐标,以根据所述第一对象位置坐标和所述第二光源位置坐标确定所述目标对象像素点。
16.根据权利要求9至15中任一项所述的装置,其特征在于,所述装置还用于在所述对所述目标对象像素点进行光照衰减处理,得到处理结果之后,确定与所述第一法线信息对应的光照运算模型为目标光照模型,其中,所述目标光照模型包括以下之一:简单光照模型、基于物理的光照模型。
17.一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至8任一项中所述的方法。
18.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至8任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910413396.5A CN110211218B (zh) | 2019-05-17 | 2019-05-17 | 画面渲染方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910413396.5A CN110211218B (zh) | 2019-05-17 | 2019-05-17 | 画面渲染方法和装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110211218A CN110211218A (zh) | 2019-09-06 |
CN110211218B true CN110211218B (zh) | 2021-09-10 |
Family
ID=67787686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910413396.5A Active CN110211218B (zh) | 2019-05-17 | 2019-05-17 | 画面渲染方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110211218B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111145323B (zh) * | 2019-12-27 | 2023-09-22 | 珠海金山数字网络科技有限公司 | 一种图像渲染方法及装置 |
CN111209877B (zh) * | 2020-01-10 | 2022-09-20 | 大连理工大学 | 一种复杂场景下基于深度图的红外小目标检测方法 |
CN112040596B (zh) * | 2020-08-18 | 2022-11-08 | 张雪媛 | 虚拟空间灯光控制方法、计算机可读存储介质和系统 |
CN112257134B (zh) * | 2020-10-30 | 2022-09-16 | 久瓴(上海)智能科技有限公司 | 模型管理方法、装置及电子设备 |
CN112802170B (zh) * | 2021-02-07 | 2023-05-16 | 抖音视界有限公司 | 光照图像生成方法、装置、设备和介质 |
CN113079409B (zh) * | 2021-03-26 | 2021-11-26 | 深圳市凉屋游戏科技有限公司 | 画面渲染方法及画面渲染装置 |
CN113052950B (zh) * | 2021-03-31 | 2021-12-17 | 完美世界(北京)软件科技发展有限公司 | 光照计算方法、装置、计算机设备及计算机可读存储介质 |
CN113192173B (zh) * | 2021-05-14 | 2023-09-19 | 腾讯科技(成都)有限公司 | 三维场景的图像处理方法、装置及电子设备 |
CN113920238B (zh) * | 2021-12-14 | 2022-03-15 | 深圳市大头兄弟科技有限公司 | 一种二维目标图案的三维化方法及相关设备 |
CN114782613A (zh) * | 2022-04-29 | 2022-07-22 | 北京字跳网络技术有限公司 | 图像渲染方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090949A (zh) * | 2017-12-26 | 2018-05-29 | 苏州蜗牛数字科技股份有限公司 | 一种基于光能传播的实时全局光照方法 |
CN108805971A (zh) * | 2018-05-28 | 2018-11-13 | 中北大学 | 一种环境光遮蔽方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103021020B (zh) * | 2012-12-05 | 2015-05-20 | 上海创图网络科技发展有限公司 | 一种基于多光源的3d渲染方法 |
CN103606182B (zh) * | 2013-11-19 | 2017-04-26 | 华为技术有限公司 | 图像渲染方法及装置 |
CN105825544B (zh) * | 2015-11-25 | 2019-08-20 | 维沃移动通信有限公司 | 一种图像处理方法及移动终端 |
CN106447761B (zh) * | 2016-08-31 | 2019-03-08 | 北京像素软件科技股份有限公司 | 一种阴影渲染方法 |
US10748332B2 (en) * | 2017-03-15 | 2020-08-18 | Nvidia Corporation | Hybrid frustum traced shadows systems and methods |
-
2019
- 2019-05-17 CN CN201910413396.5A patent/CN110211218B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108090949A (zh) * | 2017-12-26 | 2018-05-29 | 苏州蜗牛数字科技股份有限公司 | 一种基于光能传播的实时全局光照方法 |
CN108805971A (zh) * | 2018-05-28 | 2018-11-13 | 中北大学 | 一种环境光遮蔽方法 |
Non-Patent Citations (2)
Title |
---|
"Three-dimensional optic nerve head images using optical coherence tomography with a broad bandwidth, femtosecond, and mode-locked laser";Shoji, Takuhei等;《GRAEFES ARCHIVE FOR CLINICAL AND EXPERIMENTAL OPHTHALMOLOGY》;20150228;第253卷(第2期);313-321 * |
"基于光线投射算法的体积光实时绘制";袁赞 等;《计算机工程与设计》;20140731;第35卷(第7期);2417-2422 * |
Also Published As
Publication number | Publication date |
---|---|
CN110211218A (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110211218B (zh) | 画面渲染方法和装置、存储介质及电子装置 | |
CN111754381B (zh) | 图形渲染方法、装置和计算机可读存储介质 | |
CN110378947B (zh) | 3d模型重建方法、装置及电子设备 | |
CN109725956B (zh) | 一种场景渲染的方法以及相关装置 | |
CN111710020B (zh) | 动画渲染方法和装置及存储介质 | |
WO2016040153A1 (en) | Environmentally mapped virtualization mechanism | |
CN105550973B (zh) | 图形处理单元、图形处理系统及抗锯齿处理方法 | |
US9019268B1 (en) | Modification of a three-dimensional (3D) object data model based on a comparison of images and statistical information | |
CN111583379A (zh) | 虚拟模型的渲染方法、装置、存储介质与电子设备 | |
CN114565708A (zh) | 一种选择抗锯齿算法的方法、装置、设备及可读存储介质 | |
CN112884874A (zh) | 在虚拟模型上贴花的方法、装置、设备及介质 | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
CN108230434B (zh) | 图像纹理的处理方法、装置、存储介质和电子装置 | |
CN109448123A (zh) | 模型的控制方法及装置、存储介质、电子设备 | |
CN111145358A (zh) | 图像处理方法、装置、硬件装置 | |
CN111950057A (zh) | 一种建筑信息模型bim的加载方法及装置 | |
CN115170740A (zh) | 特效处理方法、装置、电子设备及存储介质 | |
WO2019042272A2 (en) | MULTIPLE VIEW RENDERING SYSTEM AND METHOD | |
CN117788609A (zh) | 界面图元的拾取方法、装置、设备及存储介质 | |
KR20230013099A (ko) | 실시간 깊이 맵을 사용한 지오메트리 인식 증강 현실 효과 | |
US10754498B2 (en) | Hybrid image rendering system | |
CN116228956A (zh) | 一种阴影渲染方法、装置、设备及介质 | |
CN116977539A (zh) | 图像处理方法、装置、计算机设备、存储介质和程序产品 | |
US9734579B1 (en) | Three-dimensional models visual differential | |
CN114020390A (zh) | Bim模型显示方法、装置、计算机设备和存储介质 |
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 |