CN109993823B - 阴影渲染方法、装置、终端及存储介质 - Google Patents
阴影渲染方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN109993823B CN109993823B CN201910290577.3A CN201910290577A CN109993823B CN 109993823 B CN109993823 B CN 109993823B CN 201910290577 A CN201910290577 A CN 201910290577A CN 109993823 B CN109993823 B CN 109993823B
- Authority
- CN
- China
- Prior art keywords
- rendering
- shadow
- pixel points
- virtual object
- coordinates
- 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/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种阴影渲染方法、装置、终端及存储介质,属于图像渲染技术领域。该方法包括:根据虚拟场景中的光照方向,获取该虚拟场景中的至少一个渲染结构体;根据当前视角和该多个像素点的深度信息,获取该多个像素点的模型坐标;根据该多个像素点的模型坐标,对至少一个阴影贴图进行采样,得到与该多个像素点所对应的多个采样点;在该虚拟场景中对该多个采样点进行渲染,得到该至少一个阴影。本发明不使用第三方插件的情况下,基于渲染引擎本身的功能实现了阴影的实时渲染,节约了终端的内存资源,提高了终端CPU的处理效率。
Description
技术领域
本发明涉及图像渲染技术领域,特别涉及一种阴影渲染方法、装置、终端及存储介质。
背景技术
随着图像渲染技术的发展,为了模拟出更加逼真的三维场景,终端通常会实时地对三维场景内的对象的阴影进行渲染,该对象可以是人物,也可以是物体。
目前,可以通过第三方插件(例如Fast Shadow Receiver,快速阴影接收器)实现实时阴影渲染,也即是:对场景网格(mesh)进行烘焙(bake)处理,将高维、具体的场景数据转换为近似的低维、泛化的场景数据,其中,上述场景网格用于表示三维模型的纹理、光照、材质等信息;根据光源数据和已烘焙好的场景网格,从该场景网格中获取阴影区域的网格,将阴影纹理渲染在该阴影区域上,得到具有阴影的场景网格,第三方插件直接渲染出来的阴影通常会和场景中原本的三维模型产生“重影”(例如地形互相穿插、地面有贴花等)问题,因此技术人员通常会基于该具有阴影的场景网格,重新制作一张修正了重影部分的新网格,从而修正了“重影”问题,以达到实时展示阴影的效果。
在上述过程中,已烘焙好的场景网格通常需占用1.5~4M的内存,因此通过第三方插件进行阴影渲染时,挤占了终端的内存资源,影响了终端CPU(central processingunit,中央处理器)的处理效率。
发明内容
本发明实施例提供了一种阴影渲染方法、装置、终端及存储介质,能够解决第三方插件渲染阴影时挤占终端内存资源,影响终端CPU处理效率的问题。该技术方案如下:
一方面,提供了一种阴影渲染方法,该方法包括:
根据虚拟场景中的光照方向,获取该虚拟场景中的至少一个渲染结构体,该至少一个渲染结构体用于渲染至少一个虚拟对象的至少一个阴影,每个渲染结构体包括多个像素点;
根据当前视角和该多个像素点的深度信息,获取该多个像素点的模型坐标,一个模型坐标用于描述一个像素点相对于一个虚拟对象的模型顶点的纹理信息;
根据该多个像素点的模型坐标,对至少一个阴影贴图进行采样,得到与该多个像素点所对应的多个采样点,每个阴影贴图用于提供一个阴影的纹理信息;
在该虚拟场景中对该多个采样点进行渲染,得到该至少一个阴影。
一方面,提供了一种阴影渲染装置,该装置包括:
第一获取模块,用于根据虚拟场景中的光照方向,获取该虚拟场景中的至少一个渲染结构体,该至少一个渲染结构体用于渲染至少一个虚拟对象的至少一个阴影,每个渲染结构体包括多个像素点;
第二获取模块,用于根据当前视角和该多个像素点的深度信息,获取该多个像素点的模型坐标,一个模型坐标用于描述一个像素点相对于一个虚拟对象的模型基点的纹理信息;
采样模块,用于根据该多个像素点的模型坐标,对至少一个阴影贴图进行采样,得到与该多个像素点所对应的多个采样点,每个阴影贴图用于提供一个阴影的纹理信息;
渲染模块,用于在该虚拟场景中对该多个采样点进行渲染,得到该至少一个阴影。
在一种可能实施方式中,该装置还包括:
根据该多个像素点的屏幕坐标,从深度贴图中获取该多个像素点的深度信息,一个屏幕坐标用于描述一个像素点相对于终端屏幕的屏幕基点的位置信息。
在一种可能实施方式中,该第一获取模块用于:
根据该至少一个虚拟对象,确定该至少一个渲染结构体的初始大小和初始位置,该初始大小和该初始位置与该至少一个虚拟对象相匹配;
根据该光照方向,确定该至少一个渲染结构体的方向,调整该初始大小和初始位置,得到该至少一个渲染结构体。
在一种可能实施方式中,该至少一个渲染结构体为立方体、球体或者圆柱体。
在一种可能实施方式中,该装置还包括:
将该光照方向的视点矩阵左乘该至少一个虚拟对象的世界坐标,生成从该光照方向对该至少一个虚拟对象进行阴影投射的该至少一个阴影贴图。
在一种可能实施方式中,该装置还包括:
将不允许遮挡的虚拟对象的材质标记为目标材质,该目标材质为渲染过程中不支持阴影渲染的材质。
一方面,提供了一种终端,该终端包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条指令,该至少一条指令由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的阴影渲染方法所执行的操作。
一方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该至少一条指令由处理器加载并执行以实现如上述任一种可能实现方式的阴影渲染方法所执行的操作。
本发明实施例提供的技术方案带来的有益效果至少包括:
通过根据虚拟场景中的光照方向,获取该虚拟场景中的至少一个渲染结构体,从而将该至少一个渲染结构体作为阴影渲染的模型,根据当前视角和该多个像素点的深度信息,获取该多个像素点的模型坐标,从而能够使得模型坐标与阴影贴图的UV空间一一对应,根据该多个像素点的模型坐标,对至少一个阴影贴图进行采样,得到与该多个像素点所对应的多个采样点,在该虚拟场景中对该多个采样点进行渲染,得到该至少一个阴影,使得终端在不使用第三方插件的情况下,基于渲染引擎本身的功能实现了阴影的实时渲染,由于没有使用第三方插件,也就无需在阴影渲染时调用已烘焙好的场景网格,节约了终端的内存资源,提高了终端CPU的处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种阴影渲染方法的实施环境示意图;
图2是本发明实施例提供的一种阴影渲染方法的流程图;
图3是本发明实施例提供的确定目标像素点的示意图;
图4是本发明实施例提供的一种渲染效果的示意图;
图5是本发明实施例提供的一种渲染效果的示意图;
图6是本发明实施例提供的一种渲染效果的示意图;
图7是本发明实施例提供的一种阴影渲染装置的结构示意图;
图8是本发明实施例提供的终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种阴影渲染方法的实施环境示意图。参见图1,在该实施环境中,终端101上可以安装有渲染引擎102。
其中,该终端101用于提供阴影渲染服务,终端101可以基于该渲染引擎102,对任一虚拟场景中的虚拟对象以及虚拟对象的阴影进行渲染,该虚拟对象可以是人物,也可以是物体,该虚拟场景可以是任一展示在终端上的虚拟场景,例如该虚拟场景可以是游戏场景、室内设计模拟场景等,本发明实施例不对该虚拟场景的内容进行具体限定。
在一些实施例中,该渲染引擎102可以以独立的渲染客户端的形式安装在终端上,使得终端可以直接通过该渲染客户端实现阴影渲染,例如,该渲染引擎102可以是unity3D(联合三维),可以是Unreal(unreal engine,虚幻引擎),也可以是OpenGL(open graphicslibrary,开放图形库)等。
在一些实施例中,终端上可以安装有用于提供虚拟场景的应用客户端,该应用客户端可以是游戏客户端、三维设计客户端等,该渲染引擎102可以以API(applicationprogramming interface,应用程序编程接口)的形式封装在终端操作系统的内核层,终端操作系统向上层的应用客户端提供该API,从而使得终端上的该应用客户端能够调用该API,渲染虚拟场景中的虚拟对象以及该虚拟对象的阴影。
在相关技术中,由于终端基于第三方插件(例如Fast Shadow Receiver,快速阴影接收器)进行阴影渲染,根据一张已烘焙(bake)好的场景网格(mesh)来获取阴影区域的网格,在第三方插件的运行过程中,所用的该场景网格通常会占用1.5~4M的内存,从而挤占了终端的内存资源,影响了终端CPU的处理效率。
另一方面,由于该场景网格通常嵌入在应用客户端的SDK(software developmentkit,软件开发工具包)中,会占用5~10M的磁盘空间,就会增大该应用客户端的SDK的安装包大小,例如,一个已烘焙好的10M的场景网格,通常会使安装包大小增加2M,不利于精简应用客户端的SDK体量。
基于上述实施环境,图2是本发明实施例提供的一种阴影渲染方法的流程图,参见图2,该实施例可以应用于终端,也可以应用于终端上的应用客户端,本发明实施例仅以终端为例进行说明,该阴影渲染方法包括:
201、终端获取虚拟场景的深度贴图。
其中,该虚拟场景可以是任一展示在终端上的虚拟场景,该虚拟场景的数据可以是存储在本地,也可以来自于云端。该虚拟场景内可以包括至少一个虚拟对象,通过对至少一个虚拟对象进行建模,得到至少一个模型,从而基于该至少一个模型显示该至少一个虚拟对象,其中,一个模型用于表示一个虚拟对象的具体显示形式,该虚拟对象可以是人物,也可以是物体。
其中,该深度贴图用于表示该虚拟场景中该至少一个虚拟对象的深度信息,该深度信息用于表示虚拟对象在当前视角下的前后位置关系,例如,在一个虚拟场景的深度贴图中人物A的深度小于建筑物B的深度,则在该虚拟场景呈现出的视觉效果为:人物A位于建筑物B的前面(也即是人物A位于更靠近当前视角的位置)。
在上述步骤201中,终端可以通过渲染引擎内的目标缓冲区获取该深度贴图,由于该目标缓冲区通常存储有渲染过程中的多个贴图,例如光照贴图、深度贴图、法线贴图等,因此,在获取过程中,终端可以以深度贴图标识作为索引,在目标缓冲区中根据该索引进行查询,当该索引能够命中任一贴图时,将该贴图获取为该深度贴图。例如,当渲染引擎为unity3D时,可以通过Camera.SetTargetBuffers从目标缓冲区中获取该深度贴图。
在一些实施例中,考虑到在实时渲染的场景下,终端先根据该深度贴图渲染出虚拟场景,然后在该虚拟场景中渲染各个虚拟对象的阴影,因此终端可以在获取该深度贴图后,基于该深度贴图生成一张与该深度贴图相同的深度贴图副本,在后续步骤202-213中,直接访问该深度贴图副本,解决了在渲染过程中不能对同一张深度贴图同时进行读写操作的问题。例如,终端可以在该虚拟场景的BeforeForwardAlpha渲染阶段,对该虚拟场景的深度贴图执行Blit命令,得到该深度贴图副本。
在一些实施例中,终端还可以直接在本地存储有两张相同的深度贴图,从而在渲染虚拟场景时,访问其中一张深度贴图,在渲染虚拟场景中的阴影时,访问其中的另一张深度贴图。
在一些实施例中,终端还可以基于渲染引擎内置的深度获取接口来获取该深度贴图,例如,当渲染引擎为unity3D时,可以基于将Camera.depthTextureMode设置为Depth的方式来获取该深度贴图。
202、终端将光照方向的视点矩阵左乘该虚拟场景中至少一个虚拟对象的世界坐标,生成从该光照方向对该至少一个虚拟对象进行阴影投射的至少一个阴影贴图。
在一些实施例中,在渲染引擎中进行渲染时,通常会涉及到多个坐标系之间的坐标变换,该多个坐标系可以包括:模型坐标系(model/object coordinates,又称物体坐标系)、世界坐标系(world coordinates)、视(eye/camera coordinates,又称摄像机坐标系)坐标系和屏幕坐标系(window/screen coordinates,又称窗口坐标系),其中,模型坐标系在下述步骤208-209中进行详述,屏幕坐标系在下述步骤205中进行详述。
在一些实施例中,世界坐标系即为该虚拟场景所在的真实坐标系,对一个虚拟场景而言,通常有且只有一个世界坐标系,世界坐标系以虚拟场景的场景基点作为坐标原点,各个虚拟对象的像素点在世界坐标系中的位置称作世界坐标。
在一些实施例中,视坐标系即为用户基于当前视角观察虚拟场景时所在的坐标系,视坐标系以视点为坐标原点,各个虚拟对象的像素点在视坐标系中的位置称作视坐标。由于在通常的渲染引擎中,当前视角可以表现为一个摄像机(camera)的形式,因此视坐标系也可以称为摄像机坐标系。当用户基于当前视角观察该虚拟场景时,相当于通过虚拟场景中的一个摄像机观察该虚拟场景,其中,该摄像机相当于一个特殊的透明虚拟对象的模型。
基于上述情况,当前视角可以表现为渲染引擎中的一个摄像机,同理,光源也可以表现为一个摄像机的形式,那么阴影贴图就相当于是光源从光照方向对该虚拟场景内的各个虚拟对象进行阴影投射所得到的贴图。其中,由于光源camera也相当于一个特殊的透明虚拟对象的模型,则该光照方向的视点(view)矩阵也即是从世界坐标系映射到该光源的模型坐标系的转换矩阵。
在上述过程中,终端直接将光照方向的视点矩阵左乘虚拟场景内至少一个虚拟对象的世界坐标,将该至少一个虚拟对象从当前视角变换到光照方向的视角,将光照方向的视角下该至少一个虚拟对象的实时图像获取为该至少一个阴影贴图,其中,每个阴影贴图对应于一个虚拟对象,每个阴影贴图用于提供一个虚拟对象的阴影的纹理(UV)信息。
在上述步骤202中,终端能够基于视点矩阵的变换,从当前视角的单个摄像机中直接得到光源视角(光源camera)下的阴影贴图,也就避免了在光源处设置一个新的摄像机,从而减少渲染摄像机的数量,缩短终端的渲染时间,提升终端的渲染效率。
在一些实施例中,终端可以在当前视角所对应的主摄像机上挂载(也即是配置)一个从摄像机,将光线方向的视点矩阵输入该从摄像机,即可输出该阴影贴图,其中,该从摄像机从属于该主摄像机,从而能够减少渲染摄像机的数量,缩短终端的渲染时间,提升终端的渲染效率,例如,该从摄像机可以是CommandBuffer。
当然,在一些实施例中,终端还可以不进行视点矩阵的变换,而是直接在光源处设置一个新的摄像机,基于该新的摄像机获取该阴影贴图,从而减少了阴影渲染过程的计算量。
203、终端根据该至少一个虚拟对象,确定至少一个渲染结构体的初始大小和初始位置,该初始大小和该初始位置与该至少一个虚拟对象相匹配。
其中,该至少一个渲染结构体用于渲染该至少一个虚拟对象的至少一个阴影,每个渲染结构体对应于一个虚拟对象的一个阴影,每个渲染结构体包括多个像素点。
可选地,该至少一个渲染结构体可以为立方体(cube)、球体或者圆柱体,在不同的渲染引擎中,对同一个虚拟场景进行阴影渲染时,可以采用不同的渲染结构体,本发明实施例不对该渲染结构体的形态进行具体限定,例如,在unity3D中通常采用立方体作为渲染结构体。
可选地,终端可以对虚拟场景的类型进行识别,从而根据该虚拟场景的类型确定与该类型对应的渲染结构体,例如,当终端识别出虚拟场景为游戏场景时,确定渲染结构体为立方体。
在上述过程中,初始大小和初始位置与至少一个虚拟对象相匹配是指:对每个虚拟对象,与该虚拟对象所对应的渲染结构体的底面面积大于或等于该虚拟对象的模型底面面积,该渲染结构体的初始位置位于与该虚拟对象的模型底面在水平方向和垂直方向均能够重合的位置。
在上述过程中,对每个虚拟对象,终端可以根据该虚拟对象确定初始大小和初始位置,按照该初始大小和初始位置,生成一个渲染结构体,重复执行上述过程,得到至少一个渲染结构体。
在一些实施例中,当该渲染结构体为立方体时,终端可以对每个虚拟对象,将恰好能够包含虚拟对象的模型底面的正方形确定为立方体的底面,由于立方体的六个面均相同,因此能够确定该立方体每个面的初始大小,进一步地,将该立方体的底面中心与该虚拟对象的底面中心重合放置,从而能够得到该立方体的初始位置,其中该底面中心可以是指底面的几何中心,也可以是指底面的几何重心。
204、终端根据该光照方向,确定该至少一个渲染结构体的方向,调整该初始大小和初始位置,得到该至少一个渲染结构体。
在上述过程中,终端可以对每个虚拟对象,将与该虚拟对象所对应的渲染结构体的方向(也即是渲染结构体的朝向)确定为该光照方向,确定该虚拟对象在该光照方向上的多条切线,将该多条切线与该虚拟场景中阴影投射面的多个交点所围成的区域确定为阴影区域,从而将该渲染结构体从上述步骤203中所确定的初始位置平移至能够覆盖该阴影区域的位置,将该渲染结构体从初始大小调整为能够覆盖该阴影区域的大小。这里所说的“覆盖”是指该渲染结构体的任一表面与该阴影区域重叠,或者该渲染结构体能够将该阴影区域包含在渲染结构体的内部。
通过上述步骤204,终端能够使得每个渲染结构体能够在覆盖阴影区域且不影响阴影渲染效果的情况下,减小该渲染结构体中所需要渲染的像素点的数量,提升了渲染效率。基于上述示例,当对立方体形状的渲染结构体的初始大小进行调整后,该立方体通常会被调整为长方体,本发明实施例不对该渲染结构体调整后的形态进行具体限定。
其中,该阴影投射面可以是在虚拟场景中的任一个支持投射阴影的面,该阴影投射面可以是光滑的,也可以是凹凸不平的,例如,该阴影投射面可以是草坪、墙面、路面等。
在上述步骤203-204中,终端可以根据虚拟场景中的光照方向,获取该虚拟场景中的至少一个渲染结构体,由于每个渲染结构体对应于一个虚拟对象的阴影,因此,终端渲染每个渲染结构体的过程就是渲染每个阴影的过程,在渲染该渲染结构体的过程中,可以包括两个阶段:顶点着色阶段和像素着色阶段。
在上述情况下,终端可以在顶点着色阶段时,在每个渲染结构体的每个像素点的顶点数据中存储该虚拟场景中的视点位置,以及该视点与该像素点所确定的射线方向,从而基于顶点数据中存储的信息,执行下述步骤206。此外,终端还可以在像素着色阶段,执行下述步骤205,获取各个像素点的深度信息。
在一些实施例中,终端还可以不执行上述步骤204,也即是终端在根据虚拟对象确定渲染结构体的初始大小和初始位置,以及根据光照方向确定渲染结构体的方向后,生成渲染结构体,不对该渲染结构体的大小和位置进行进一步调整,直接执行下述步骤206,从而简化了阴影渲染的流程。
205、终端根据每个渲染结构体中的多个像素点的屏幕坐标,从深度贴图中获取该多个像素点的深度信息,一个屏幕坐标用于描述一个像素点相对于终端屏幕的屏幕基点的位置信息。
其中,屏幕坐标系即为基于终端屏幕显示该虚拟场景时所在的坐标系,屏幕坐标系以终端屏幕的屏幕基点为坐标原点,各个虚拟对象的像素点在屏幕坐标系中的位置称作屏幕坐标。该屏幕基点可以是终端屏幕上的任一点,例如,该屏幕基点可以是屏幕的左上角点。在一些实施例中,在终端屏幕上通常不能完整的显示该虚拟场景,用户可以通过控制当前视角的平移或者旋转等操作,来观察到虚拟场景中更多的虚拟对象。
上述过程中,每个渲染结构体中可以包括多个像素点,对每个渲染结构体中的每个像素点而言,终端可以根据该像素点的屏幕坐标,从深度贴图中确定坐标与该像素点的屏幕坐标一致的点,将该点的深度信息确定为该像素点的深度信息,重复执行上述过程,从而能够获取到每个渲染结构体中的多个像素点的深度信息。需要说明的是,当终端上包括两张深度贴图时,上述步骤205中所访问的深度贴图可以是上述步骤201中所提及的深度贴图副本。
206、终端对每个像素点,以该当前视角的视点为射线端点,在该视点与该像素点所确定的射线方向上,确定与该视点之间的距离符合该像素点的深度信息的目标像素点。
由于在上述步骤204所提及的顶点着色阶段中,终端可以将视点位置和该射线方向存储在各个像素点的顶点数据中,因此,在上述步骤206中,终端可以直接访问每个像素点的顶点数据,获取该视点位置和该射线方向,由于一个端点和一个方向能够唯一确定一条射线,终端根据以视点为射线端点,在该射线方向上,能够根据该像素点的深度信息,唯一确定一个目标像素点。
可选地,终端还可以不在顶点数据中存储该视点位置和该射线方向,而是在顶点着色阶段只单独存储一个视点位置,在上述步骤206中,从顶点数据中获取该视点位置,将从该视点位置出发向该像素点位置的连线所指示的方向确定该射线方向,从而确定该目标像素点,在此不作赘述。
图3是本发明实施例提供的确定目标像素点的示意图,如图3所示,以该渲染结构体为立方体为例进行说明,图3仅画出了立方体中的一个面进行示意,实际上对于立方体中任一个面中的任一个像素点均可以同理类推:由于在渲染立方体时是渲染立方体表面的像素点,对于立方体表面的任一像素点A,从A点的顶点数据中可以获取视点V位置和射线方向,因此根据A点坐标、V点坐标和射线方向,能够唯一确定一条射线VA,假设在上述步骤205中从深度贴图中获取到的A点的深度值为600,则从V点出发,在射线VA上可以确定距离V点深度为600的B点,由于A点的深度值能够表示在立方体表面的点实际上对应于立方体内部的深度,因此在上述步骤205-206中,终端实际上确定的目标像素点B为A点在深度贴图上所对应的像素点(也即是A点在虚拟对象上所对应的像素点)。
在上述过程中,终端能够基于渲染结构体上各个像素点的深度值,确定深度贴图上与该像素点所对应的目标像素点,从而在后续步骤210中,能够根据每个目标像素点的模型坐标进行采样,也就能够将阴影贴图按照深度贴图上目标像素点的模型坐标贴到该渲染结构体上,使得在既不使用第三方插件,也不需要单独留存烘焙好的场景网格的情况下,在虚拟场景中实时地渲染各个虚拟对象的阴影。基于上述示例,也即是,在对A点进行采样贴图的阶段,按照B点的模型坐标对阴影贴图进行采样,进而能够使得渲染完成后的A点呈现出B点对应阴影的视觉效果,在下述步骤207-209中将对获取B点的模型坐标的过程进行详述。
207、终端将该目标像素点的世界坐标确定为该像素点的世界坐标。
其中,一个世界坐标用于描述一个像素点相对于该虚拟场景的场景基点的位置信息。
在上述过程中,终端将目标像素点在世界坐标系中的取值确定为渲染结构体的像素点的世界坐标,对每个渲染结构体的多个像素点,重复执行上述步骤206-207,从而终端能够得到根据该当前视角和该多个像素点的深度信息,获取该多个像素点的世界坐标。
208、终端将该当前视角的视点矩阵左乘该多个像素点的世界坐标,得到该多个像素点的本地坐标,该视点矩阵为从世界坐标系映射到模型坐标系的转换矩阵。
在一些实施例中,渲染引擎中的模型坐标系即为虚拟对象在三维模型中所在的坐标系,对虚拟场景中的至少一个虚拟对象而言,每个虚拟对象的模型都具有自身的模型坐标系,各个虚拟对象的像素点在模型坐标系中的位置也即是模型坐标。换言之,在一个虚拟场景中可以具有至少一个模型坐标系,模型坐标系的数量等于虚拟对象的数量,模型坐标系是一个假想的坐标系,以各个虚拟对象的中心为坐标原点,因此,哪怕虚拟对象是动态变化的,该模型坐标系与虚拟对象的相对位置也始终是不变的。
在上述过程中,一个本地坐标是指一个像素点在模型坐标系的[-1,1]空间下的坐标值,由于当前视角的视点矩阵是从世界坐标系映射到至少一个渲染结构体的模型坐标系的转换矩阵,因此将该当前视角的视点矩阵左乘该多个像素点的世界坐标,从而可以得到多个像素点的本地坐标。
209、终端将该多个像素点的本地坐标映射到纹理映射空间,得到该多个像素点的模型坐标。
在上述过程中,终端根据该多个像素点的世界坐标,获取该多个像素点的模型坐标。其中,一个模型坐标用于描述一个像素点相对于一个虚拟对象的模型基点的纹理信息。
上述步骤209中一个模型坐标指的是一个像素点在模型坐标系的[0,1]空间下的坐标值,由于上述步骤202中获取的至少一个阴影贴图的纹理(UV)信息的取值范围是[0,1],而将视点矩阵左乘多个像素点的世界坐标后,实际上得到的是取值范围在[-1,1]内的本地坐标,因此需要将该多个像素点从[-1,1]空间的本地坐标映射到[0,1]空间的模型坐标,从而在[0,1]空间下的模型坐标才能够与阴影贴图中的纹理信息一一对应,以便于执行下述步骤210的采样过程。
在一些实施例中,当终端将多个像素点的本地坐标映射到纹理映射空间(UV空间)时,可以将每个像素点的本地坐标输入转换函数,从而输出该多个像素点在UV空间的模型坐标,该转换函数可以是渲染引擎内置的函数。
在上述步骤206-209中,终端根据当前视角和该多个像素点的深度信息,获取该多个像素点的模型坐标,也即是获取多个像素点的世界坐标,通过视点矩阵将多个像素点的世界坐标转换为多个像素点的本地坐标,进而映射到UV空间得到多个像素点的模型坐标。
210、终端将不允许遮挡的虚拟对象的材质标记为目标材质,该目标材质为渲染过程中不支持阴影渲染的材质。
在一些实施例中,如果直接基于该多个像素点的模型坐标进行采样和渲染,会使得渲染出的阴影对虚拟对象的本体产生遮挡效果,例如,图4是本发明实施例提供的一种渲染效果的示意图,参见图4,图中人物的阴影反而对人物的靴子产生了遮挡,影响了虚拟场景的渲染效果。
为避免虚拟对象的阴影遮挡住虚拟对象的本体,因此,终端可以通过执行上述步骤210,对不允许被遮挡的虚拟对象的材质(material)标记为目标材质,由于该目标材质是不支持阴影渲染的材质,那么在下述步骤211-212的渲染过程中,就无法对标记有目标材质的任一虚拟对象进行重叠渲染,也就避免了阴影对虚拟对象造成遮挡,优化了虚拟场景的渲染效果,提高了阴影渲染的拟真度。需要说明的是,在上述过程中对虚拟对象的材质进行标记时,仅仅是做一个记号,而并非对虚拟对象的材质进行实质性更换。
在一些实施例中,当渲染引擎为unity3D时,终端可以基于StencilBuffer(模板缓冲区)来对该不允许被遮挡的虚拟对象的材质进行标记,例如,可以将阴影投射面上允许被遮挡的虚拟对象的Stencil Pass材质标记为Replace,将阴影投射面上不允许被遮挡的虚拟对象的Stencil Pass材质标记为IncrSat,当渲染阴影的过程中终端会对该阴影所投射到的虚拟对象的材质进行检查,只有当Stencil为Comp Equal时才进采样和绘制,从而能够避免了阴影对虚拟对象造成遮挡,优化了虚拟场景的渲染效果。
在一些实施例中,终端还可以不执行上述步骤210,当获取多个像素点的模型坐标后,直接执行下述步骤211,对至少一个阴影贴图进行采样,缩短了阴影渲染的时间,加快了阴影渲染的效率。
211、终端根据该多个像素点的模型坐标,对至少一个阴影贴图进行采样,得到与该多个像素点所对应的多个采样点,每个阴影贴图用于提供一个阴影的纹理信息。
在上述过程中,终端根据该多个像素点的模型坐标,对上述步骤202中获取到的至少一个阴影贴图中进行采样,由于该多个像素点的模型坐标在[0,1]空间中,而每个阴影贴图的纹理信息也位于[0,1]空间中,因此对每个渲染结构体中的多个像素点而言,终端都能够在与该渲染结构体所对应的虚拟对象的阴影贴图中,找到与该多个像素点中每个像素点所一一对应的多个采样点。
上述步骤211中的采样过程也即是:对每个像素点,终端将与该像素点的模型坐标相对应的点获取为一个采样点,对每个渲染结构体重复执行上述采样过程,得到每个渲染结构体的多个采样点。例如,某个像素点的模型坐标为(0.5,0.5),在阴影贴图中确定位于(0.5,0.5)位置为该像素点的采样点。
212、终端在该虚拟场景中对该多个采样点进行渲染,得到至少一个阴影。
在上述过程中,终端基于该多个采样点进行渲染时,可以调用内置的绘制接口(draw call),从而访问终端的GPU(graphics processing unit,图形处理器),对该多个采样点进行绘制,得到该至少一个阴影。
在一些实施例中,终端还可以不执行上述步骤201,也即是不获取该至少一个阴影贴图,而是直接在本地存储有一个或多个目标阴影贴图,从而在上述步骤211-212中,根据该多个像素点的模型坐标,对该一个或多个目标阴影贴图进行采样,得到与该多个像素点所对应的多个采样点,在该虚拟场景中对该多个采样点进行渲染,得到至少一个阴影。
当目标阴影贴图为一个时,所有的渲染结构体都对同一张目标阴影贴图进行采样,使得所有的虚拟对象具有相同的阴影,例如,该目标阴影贴图可以为圆片。当然,当该目标阴影贴图为多个时,不同的渲染结构体可以对不同的目标阴影贴图进行采样,使得不同的虚拟对象具体不同的阴影,例如,该目标阴影贴图包括圆片和方片,与人物对应的渲染结构体对圆片进行采样,与建筑物对应的渲染结构体对方片进行采样等。
图5是本发明实施例提供的一种渲染效果的示意图,参见图5,由于终端执行了上述步骤210中的材质标记,因此图中人物的靴子恢复成了没有被阴影所遮挡的效果。
图6是本发明实施例提供的一种渲染效果的示意图,参见图6,由于终端执行了上述步骤202中获取阴影贴图的过程,因此渲染出的阴影与虚拟对象本身的轮廓是一致的,如果采取本地存储的目标阴影贴图,例如该目标阴影贴图采取圆片的情况下,渲染出的阴影轮廓如图4所示。
在上述步骤201-212中,终端能够充分利用渲染引擎的功能,提供一种阴影渲染方法,该方法无额外存储开销,无额外制作开销,运行时无额外内存,运行效率稳定不受虚拟对象的移动影响,并且可扩展性强。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本发明实施例提供的方法,通过根据虚拟场景中的光照方向,获取该虚拟场景中的至少一个渲染结构体,从而将该至少一个渲染结构体作为阴影渲染的模型,根据当前视角和该多个像素点的深度信息,获取该多个像素点的模型坐标,从而能够使得模型坐标与阴影贴图的UV空间一一对应,根据该多个像素点的模型坐标,对至少一个阴影贴图进行采样,得到与该多个像素点所对应的多个采样点,在该虚拟场景中对该多个采样点进行渲染,得到该至少一个阴影,使得终端在不使用第三方插件的情况下,基于渲染引擎本身的功能实现了阴影的实时渲染,由于没有使用第三方插件,也就无需在阴影渲染时调用已烘焙好的场景网格,节约了终端的内存资源,提高了终端CPU的处理效率。
进一步地,通过光照方向的视点矩阵进行坐标系的变换,从当前视角的单个摄像机中直接得到阴影贴图,也就避免了在光源处设置一个新的摄像机,从而减少渲染摄像机的数量,缩短终端的渲染时间,提升终端的渲染效率。
进一步地,根据光照方向,调整至少一个渲染结构体的初始大小和初始方向,能够使得每个渲染结构体能够在覆盖阴影区域且不影响阴影渲染效果的情况下,减小该渲染结构体中所需要渲染的像素点的数量,提升了渲染效率。
进一步地,根据多个像素点的屏幕坐标来确定多个像素点的深度信息,在获取深度贴图时,可以将深度贴图另存为一张与该深度贴图相同的深度贴图副本,后续渲染时直接访问该深度贴图副本,减小了终端的渲染负担。
进一步地,根据任一像素点的世界坐标,获取该像素点的本地坐标,再将本地坐标映射到UV空间,得到该像素点的模型坐标,从而便于了基于各个阴影贴图的UV信息进行采样和绘制。
进一步地,预先对不允许遮挡的虚拟对象的材质进行标记,使得终端无法对标记有目标材质的任一虚拟对象进行重叠渲染,也就避免了阴影对虚拟对象造成遮挡,优化了虚拟场景的渲染效果,提高了阴影渲染的拟真度。
为了进一步地直观说明上述本发明实施例所提供的阴影渲染方法所带来的有益效果,表1中展示了在终端上测试14个高精度模型静止时三种方案的阴影渲染效率:
表1
阴影渲染方案 | 单帧时长(ms) | FPS(帧率) |
Unity3D原生方案 | 42 | 24 |
Fast Shadow Receiver | 37 | 27 |
本发明的技术方案 | 37 | 27 |
从表1中可以看出,渲染引擎unity3D原生方案在渲染一帧阴影时需要42毫秒(ms)且FPS(frames per second,每秒传输帧数,也即帧率)为24,本发明的技术方案和第三方插件(Fast Shadow Receiver,快速阴影接收器)在渲染一帧阴影时均需要37ms且FPS均为27。因此,本发明的技术方案和Fast Shadow Receiver在模型静止时阴影渲染效率相同,但两者都比unity3D原生方案的阴影渲染效率高。
进一步地,表2中展示了在模型移动时两种方案的阴影渲染效率,在表2所示的动态压力测试中,使用的是100个圆片阴影在同一个虚拟场景下进行快速移动。
表2
阴影渲染方案 | 单帧时长(ms) | FPS(帧率) |
Fast Shadow Receiver | 40 | 25 |
本发明的技术方案 | 29 | 34 |
从表2中可以看出在模型移动时,本发明的技术方案在渲染一帧阴影时仅需要29ms且FPS为34,而Fast Shadow Receiver渲染一帧阴影时需要长达40ms且FPS为25。因此,本发明的技术方案在模型移动时比Fast Shadow Receiver的阴影渲染效率更高。
根据上述表1和表2,综合考虑模型在静止时和移动时的阴影渲染效率,相较于Fast Shadow Receiver,本发明的技术方案进一步地缩短了渲染一帧阴影时耗费的时间,提升了每秒传输阴影的帧数,也即提高了终端的阴影渲染效率,并且由于没有额外的开销和负担,还提升了终端CPU的处理效率。
图7是本发明实施例提供的一种阴影渲染装置的结构示意图,参见图7,该装置包括第一获取模块701、第二获取模块702、采样模块703和渲染模块704,下面进行详述:
第一获取模块701,用于根据虚拟场景中的光照方向,获取该虚拟场景中的至少一个渲染结构体,该至少一个渲染结构体用于渲染至少一个虚拟对象的至少一个阴影,每个渲染结构体包括多个像素点;
第二获取模块702,用于根据当前视角和该多个像素点的深度信息,获取该多个像素点的模型坐标,一个模型坐标用于描述一个像素点相对于一个虚拟对象的模型基点的纹理信息;
采样模块703,用于根据该多个像素点的模型坐标,对至少一个阴影贴图进行采样,得到与该多个像素点所对应的多个采样点,每个阴影贴图用于提供一个阴影的纹理信息;
渲染模块704,用于在该虚拟场景中对该多个采样点进行渲染,得到该至少一个阴影。
本发明实施例提供的装置,通过根据虚拟场景中的光照方向,获取该虚拟场景中的至少一个渲染结构体,从而将该至少一个渲染结构体作为阴影渲染的模型,根据当前视角和该多个像素点的深度信息,获取该多个像素点的模型坐标,从而能够使得模型坐标与阴影贴图的UV空间一一对应,根据该多个像素点的模型坐标,对至少一个阴影贴图进行采样,得到与该多个像素点所对应的多个采样点,在该虚拟场景中对该多个采样点进行渲染,得到该至少一个阴影,使得终端在不使用第三方插件的情况下,基于渲染引擎本身的功能实现了阴影的实时渲染,由于没有使用第三方插件,也就无需在阴影渲染时调用已烘焙好的场景网格,节约了终端的内存资源,提高了终端CPU的处理效率。
在一种可能实施方式中,基于图7的装置组成,该第二获取模块702包括:
第一获取单元,用于根据该当前视角和该多个像素点的深度信息,获取该多个像素点的世界坐标,一个世界坐标用于描述一个像素点相对于该虚拟场景的场景基点的位置信息;
第二获取单元,用于根据该多个像素点的世界坐标,获取该多个像素点的模型坐标。
在一种可能实施方式中,该第一获取单元用于:
对每个像素点,以该当前视角的视点为射线端点,在该视点与该像素点所确定的射线方向上,确定与该视点之间的距离符合该像素点的深度信息的目标像素点;
将该目标像素点的世界坐标确定为该像素点的世界坐标。
在一种可能实施方式中,该第二获取单元用于:
将该当前视角的视点矩阵左乘该多个像素点的世界坐标,得到该多个像素点的本地坐标,该视点矩阵为从世界坐标系映射到模型坐标系的转换矩阵;
将该多个像素点的本地坐标映射到纹理映射空间,得到该多个像素点的模型坐标。
在一种可能实施方式中,基于图7的装置组成,该装置还包括:
根据该多个像素点的屏幕坐标,从深度贴图中获取该多个像素点的深度信息,一个屏幕坐标用于描述一个像素点相对于终端屏幕的屏幕基点的位置信息。
在一种可能实施方式中,该第一获取模块701用于:
根据该至少一个虚拟对象,确定该至少一个渲染结构体的初始大小和初始位置,该初始大小和该初始位置与该至少一个虚拟对象相匹配;
根据该光照方向,确定该至少一个渲染结构体的方向,调整该初始大小和初始位置,得到该至少一个渲染结构体。
在一种可能实施方式中,该至少一个渲染结构体为立方体、球体或者圆柱体。
在一种可能实施方式中,基于图7的装置组成,该装置还包括:
将该光照方向的视点矩阵左乘该至少一个虚拟对象的世界坐标,生成从该光照方向对该至少一个虚拟对象进行阴影投射的该至少一个阴影贴图。
在一种可能实施方式中,基于图7的装置组成,该装置还包括:
将不允许遮挡的虚拟对象的材质标记为目标材质,该目标材质为渲染过程中不支持阴影渲染的材质。
需要说明的是:上述实施例提供的阴影渲染装置在渲染阴影时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的阴影渲染装置与阴影渲染方法实施例属于同一构思,其具体实现过程详见阴影渲染方法实施例,这里不再赘述。
图8是本发明实施例提供的终端的结构示意图。该终端800可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端800还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请中阴影渲染方法实施例提供的阴影渲染方法。
在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、触摸显示屏805、摄像头806、音频电路807和电源809中的至少一种。
外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏805用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置终端800的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在再一些实施例中,显示屏805可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
电源809用于为终端800中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、光学传感器815以及接近传感器816。
加速度传感器811可以检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制触摸显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器812可以检测终端800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端800的3D动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器813可以设置在终端800的侧边框和/或触摸显示屏805的下层。当压力传感器813设置在终端800的侧边框时,可以检测用户对终端800的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在触摸显示屏805的下层时,由处理器801根据用户对触摸显示屏805的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器815用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器815采集的环境光强度,控制触摸显示屏805的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏805的显示亮度;当环境光强度较低时,调低触摸显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。
接近传感器816,也称距离传感器,通常设置在终端800的前面板。接近传感器816用于采集用户与终端800的正面之间的距离。在一个实施例中,当接近传感器816检测到用户与终端800的正面之间的距离逐渐变小时,由处理器801控制触摸显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端800的正面之间的距离逐渐变大时,由处理器801控制触摸显示屏805从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图8中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中阴影渲染方法。例如,该计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种阴影渲染方法,其特征在于,所述方法包括:
确定虚拟场景中虚拟对象的渲染结构体的初始大小和初始位置;
将所述渲染结构体的方向确定为所述虚拟场景的光照方向;
将所述虚拟对象在所述光照方向上的多条切线与所述虚拟场景中阴影投射面的多个交点所围成的区域确定为阴影区域;
将所述渲染结构体从所述初始位置平移至能够覆盖所述阴影区域的位置,将所述渲染结构体从所述初始大小调整为能够覆盖所述阴影区域的大小,以得到用于渲染所述虚拟对象的阴影的渲染结构体;
根据当前视角和所述渲染结构体包括的多个像素点的深度信息,获取所述多个像素点的模型坐标,一个模型坐标用于描述一个像素点相对于所述虚拟对象的模型顶点的纹理信息;
根据所述多个像素点的模型坐标,对所述虚拟对象的阴影贴图进行采样,得到与所述多个像素点所对应的多个采样点,所述阴影贴图用于提供所述虚拟对象的阴影的纹理信息;
在所述虚拟场景中对所述多个采样点进行渲染,得到所述虚拟对象的阴影。
2.根据权利要求1所述的方法,其特征在于,所述根据当前视角和所述多个像素点的深度信息,获取所述多个像素点的模型坐标包括:
根据所述当前视角和所述多个像素点的深度信息,获取所述多个像素点的世界坐标,一个世界坐标用于描述一个像素点相对于所述虚拟场景的场景基点的位置信息;
根据所述多个像素点的世界坐标,获取所述多个像素点的模型坐标。
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前视角和所述多个像素点的深度信息,获取所述多个像素点的世界坐标包括:
对每个像素点,以所述当前视角的视点为射线端点,在所述视点与所述像素点所确定的射线方向上,确定与所述视点之间的距离符合所述像素点的深度信息的目标像素点;
将所述目标像素点的世界坐标确定为所述像素点的世界坐标。
4.根据权利要求2所述的方法,其特征在于,所述根据所述多个像素点的世界坐标,获取所述多个像素点的模型坐标包括:
将所述当前视角的视点矩阵左乘所述多个像素点的世界坐标,得到所述多个像素点的本地坐标;
将所述多个像素点的本地坐标映射到纹理映射空间,得到所述多个像素点的模型坐标。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述多个像素点的屏幕坐标,从深度贴图中获取所述多个像素点的深度信息,一个屏幕坐标用于描述一个像素点相对于终端屏幕的屏幕基点的位置信息。
6.根据权利要求1所述的方法,其特征在于,所述渲染结构体为立方体、球体或者圆柱体。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述光照方向的视点矩阵左乘所述虚拟对象的世界坐标,生成从所述光照方向对所述虚拟对象进行阴影投射的所述阴影贴图。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述虚拟对象为不允许遮挡的虚拟对象,将所述虚拟对象的材质标记为目标材质,所述目标材质为渲染过程中不支持阴影渲染的材质。
9.一种阴影渲染装置,其特征在于,所述装置包括:
第一获取模块,用于确定虚拟场景中虚拟对象的渲染结构体的初始大小和初始位置;将所述渲染结构体的方向确定为所述虚拟场景的光照方向;将所述虚拟对象在所述光照方向上的多条切线与所述虚拟场景中阴影投射面的多个交点所围成的区域确定为阴影区域;将所述渲染结构体从所述初始位置平移至能够覆盖所述阴影区域的位置,将所述渲染结构体从所述初始大小调整为能够覆盖所述阴影区域的大小,以得到用于渲染所述虚拟对象的阴影的渲染结构体;
第二获取模块,用于根据当前视角和所述渲染结构体包括的多个像素点的深度信息,获取所述多个像素点的模型坐标,一个模型坐标用于描述一个像素点相对于所述虚拟对象的模型基点的纹理信息;
采样模块,用于根据所述多个像素点的模型坐标,对所述虚拟对象的阴影贴图进行采样,得到与所述多个像素点所对应的多个采样点,所述阴影贴图用于提供所述虚拟对象的阴影的纹理信息;
渲染模块,用于在所述虚拟场景中对所述多个采样点进行渲染,得到所述虚拟对象的阴影。
10.根据权利要求9所述的装置,其特征在于,所述第二获取模块包括:
第一获取单元,用于根据所述当前视角和所述多个像素点的深度信息,获取所述多个像素点的世界坐标,一个世界坐标用于描述一个像素点相对于所述虚拟场景的场景基点的位置信息;
第二获取单元,用于根据所述多个像素点的世界坐标,获取所述多个像素点的模型坐标。
11.根据权利要求10所述的装置,其特征在于,所述第一获取单元用于:
对每个像素点,以所述当前视角的视点为射线端点,在所述视点与所述像素点所确定的射线方向上,确定与所述视点之间的距离符合所述像素点的深度信息的目标像素点;
将所述目标像素点的世界坐标确定为所述像素点的世界坐标。
12.根据权利要求10所述的装置,其特征在于,所述第二获取单元用于:
将所述当前视角的视点矩阵左乘所述多个像素点的世界坐标,得到所述多个像素点的本地坐标,所述视点矩阵为从世界坐标系映射到模型坐标系的转换矩阵;
将所述多个像素点的本地坐标映射到纹理映射空间,得到所述多个像素点的模型坐标。
13.根据权利要求9所述的装置,其特征在于,所述第二获取模块还用于:
根据所述多个像素点的屏幕坐标,从深度贴图中获取所述多个像素点的深度信息,一个屏幕坐标用于描述一个像素点相对于终端屏幕的屏幕基点的位置信息。
14.根据权利要求9所述的装置,其特征在于,所述渲染结构体为立方体、球体或者圆柱体。
15.根据权利要求9所述的装置,其特征在于,所述第二获取模块还用于:
将所述光照方向的视点矩阵左乘所述虚拟对象的世界坐标,生成从所述光照方向对所述虚拟对象进行阴影投射的所述阴影贴图。
16.根据权利要求9所述的装置,其特征在于,所述渲染模块还用于:
将不允许遮挡的虚拟对象的材质标记为目标材质,所述目标材质为渲染过程中不支持阴影渲染的材质。
17.一种终端,其特征在于,所述终端包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条指令,所述至少一条指令由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求8任一项所述的阴影渲染方法。
18.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至权利要求8任一项所述的阴影渲染方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290577.3A CN109993823B (zh) | 2019-04-11 | 2019-04-11 | 阴影渲染方法、装置、终端及存储介质 |
JP2021530180A JP7190042B2 (ja) | 2019-04-11 | 2020-03-17 | シャドウレンダリング方法、装置、コンピュータデバイスおよびコンピュータプログラム |
PCT/CN2020/079618 WO2020207202A1 (zh) | 2019-04-11 | 2020-03-17 | 阴影渲染方法、装置、计算机设备及存储介质 |
EP20787238.3A EP3955212A4 (en) | 2019-04-11 | 2020-03-17 | SHADOW RENDERING METHOD AND APPARATUS, COMPUTER DEVICE, AND MEDIA |
US17/327,585 US11574437B2 (en) | 2019-04-11 | 2021-05-21 | Shadow rendering method and apparatus, computer device, and storage medium |
US18/093,311 US20230143323A1 (en) | 2019-04-11 | 2023-01-04 | Shadow rendering method and apparatus, computer device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290577.3A CN109993823B (zh) | 2019-04-11 | 2019-04-11 | 阴影渲染方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109993823A CN109993823A (zh) | 2019-07-09 |
CN109993823B true CN109993823B (zh) | 2022-11-25 |
Family
ID=67133281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910290577.3A Active CN109993823B (zh) | 2019-04-11 | 2019-04-11 | 阴影渲染方法、装置、终端及存储介质 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11574437B2 (zh) |
EP (1) | EP3955212A4 (zh) |
JP (1) | JP7190042B2 (zh) |
CN (1) | CN109993823B (zh) |
WO (1) | WO2020207202A1 (zh) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993823B (zh) * | 2019-04-11 | 2022-11-25 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
CN110517346B (zh) * | 2019-08-30 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 |
CN110585713B (zh) * | 2019-09-06 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 游戏场景的阴影实现方法、装置、电子设备及可读介质 |
CN110544291B (zh) * | 2019-09-11 | 2023-05-09 | 珠海金山数字网络科技有限公司 | 一种图像渲染方法及装置 |
CN110717964B (zh) * | 2019-09-26 | 2023-05-02 | 深圳市名通科技股份有限公司 | 场景建模方法、终端及可读存储介质 |
CN110675479B (zh) * | 2019-10-14 | 2023-05-16 | 北京代码乾坤科技有限公司 | 动态光照处理方法、装置、存储介质及电子装置 |
CN110930492B (zh) * | 2019-11-20 | 2023-11-28 | 网易(杭州)网络有限公司 | 模型渲染的方法、装置、计算机可读介质及电子设备 |
CN112929636A (zh) * | 2019-12-05 | 2021-06-08 | 北京芯海视界三维科技有限公司 | 3d显示设备、3d图像显示方法 |
CN110990104B (zh) * | 2019-12-06 | 2023-04-11 | 珠海金山数字网络科技有限公司 | 一种基于Unity3D的纹理渲染方法及装置 |
CN111311723B (zh) * | 2020-01-22 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 像素点识别及光照渲染方法、装置、电子设备和存储介质 |
CN111292405B (zh) * | 2020-02-06 | 2022-04-08 | 腾讯科技(深圳)有限公司 | 一种图像渲染的方法以及相关装置 |
CN111462295B (zh) * | 2020-03-27 | 2023-09-05 | 咪咕文化科技有限公司 | 增强现实合拍中的阴影处理方法、设备及存储介质 |
CN111724313B (zh) * | 2020-04-30 | 2023-08-01 | 完美世界(北京)软件科技发展有限公司 | 一种阴影贴图生成方法与装置 |
CN111726479B (zh) * | 2020-06-01 | 2023-05-23 | 北京像素软件科技股份有限公司 | 图像渲染的方法及装置、终端、可读存储介质 |
CN111833423A (zh) * | 2020-06-30 | 2020-10-27 | 北京市商汤科技开发有限公司 | 展示方法、装置、设备和计算机可读存储介质 |
CN111915710A (zh) * | 2020-07-10 | 2020-11-10 | 杭州渲云科技有限公司 | 基于实时渲染技术的建筑渲染方法 |
CN111862295A (zh) * | 2020-07-17 | 2020-10-30 | 完美世界(重庆)互动科技有限公司 | 一种虚拟对象的展示方法、装置、设备和存储介质 |
CN111968216B (zh) * | 2020-07-29 | 2024-03-22 | 完美世界(北京)软件科技发展有限公司 | 一种体积云阴影渲染方法、装置、电子设备及存储介质 |
CN111932664B (zh) * | 2020-08-27 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 图像渲染方法、装置、电子设备及存储介质 |
CN112037314A (zh) * | 2020-08-31 | 2020-12-04 | 北京市商汤科技开发有限公司 | 图像显示方法、装置、显示设备及计算机可读存储介质 |
CN112245926B (zh) * | 2020-11-16 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 虚拟地形的渲染方法、装置、设备及介质 |
CN112288873B (zh) * | 2020-11-19 | 2024-04-09 | 网易(杭州)网络有限公司 | 渲染方法和装置、计算机可读存储介质、电子设备 |
CN112562051B (zh) * | 2020-11-30 | 2023-06-27 | 腾讯科技(深圳)有限公司 | 虚拟对象显示方法、装置、设备及存储介质 |
CN112370783A (zh) * | 2020-12-02 | 2021-02-19 | 网易(杭州)网络有限公司 | 虚拟对象渲染方法、装置、计算机设备和存储介质 |
CN112494941B (zh) * | 2020-12-14 | 2023-11-28 | 网易(杭州)网络有限公司 | 虚拟对象的显示控制方法及装置、存储介质、电子设备 |
CN112734896B (zh) * | 2021-01-08 | 2024-04-26 | 网易(杭州)网络有限公司 | 环境遮蔽渲染方法、装置、存储介质及电子设备 |
CN112734900A (zh) * | 2021-01-26 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 阴影贴图的烘焙方法、装置、设备及计算机可读存储介质 |
CN112819940B (zh) * | 2021-01-29 | 2024-02-23 | 网易(杭州)网络有限公司 | 渲染方法、装置和电子设备 |
CN112884874B (zh) * | 2021-03-18 | 2023-06-16 | 腾讯科技(深圳)有限公司 | 在虚拟模型上贴花的方法、装置、设备及介质 |
CN113012274B (zh) * | 2021-03-24 | 2023-07-28 | 北京壳木软件有限责任公司 | 一种阴影渲染的方法、装置以及电子设备 |
CN113256781B (zh) * | 2021-06-17 | 2023-05-30 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染和装置、存储介质及电子设备 |
CN113283543B (zh) * | 2021-06-24 | 2022-04-15 | 北京优锘科技有限公司 | 一种基于WebGL的图像投影融合方法、装置、存储介质和设备 |
CN113487662A (zh) * | 2021-07-02 | 2021-10-08 | 广州博冠信息科技有限公司 | 画面显示方法、装置、电子设备和存储介质 |
CN113592997B (zh) * | 2021-07-30 | 2023-05-30 | 腾讯科技(深圳)有限公司 | 基于虚拟场景的物体绘制方法、装置、设备及存储介质 |
CN113935893A (zh) * | 2021-09-09 | 2022-01-14 | 完美世界(北京)软件科技发展有限公司 | 素描风格的场景渲染方法、设备及存储介质 |
CN113821345B (zh) * | 2021-09-24 | 2023-06-30 | 网易(杭州)网络有限公司 | 游戏中的移动轨迹渲染方法、装置及电子设备 |
CN114494384B (zh) * | 2021-12-27 | 2023-01-13 | 北京吉威空间信息股份有限公司 | 建筑物阴影分析方法、装置、设备及存储介质 |
CN114461064B (zh) * | 2022-01-21 | 2023-09-15 | 北京字跳网络技术有限公司 | 虚拟现实交互方法、装置、设备和存储介质 |
CN114742934A (zh) * | 2022-04-07 | 2022-07-12 | 北京字跳网络技术有限公司 | 图像渲染方法、装置、可读介质及电子设备 |
US20230332922A1 (en) * | 2022-04-15 | 2023-10-19 | Onxmaps, Inc. | Methods and systems for providing a real-time viewshed visualization |
CN115239869B (zh) * | 2022-09-22 | 2023-03-24 | 广州简悦信息科技有限公司 | 阴影处理方法、阴影渲染方法及设备 |
CN115830208B (zh) * | 2023-01-09 | 2023-05-09 | 腾讯科技(深圳)有限公司 | 全局光照渲染方法、装置、计算机设备和存储介质 |
CN116245998B (zh) * | 2023-05-09 | 2023-08-29 | 北京百度网讯科技有限公司 | 渲染贴图生成方法及装置、模型训练方法及装置 |
CN116778127B (zh) * | 2023-07-05 | 2024-01-05 | 广州视景医疗软件有限公司 | 一种基于全景图的三维数字场景构建方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254340A (zh) * | 2011-07-29 | 2011-11-23 | 北京麒麟网信息科技有限公司 | 一种基于gpu加速的环境光遮挡图像绘制方法及系统 |
CN103903296A (zh) * | 2014-04-23 | 2014-07-02 | 东南大学 | 虚拟家装室内场景设计中的阴影渲染方法 |
CN104103089A (zh) * | 2014-07-29 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于图像屏幕空间的实时软阴影实现方法 |
CN104103092A (zh) * | 2014-07-24 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于聚光灯实时动态阴影的实现方法 |
CN106469463A (zh) * | 2016-09-27 | 2017-03-01 | 上海上大海润信息系统有限公司 | 一种基于cpu与gpu混合的渲染方法 |
CN107180444A (zh) * | 2017-05-11 | 2017-09-19 | 腾讯科技(深圳)有限公司 | 一种动画生成方法、装置、终端和系统 |
CN108038897A (zh) * | 2017-12-06 | 2018-05-15 | 北京像素软件科技股份有限公司 | 阴影贴图生成方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6940508B2 (en) * | 2000-06-22 | 2005-09-06 | Microsoft Corp. | Method and apparatus for modeling and real-time rendering of surface detail |
JP4079410B2 (ja) * | 2002-02-15 | 2008-04-23 | 株式会社バンダイナムコゲームス | 画像生成システム、プログラム及び情報記憶媒体 |
US6876362B1 (en) * | 2002-07-10 | 2005-04-05 | Nvidia Corporation | Omnidirectional shadow texture mapping |
JP4181430B2 (ja) * | 2003-03-10 | 2008-11-12 | シャープ株式会社 | 図形処理装置、図形処理方法、図形処理プログラム、および、プログラム記録媒体 |
KR101598374B1 (ko) * | 2009-09-21 | 2016-02-29 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
US9286649B2 (en) | 2013-05-31 | 2016-03-15 | Qualcomm Incorporated | Conditional execution of rendering commands based on per bin visibility information with added inline operations |
US9728002B2 (en) * | 2015-12-18 | 2017-08-08 | Advanced Micro Devices, Inc. | Texel shading in texture space |
US10204395B2 (en) * | 2016-10-19 | 2019-02-12 | Microsoft Technology Licensing, Llc | Stereoscopic virtual reality through caching and image based rendering |
US10636201B2 (en) * | 2017-05-05 | 2020-04-28 | Disney Enterprises, Inc. | Real-time rendering with compressed animated light fields |
CN108830923B (zh) * | 2018-06-08 | 2022-06-17 | 网易(杭州)网络有限公司 | 图像渲染方法、装置及存储介质 |
CN109993823B (zh) * | 2019-04-11 | 2022-11-25 | 腾讯科技(深圳)有限公司 | 阴影渲染方法、装置、终端及存储介质 |
-
2019
- 2019-04-11 CN CN201910290577.3A patent/CN109993823B/zh active Active
-
2020
- 2020-03-17 JP JP2021530180A patent/JP7190042B2/ja active Active
- 2020-03-17 EP EP20787238.3A patent/EP3955212A4/en active Pending
- 2020-03-17 WO PCT/CN2020/079618 patent/WO2020207202A1/zh unknown
-
2021
- 2021-05-21 US US17/327,585 patent/US11574437B2/en active Active
-
2023
- 2023-01-04 US US18/093,311 patent/US20230143323A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254340A (zh) * | 2011-07-29 | 2011-11-23 | 北京麒麟网信息科技有限公司 | 一种基于gpu加速的环境光遮挡图像绘制方法及系统 |
CN103903296A (zh) * | 2014-04-23 | 2014-07-02 | 东南大学 | 虚拟家装室内场景设计中的阴影渲染方法 |
CN104103092A (zh) * | 2014-07-24 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于聚光灯实时动态阴影的实现方法 |
CN104103089A (zh) * | 2014-07-29 | 2014-10-15 | 无锡梵天信息技术股份有限公司 | 一种基于图像屏幕空间的实时软阴影实现方法 |
CN106469463A (zh) * | 2016-09-27 | 2017-03-01 | 上海上大海润信息系统有限公司 | 一种基于cpu与gpu混合的渲染方法 |
CN107180444A (zh) * | 2017-05-11 | 2017-09-19 | 腾讯科技(深圳)有限公司 | 一种动画生成方法、装置、终端和系统 |
CN108038897A (zh) * | 2017-12-06 | 2018-05-15 | 北京像素软件科技股份有限公司 | 阴影贴图生成方法及装置 |
Non-Patent Citations (2)
Title |
---|
全球虚拟地理环境中实时阴影关键技术研究;谭力恒等;《系统仿真学报》;20171208;71-78 * |
基于边缘拟合阴影图的实时硬阴影生成;罗德宁等;《四川大学学报(自然科学版)》;20130328(第02期);63-68 * |
Also Published As
Publication number | Publication date |
---|---|
EP3955212A1 (en) | 2022-02-16 |
US20230143323A1 (en) | 2023-05-11 |
US11574437B2 (en) | 2023-02-07 |
US20210279948A1 (en) | 2021-09-09 |
JP7190042B2 (ja) | 2022-12-14 |
JP2022527686A (ja) | 2022-06-03 |
CN109993823A (zh) | 2019-07-09 |
WO2020207202A1 (zh) | 2020-10-15 |
EP3955212A4 (en) | 2022-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109993823B (zh) | 阴影渲染方法、装置、终端及存储介质 | |
US20210225067A1 (en) | Game screen rendering method and apparatus, terminal, and storage medium | |
US11393154B2 (en) | Hair rendering method, device, electronic apparatus, and storage medium | |
CN110033503B (zh) | 动画显示方法、装置、计算机设备及存储介质 | |
CN109191549B (zh) | 显示动画的方法及装置 | |
CN111464749B (zh) | 进行图像合成的方法、装置、设备及存储介质 | |
CN112870707B (zh) | 虚拟场景中的虚拟物体展示方法、计算机设备及存储介质 | |
CN112907716B (zh) | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 | |
CN110853128B (zh) | 虚拟物体显示方法、装置、计算机设备及存储介质 | |
JP7186901B2 (ja) | ホットスポットマップの表示方法、装置、コンピュータ機器および読み取り可能な記憶媒体 | |
CN112884874A (zh) | 在虚拟模型上贴花的方法、装置、设备及介质 | |
CN111833243B (zh) | 一种数据展示方法、移动终端和存储介质 | |
WO2018209710A1 (zh) | 一种图像处理方法及装置 | |
WO2021027890A1 (zh) | 车牌图像生成方法、装置及计算机存储介质 | |
CN110517346B (zh) | 虚拟环境界面的展示方法、装置、计算机设备及存储介质 | |
CN110717964B (zh) | 场景建模方法、终端及可读存储介质 | |
CN112308103B (zh) | 生成训练样本的方法和装置 | |
CN112884873B (zh) | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 | |
CN114745589A (zh) | 家居设备的投屏方法、目标家居设备及智能设备 | |
CN110505510B (zh) | 大屏系统中的视频画面显示方法、装置及存储介质 | |
CN111275607A (zh) | 界面显示方法、装置、计算机设备及存储介质 | |
CN113240784B (zh) | 图像处理方法、装置、终端及存储介质 | |
CN115798417A (zh) | 背光亮度的确定方法、装置、设备及计算机可读存储介质 | |
CN112231619A (zh) | 转换方法、装置、电子设备及存储介质 | |
CN112381729A (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 |