CN112884873B - 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 - Google Patents
虚拟环境中虚拟物体的渲染方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112884873B CN112884873B CN202110272440.2A CN202110272440A CN112884873B CN 112884873 B CN112884873 B CN 112884873B CN 202110272440 A CN202110272440 A CN 202110272440A CN 112884873 B CN112884873 B CN 112884873B
- Authority
- CN
- China
- Prior art keywords
- rendering
- virtual object
- virtual
- illumination
- determining
- 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/02—Non-photorealistic rendering
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本申请公开了一种虚拟环境中虚拟物体的渲染方法、装置、设备及介质,涉及界面显示领域。该方法包括:确定虚拟环境中的光照方向;获取虚拟物体对应的标识点坐标;基于光照方向和标识点坐标,确定虚拟物体相对于光照方向的渲染分界;针对虚拟物体上的目标网格,基于目标网格与渲染分界之间的位置关系对目标网格进行渲染。在对虚拟物体上的网格进行渲染时,根据网格与渲染分界的关系确定网格的渲染方式,即使在通过插片实现虚拟物体的情况下,由于插片上的网格都是通过与渲染分界之间的位置关系确定渲染结果的,而并非整体确定渲染方式的,避免整体渲染导致无法准确区别向光背光的情况,提高了插片实现的虚拟物体的渲染有效性以及真实感。
Description
技术领域
本申请实施例涉及界面显示领域,特别涉及一种虚拟环境中虚拟物体的渲染方法、装置、设备及介质。
背景技术
当虚拟环境中的物体距离摄像机模型较远时,通过显示屏能够观察到的物体的信息量相对也较少,如:针对一些虚拟环境中的植被,当植被距离摄像机模型较远时,则植被上的叶片或者枝干等细节无法被观察到,故在渲染距离较远的植被时,通常以数量较少的插片实现植被等物体。
相关技术中,在结合光线渲染植被模型时,引入垂直于插片表面的向量N,根据虚拟环境中光线的方向与垂直于插片表面的向量N之间的角度,可以确定光线对插片表面的影响情况,当两个向量的夹角为90度的时候,两个向量之间的点乘会变为0,即角度越大光线对插片颜色的影响就越小。
然而,通过上述方式确定插片的颜色时,由于插片的模型两个面的法线方向差异过大,通常是反向,光照渲染时会出现阴阳面的错误结果,导致插片植被的显示效果较差的问题。
发明内容
本申请实施例提供了一种虚拟环境中虚拟物体的渲染方法、装置、设备及介质,能够提高插片植被的渲染准确率以及虚拟环境的显示效果。所述技术方案如下:
一方面,提供了一种虚拟环境中虚拟物体的渲染方法,所述方法包括:
确定所述虚拟环境中的光照方向,所述光照方向为所述虚拟环境中虚拟发光体相对于虚拟物体的照射方向;
获取所述虚拟物体对应的标识点坐标,所述标识点坐标用于表示所述虚拟物体在所述虚拟环境中的位置,其中,所述虚拟物体通过插片的形式实现,所述插片由网格模型得到;
基于所述光照方向和所述标识点坐标,确定所述虚拟物体相对于所述光照方向的渲染分界,所述渲染分界用于指示所述虚拟物体上的向光区域和背光区域之间的分界;
针对所述虚拟物体上的目标网格,基于所述目标网格与所述渲染分界之间的位置关系对所述目标网格进行渲染。
另一方面,提供了一种虚拟环境中虚拟物体的渲染装置,所述装置包括:
确定模块,用于确定所述虚拟环境中的光照方向,所述光照方向为所述虚拟环境中虚拟发光体相对于虚拟物体的照射方向;
获取模块,用于获取所述虚拟物体对应的标识点坐标,所述标识点坐标用于表示所述虚拟物体在所述虚拟环境中的位置,其中,所述虚拟物体通过插片的形式实现,所述插片由网格模型得到;
所述确定模块,还用于基于所述光照方向和所述标识点坐标,确定所述虚拟物体相对于所述光照方向的渲染分界,所述渲染分界用于指示所述虚拟物体上的向光区域和背光区域之间的分界;
渲染模块,用于针对所述虚拟物体上的目标网格,基于所述目标网格与所述渲染分界之间的位置关系对所述目标网格进行渲染。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如上述本申请实施例中任一所述的虚拟环境中虚拟物体的渲染方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述本申请实施例中任一所述的虚拟环境中虚拟物体的渲染方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的虚拟环境中虚拟物体的渲染方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在对虚拟物体上的网格进行渲染时,首先根据光照方向和虚拟物体的标识点确定渲染分界,从而根据网格与渲染分界的关系确定网格的渲染方式,即使在通过插片实现虚拟物体的情况下,由于插片上的网格都是通过与渲染分界之间的位置关系确定渲染结果的,而并非整体确定渲染方式的,避免整体渲染导致无法准确区别向光背光的情况,提高了插片实现的虚拟物体的渲染有效性以及真实感。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的建筑物LOD模型的示意图;
图2是本申请一个示例性实施例提供的基于广告牌的渲染方法示意图;
图3是本申请一个示例性实施例提供的插片方式的示意图;
图4是本申请一个示例性实施例提供的由插片实现的虚拟树木的模型示意图;
图5是本申请一个示例性实施例提供的插片阴影渲染过程中角度确定的示意图;
图6是本申请一个示例性实施例提供的插片渲染结果示意图;
图7是本申请一个示例性实施例提供的虚拟环境中虚拟物体的渲染方法的实施环境示意图;
图8是本申请一个示例性实施例提供的虚拟环境中虚拟物体的渲染方法的流程图;
图9是基于图8示出的实施例提供的光照方向确定过程示意图;
图10是基于图8示出的实施例提供的各个空间坐标系的转换示意图;
图11是本申请另一个示例性实施例提供的虚拟环境中虚拟物体的渲染方法流程图;
图12是基于图11示出的实施例提供的渲染分界的示意图;
图13是基于图11示出的实施例提供的目标网格的渲染过程示意图;
图14是本申请一个示例性实施例提供的光照强度对比示意图;
图15是本申请一个示例性实施例提供的光照过渡对比示意图;
图16是本申请另一个示例性实施例提供的虚拟环境中虚拟物体的渲染方法流程图;
图17是本申请一个示例性实施例提供的虚拟环境中虚拟物体的渲染方法的整体流程图;
图18是本申请一个示例性实施例提供的虚拟环境中虚拟物体的渲染装置的结构框图;
图19是本申请另一个示例性实施例提供的虚拟环境中虚拟物体的渲染装置的结构框图;
图20是本申请一个示例性实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,针对本申请实施例中涉及的名词进行简单介绍:
虚拟环境:是应用程序在终端上运行时显示(或提供)的虚拟环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,本申请对此不加以限定。下述实施例以虚拟环境是三维虚拟环境来举例说明。
虚拟对象:是指虚拟环境中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在三维虚拟环境中显示的人物、动物、植物、油桶、墙壁、石块等。可选地,虚拟对象是基于动画骨骼技术创建的三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。
网格(英文:Mesh)模型:是指通过网格衔接的方式搭建得到的三维模型,可选地,该三维面模型可以是通过三角形网格搭建得到的模型,也可以是通过四边形网格搭建得到的模型,还可以是通过其他多边形网格搭建得到的模型,本申请实施例对此不加以限定。可选地,本申请实施例中,在虚拟环境中实现虚拟植被时,以网格模型的形式实现虚拟植被,其中,当摄像机模型距离虚拟植被的距离较近时,可以直接以网格搭建虚拟植被的模型;当摄像机模型距离虚拟植被的距离较远时,也可以通过网格搭建插片的形式,将多个插片交叉得到虚拟植被的外形。
在一些实施例中,由于当虚拟环境中的物体距离对其进行拍摄的摄像机模型较远时,能够被摄像机模型采集到的信息量会减少,所以游戏中通常会使用基于细节层次(Level of Detail,LOD)的优化技术。该技术的原理是随着物体与摄像机模型的距离增加,减少物体模型的网格数量。LOD技术可以减少硬件的负担,提高渲染性能。示意性的,请参考图1,其示出了本申请一个示例性实施例提供的建筑物LOD模型的示意图,其中模型110为建筑物的近距离模型LOD0,模型120为建筑物的远距离模型LOD1。本申请实施例中,在虚拟物体距离摄像机模型的距离较远时,采用LOD2模型构建虚拟物体,示意性的,通过插片的方式实现虚拟物体的构建。
插片:是指在虚拟环境中对三维模型进行构建的一种形式,通常应用于植被等结构复杂,而注重模型形态的物体。相关技术中,是基于广告牌(Billboard)的渲染方法,具体是采用一张含有半透明通道的贴图,示意性的,如图2所示,颜色通道210(Color Layer)为草的基础颜色,半透明通道220(Alpha Layer)为草的剪影。在渲染的时候,根据半透明通道的值进行半透明剔除,将参数小于0的像素点丢弃,得到最终的草的样式230。然而该方式下,草的影像从侧面变的较为窄,显示较为失真。
故,可以通过画有植被形状的贴图插片成一簇,从而实现最终的模型构建。示意性的,图3示出了本申请一个示例性实施例提供的插片方式的示意图,如图3所示,插片方式300中包括方式310和方式320,其中,方式310是通过三个插片在中心位置交叉的方式实现模型构建,方式320是通过三个插片两两交叉的方式实现模型的构建。
示意性的,图4是本申请一个示例性实施例提供的由插片实现的虚拟树木的模型示意图,如图4所示,将两个绘制有树木样式的插片400交叉后,得到虚拟树木的模型410。
光照是表现植被真实感的重要因素,相关技术中,在结合光线渲染植被模型时,引入垂直于插片表面的向量N,示意性的,请参考图5,根据虚拟环境中光线的方向与垂直于插片500表面的向量N之间的角度,可以确定光线对插片表面的影响情况,角度越大光线对插片500颜色的影响就越小。而相关技术中,插片植被在进行渲染时,由于插片的模型两个面的法线方向差异过大,光照渲染会出现阴阳面的错误结果,示意性的,如图6所示,插片610和插片620交叉后,由于光线从插片610正面照射,故会产生插片610的阳面和插片620阴面相邻,导致渲染效果失真的问题。
而通过增加插片数量,或者增加法线贴图的方式,则会导致额外的资源开销。
本申请实施例中,根据光照方向和LOD植被的根部位置,对向光部分和背光部分分别进行渲染。
值得注意的是,上述说明中,以插片植被为例进行说明,本申请实施例中,该虚拟物体还可以实现为其他由插片形式实现的物体,如:虚拟石头、虚拟摆件、虚拟云朵等,本申请实施例对此不加以限定。
本申请实施例提供的虚拟环境中虚拟物体的渲染方法,可以由终端执行实现,也可以由终端和服务器配合执行实现。本实施例中,以终端和服务器配合执行虚拟物体的渲染方法为例进行说明。
图7是本申请一个示例性实施例提供的虚拟环境中虚拟物体的渲染方法的实施环境示意图,如图7所示,该实施环境中包括:终端710和服务器720,其中,终端710与服务器720之间通过通信网络730连接。
终端710中安装有基于虚拟环境的应用程序,用户在终端710中对基于虚拟环境的应用程序进行应用,如:用户通过终端710控制虚拟角色在虚拟环境中运动。其中,虚拟环境中还包括虚拟植被、虚拟云朵、虚拟石头等虚拟物体。其中,以虚拟植被为例进行说明,虚拟植被在虚拟环境中是以插片的形式实现的,也即,将画有植被样式的插片交叉后,得到虚拟植被的插片模型。
在一些实施例中,终端710基于与服务器720之间的数据交互,实现插片模型的渲染,也即,首先需要从服务器720中获取虚拟植被在虚拟环境中的位置,从而需要从服务器720中获取虚拟环境中针对虚拟植被的光照方向,从而基于虚拟植被的位置和光照方向对虚拟植被对应的插片上的网格进行渲染,确定网格的渲染颜色,以体现出虚拟植被在光照下不同区域的不同显示情况。
值得注意的是,上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
结合上述名词简介和实施环境,对本申请实施例提供的虚拟环境中虚拟物体的渲染方法进行说明,以该方法应用于如图7所示的终端中为例进行说明,如图8所示,该方法包括:
步骤801,确定虚拟环境中的光照方向。
光照方向为虚拟环境中虚拟发光体相对于虚拟物体的照射方向。在一些实施例中,基于虚拟发光体与虚拟物体的相对位置即可得到光照方向。
在确定虚拟物体接收到光照的光照方向时,包括如下方式中的至少一种:
第一,虚拟环境中的光照为虚拟发光体在虚拟环境中的散射光照。
也即,虚拟发光体与虚拟物体之间的相对位置连线方向即为虚拟物体接收到的光照方向,示意性的,光照方向为虚拟发光体到虚拟物体之间的向量方向。
第二,光照方向是定向的。
示意性的,虚拟发光体为虚拟环境中的聚光灯,则光照方向为聚光灯的指定光线方向。
第三,虚拟发光体的光线通过反射照射到虚拟物体,或者,虚拟发光体的光线通过折射后照射到虚拟物体。
在这种情况下,光照方向与虚拟发光体和虚拟物体之间的相对位置间接相关,根据虚拟发光体的光线方向,在反射的情况下可以通过反射点的位置,参考入射光和出射光,从而确定虚拟物体接收到的光照方向;在折射的情况下可以通过折射点的位置,参考入射光和出射光,从而确定向虚拟物体进行光照的光照方向。
值得注意的是,上述虚拟物体接收到的光照方向的确定方式仅为示意性的举例,本申请实施例对光照方向的确定方式不加以限定。
在一些实施例中,光照方向是通过在虚拟环境对应的世界坐标系中,获取虚拟发光体在世界坐标系中的第一坐标,以及获取虚拟物体在世界坐标系中的第二坐标后,由第一坐标到第二坐标之间的向量确定的。
示意性的,请参考图9,其示出了本申请一个示例性实施例提供的在虚拟环境中确定针对虚拟物体的光照方向的示意图,如图9所示,在虚拟环境中包括虚拟发光体910以及虚拟物体920,该虚拟环境还对应建立有世界坐标系900,确定虚拟发光体910在世界坐标系900中对应的第一坐标,以及确定虚拟物体920在世界坐标系900中对应的第二坐标,从而确定由第一坐标到第二坐标的有向向量为光照方向。
值得注意的是,图9示出的虚拟发光体910为太阳,在一些实施例中,虚拟发光体910在终端显示的虚拟环境界面中不可见,仅实现光照作用,如:在阴天等阳光强度较弱的情况下,虚拟发光体910隐藏在云层之上而无法被观察到,但是太阳的光线透过云层照射到虚拟物体920上。
步骤802,获取虚拟物体对应的标识点坐标。
标识点坐标用于表示虚拟物体在虚拟环境中的位置,其中,虚拟物体通过插片的形式实现,插片由网格模型得到。
在一些实施例中,标识点坐标是指虚拟物体在世界坐标系中的坐标,也即上述步骤801中的第二坐标。
在一些实施例中,通过网格模型的方式构建插片,示意性的,通过三角形网格在平面上构建出虚拟物体的形象,并将多个相同或者不同的插片以预设的交叉方式交叉处理,得到虚拟物体的三维模型。在一些实施例中,当虚拟物体与摄像机模型之间的距离超过距离阈值时,通过插片的方式实现虚拟物体的三维模型构建。
示意性的,以三维树木的形象为例进行说明,通过三角形网格在平面上构建出树木形象,将构建好的平面树木形象作为插片,在三维模型的构建中,将多个同样的插片交叉后,得到立体的三维树木模型;或者,通过三角形网格在平面上构建出多个树木形象,将构建好的每个平面树木形象作为一个插片,在三维模型的构建中,将多个相同或者不同对的插片交叉后,得到立体的三维树木模型。
在一些实施例中,当虚拟物体与摄像机模型之间的距离达到第一距离阈值时,通过三个插片构建三维树木模型;当虚拟物体与摄像机模型之间的距离达到第二距离阈值时,通过两个插片构建三维树木模型。其中,第一距离阈值小于第二距离阈值。
在一些实施例中,标识点坐标是从虚拟物体本身的物体坐标系转换得到的,也即,首先确定虚拟物体的标识点在物体坐标系中的参考坐标,从而基于物体坐标系和世界坐标系之间的转换关系,确定虚拟物体的标识点在世界坐标系中的标识点坐标。在一些实施例中,标识点在物体坐标系中的参考坐标为物体坐标系的原点坐标,也即,物体坐标系是以标识点为原点,预设方向为坐标轴建立的坐标系。
可选地,当虚拟物体为形状规则的物体时,标识点为虚拟物体的中心点;或者,当虚拟物体为不规则形状的物体时,标识点为虚拟物体上的指定点;或者,当虚拟物体为规则/不规则形状的物体时,标识点为虚拟物体周侧的指定点。
本申请实施例中,虚拟树木为不规则形状的物体,虚拟树木对应的标识点为虚拟树木中心线上的一点,如:虚拟树木对应的标识点为中心线与世界坐标系中地面平面的交界点。
步骤803,基于光照方向和标识点坐标,确定光照方向相对于虚拟物体的渲染分界。
渲染分界用于指示虚拟物体上的向光区域和背光区域之间的分界。也即,渲染分界用于指示虚拟物体上的渲染点的明暗关系。
在一些实施例中,渲染分界为在一个映射平面上对向光区域和背光区域进行区分的分界线。示意性的,虚拟环境对应有世界坐标系,世界坐标系中与虚拟环境地面对应的至少两个坐标轴构建由地面平面,将光照方向映射至地面平面,得到光照向量,并在地面平面内,基于光照向量的方向确定过标识点坐标的直线为渲染分界。在一些实施例中,渲染分界为垂直于光照向量并过标识点的直线,或者,渲染分界为与光照向量呈指定角度并过标识点的直线。
在一些实施例中,针对需要渲染的像素点或者像素块,映射至上述映射平面后,根据映射位置与渲染分界之间的位置关系,确定对应的像素点或者像素块属于向光区域还是背光区域。
在一些实施例中,当光照方向在映射平面上的映射结果为点时,表示当前需发光体位于虚拟物体的正上方进行光照,则渲染分界可以通过虚拟物体上预先设置的顶点确定。以虚拟树木为例进行说明,在虚拟树木的树叶部分对应设置有八个顶点,分别位于树木的上半部分和下半部分,可以从上下两部分顶点中间划分渲染分界,渲染分界上方为向光区域,渲染分界下方为背光区域;或者,将虚拟物体上半部分的四个顶点构成的平面作为渲染分界,渲染分界上方为向光区域,渲染分界下方为背光区域。
步骤804,针对虚拟物体上的目标网格,基于目标网格与渲染分界之间的位置关系对目标网格进行渲染。
在一些实施例中,针对虚拟物体上需要渲染的目标网格,确定该目标网格与渲染分界之间相对位置关系,从而基于相对位置关系确定目标网格所属的是向光区域还是背光区域。
可选地,将目标网格映射至光照方向所映射的相同平面内,也即,将目标网格映射至世界坐标系中的地面平面内,从而在地面平面内对目标网格的映射结果与上述渲染分界进行位置关系的确定,从而确定目标网格的渲染结果。
在一些实施例中,对虚拟物体上每个需要显示在屏幕上的网格进行渲染后,即能够在屏幕上显示得到虚拟物体。
值得注意的是,虚拟物体上的网格需要经过图形渲染管线划分的几个阶段后,才能够实现在屏幕上的渲染。其中,图形渲染管线通常划分为:1、局部空间;2、世界空间;3、观察空间;4、裁剪空间;5、屏幕空间。
其中,请参考图10,其示出了本申请一个示例性实施例提供的各个空间坐标系的转换示意图,如图10所示,在局部空间1010内,是以虚拟物体1000的中心为原点建立物体坐标系的空间,也可以称为物体空间;通过模型矩阵1011转换后,将虚拟物体1000映射至世界空间1020内,世界空间1020是以虚拟环境中的指定位置为全局原点建立世界坐标系得到的空间,虚拟环境中的虚拟物体会与其他物体一起相对于全局原点在虚拟环境中设置;通过观察矩阵1021转换后,将虚拟物体1000映射至观察空间1030内,观察空间1030是以摄像机模型的视角对虚拟环境进行观察时的空间,观察空间1030中以摄像机模型的位置为原点建立有观察坐标系;由于摄像机模型所能够观察到的虚拟环境有限,故还需要对观察空间1030通过映射矩阵1031进行裁剪,得到裁剪空间1040,裁剪空间1040是在观察空间1030的基础上根据预设映射方式映射并裁剪得到的;最后,通过视口变换(Viewport Transform)从裁剪空间1040这种的裁剪坐标变换为屏幕坐标,也即,将裁剪空间1040中的虚拟物体1000映射至屏幕空间1050,以实现在屏幕中的对应位置进行显示。
其中,将顶点变换到各个不同的空间,是由于存在一些操作在特定的坐标系统中才有意义且处理较为方便。如,当需要对物体本身进行修改的时候,在局部空间中操作会更方便;如果要对一个物体做出一个相对于其它物体位置的操作(如:位置移动)时,在世界坐标系中更方便。
本申请实施例中,主要是涉及将光照方向和虚拟物体映射至世界坐标系中,从而能够基于光照方向与虚拟物体上的标识点确定渲染分界,以及基于虚拟物体上网格与渲染分界确定网格的渲染方式。
综上所述,本申请实施例提供的虚拟环境中虚拟物体的渲染方法,在对虚拟物体上的网格进行渲染时,首先根据光照方向和虚拟物体的标识点确定渲染分界,从而根据网格与渲染分界的关系确定网格的渲染方式,即使在通过插片实现虚拟物体的情况下,由于插片上的网格都是通过与渲染分界之间的位置关系确定渲染结果的,而并非整体确定渲染方式的,避免整体渲染导致无法准确区别向光背光的情况,提高了插片实现的虚拟物体的渲染有效性以及真实感。
在一些实施例中,根据世界坐标系确定地面平面后,基于地面平面确定渲染分界。图11是本申请另一个示例性实施例提供的虚拟环境中虚拟物体的渲染方法流程图,以该方法应用于终端中为例进行说明,如图11所示,该方法包括:
步骤1101,确定虚拟环境中的光照方向。
光照方向为虚拟环境中虚拟发光体相对于虚拟物体的照射方向。在一些实施例中,基于虚拟发光体与虚拟物体的相对位置即可得到光照方向。
在一些实施例中,光照方向是通过在虚拟环境对应的世界坐标系中,获取虚拟发光体在世界坐标系中的第一坐标,以及获取虚拟物体在世界坐标系中的第二坐标后,由第一坐标到第二坐标之间的向量确定的。
步骤1102,获取虚拟物体对应的标识点坐标。
标识点坐标用于表示虚拟物体在虚拟环境中的位置,其中,虚拟物体通过插片的形式实现,插片由网格模型得到。
在一些实施例中,标识点坐标是从虚拟物体本身的物体坐标系转换得到的,也即,首先确定虚拟物体的标识点在物体坐标系中的参考坐标,从而基于物体坐标系和世界坐标系之间的转换关系,确定虚拟物体的标识点在世界坐标系中的标识点坐标。在一些实施例中,标识点在物体坐标系中的参考坐标为物体坐标系的原点坐标,也即,物体坐标系是以标识点为原点,预设方向为坐标轴建立的坐标系。
步骤1103,将光照方向映射至地面平面,得到光照向量。
在一些实施例中,将光照方向在世界坐标系中的三维向量表达映射至地面平面,得到映射后的平面向量表达,即得到地面平面上的光照向量。
世界坐标系为虚拟环境对应的全局坐标系,世界坐标系中与虚拟环境打地面对应的至少两个坐标轴构建有地面平面。示意性的,世界坐标系中包括x轴、y轴以及z轴,其中,y轴指向虚拟环境中的天空,则x轴和z轴构成的地面平面,也即,计算虚拟环境中的光照方向在xz平面上的投影。
步骤1104,以垂直于光照向量的方向,确定过标识点坐标的直线为渲染分界。
在一些实施例中,响应于标识点坐标位于地面平面内,基于光照向量的方向确定过标识点坐标的直线为渲染分界;响应于标识点坐标未处于地面片面内,确定标识点坐标在地面平面内映射得到的映射坐标,基于光照向量的方向确定过映射坐标的直线为渲染分界。
也即,响应于标识点坐标位于地面平面内,以垂直于光照向量的方向,确定过标识点坐标的直线为渲染分界;响应于标识点坐标未处于地面片面内,确定标识点坐标在地面平面内映射得到的映射坐标,以垂直于光照向量的方向,确定过映射坐标的直线为渲染分界。
示意性的,当标识点未处于地面平面内,将标识点映射至xz平面内,得到映射坐标。
渲染分界用于指示虚拟物体上的向光区域和背光区域之间的分界。也即,渲染分界用于指示虚拟物体上的渲染点的明暗关系。
在一些实施例中,渲染分界为在一个映射平面上对向光区域和背光区域进行区分的分界线。
示意性的,请参考图12,其示出了本申请一个示例性实施例提供的渲染分界的示意图。如图12所示,虚拟物体1210为虚拟树木,该虚拟树木的标识点位于地面平面1200内,将光照方向映射至地面平面1200内,得到方向向量1220,从而得到过标识点的直线1230。
步骤1105,针对虚拟物体上的目标网格,基于目标网格与渲染分界之间的位置关系对目标网格进行渲染。
在一些实施例中,针对虚拟物体上需要渲染的目标网格,确定该目标网格与渲染分界之间相对位置关系,从而基于相对位置关系确定目标网格所属的是向光区域还是背光区域。
可选地,将目标网格映射至光照方向所映射的相同平面内,也即,将目标网格映射至世界坐标系中的地面平面内,得到映射网格,基于映射网格与渲染分界之间的位置关系,对目标网格进行渲染。
示意性的,请参考图13,其示出了本申请一个示例性实施例提供的目标网格的渲染过程示意图。如图13所示,在地面平面1300内包括已确定的渲染分界1310,以虚拟物体1320上的目标网格1321为例,将目标网格1321映射至地面平面1300内,得到映射网格1322,从而根据映射网格1322与渲染分界1310之间的位置关系确定目标网格1321的渲染方式。
在一些实施例中,获取映射网格与渲染分界对应的直线之间的距离,获取映射网格与渲染分界对应的直线之间的向量与光照向量之间的方向关系,基于距离和方向关系对目标网格进行渲染。
在一些实施例中,基于方向确定目标网格所处的区域类型,区域类型包括向光区域和背光区域中的任意一种。
基于距离确定对目标网格的渲染强度,渲染强度对应目标网格的光照表现强度或者阴影表现强度。从而基于区域类型和渲染强度对目标网格进行渲染。
综上所述,本申请实施例提供的虚拟环境中虚拟物体的渲染方法,在对虚拟物体上的网格进行渲染时,首先根据光照方向和虚拟物体的标识点确定渲染分界,从而根据网格与渲染分界的关系确定网格的渲染方式,即使在通过插片实现虚拟物体的情况下,由于插片上的网格都是通过与渲染分界之间的位置关系确定渲染结果的,而并非整体确定渲染方式的,避免整体渲染导致无法准确区别向光背光的情况,提高了插片实现的虚拟物体的渲染有效性以及真实感。
本实施例提供的方法,以世界坐标系中的地面平面为基准,将光照方向和标识点皆映射至地面平面上,从而确定渲染分界,以及在对目标网格进行渲染时,将目标网格映射至地面平面上与渲染分界进行位置关系的匹配,从而实现了对目标网格的精准渲染,提高了虚拟物体的显示效果,和阴影展示的有效性。
在一些实施例中,可以通过自定义的方式对向光部分的光照强度进行设置;也可以通过自定义的方式对向光部分和背光部分之间的交界过渡宽度进行设置。示意性的,请参考图14,其示出了本申请一个示例性实施例提供的光照强度对比示意图。如图14所示,在相同角度的光照下,虚拟物体1400在光照为0.5的虚拟环境1410中向光部分和背光部分之间的明暗差距较小,而虚拟物体1400在光照为1.0的虚拟环境1420中向光部分和背光部分之间的明暗差距较大。
图15示出了本申请一个示例性实施例提供的光照过渡对比示意图。如图15所示,在相同角度的光照下,虚拟物体1500在过渡宽度0的虚拟环境1510中向光部分和背光部分之间过渡较为生硬,而虚拟物体1500在光照为10的虚拟环境1520中向光部分和背光部分之间过渡较为平缓。
图16是本申请另一个示例性实施例提供的虚拟环境中虚拟物体的渲染方法流程图,以该方法应用于终端中为例进行说明,如图16所示,该方法包括:
步骤1601,确定虚拟环境中的光照方向。
光照方向为虚拟环境中虚拟发光体相对于虚拟物体的照射方向。在一些实施例中,基于虚拟发光体与虚拟物体的相对位置即可得到光照方向。
在一些实施例中,光照方向是通过在虚拟环境对应的世界坐标系中,获取虚拟发光体在世界坐标系中的第一坐标,以及获取虚拟物体在世界坐标系中的第二坐标后,由第一坐标到第二坐标之间的向量确定的。
步骤1602,获取虚拟物体对应的标识点坐标。
标识点坐标用于表示虚拟物体在虚拟环境中的位置,其中,虚拟物体通过插片的形式实现,插片由网格模型得到。
在一些实施例中,标识点坐标是从虚拟物体本身的物体坐标系转换得到的,也即,首先确定虚拟物体的标识点在物体坐标系中的参考坐标,从而基于物体坐标系和世界坐标系之间的转换关系,确定虚拟物体的标识点在世界坐标系中的标识点坐标。在一些实施例中,标识点在物体坐标系中的参考坐标为物体坐标系的原点坐标,也即,物体坐标系是以标识点为原点,预设方向为坐标轴建立的坐标系。
步骤1603,将光照方向映射至地面平面,得到光照向量。
在一些实施例中,将光照方向在世界坐标系中的三维向量表达映射至地面平面,得到映射后的平面向量表达,即得到地面平面上的光照向量。
世界坐标系为虚拟环境对应的全局坐标系,世界坐标系中与虚拟环境打地面对应的至少两个坐标轴构建有地面平面。示意性的,世界坐标系中包括x轴、y轴以及z轴,其中,y轴指向虚拟环境中的天空,则x轴和z轴构成的地面平面,也即,计算虚拟环境中的光照方向在xz平面上的投影。
步骤1604,以垂直于光照向量的方向,确定过标识点坐标的直线为渲染分界。
响应于标识点坐标位于地面平面内,以垂直于光照向量的方向,确定过标识点坐标的直线为渲染分界;响应于标识点坐标未处于地面片面内,确定标识点坐标在地面平面内映射得到的映射坐标,以垂直于光照向量的方向,确定过映射坐标的直线为渲染分界。
步骤1605,将目标网格映射至地面平面内,得到映射网格。
可选地,将目标网格映射至光照方向所映射的相同平面内,也即,将目标网格映射至世界坐标系中的地面平面内,得到映射网格,基于映射网格与渲染分界之间的位置关系,对目标网格进行渲染。
步骤1606,获取映射网格与渲染分界对应的直线之间的距离。
在一些实施例中,基于距离确定对目标网格的渲染强度,该渲染强度对应目标网格的光照表现强度或者阴影表现强度。
在一些实施例中,获取预先设置的交界线宽度,交界线宽度用于表示向光区域和背光区域之间的过渡宽度,基于交界线宽度和距离确定对目标网格的渲染强度。
在一些实施例中,获取预先设置的光线基础强度,基于交界线宽度、光线基础强度和距离确定对目标网格的渲染强度。
可选地,当目标网格位于交界线宽度范围内时,则根据目标网格与渲染交界之间的距离以及交界线宽度之间的比例,对光线基础强度进行调整,得到目标网格的渲染强度。
示意性的,交界线宽度范围为10,映射网格与渲染分界之间的距离为6,光线基础强度为8,以向光区域为例,交界范围内的网格随着与渲染分界距离的增加,光线强度增大,故计算映射网格与渲染分界之间的距离与交界线宽度的比值(即0.6),并与光线基础强度相乘(即4.8),作为该网格的向光渲染强度。值得注意的是,上述计算方式仅为示意性的举例,本申请实施例对渲染强度的计算方式不加以限定。
可选地,渲染强度还可以根据天气环境光确定,其中,天气环境光为与天气条件对应的定值,阴影部分的渲染强度仅受天气环境光的影响。
步骤1607,获取映射网格到渲染分界对应的直线之间的向量与光照向量之间的方向关系。
在一些实施例中,响应于映射网格到渲染分界对应的直线之间的向量,与光照向量同向,确定目标网格处于向光区域;响应于映射网格到渲染分界对应的直线之间的向量,与光照向量反向,确定目标网格处于背光区域。
步骤1608,基于距离和方向关系对目标网格进行渲染。
在一些实施例中,将渲染强度与基础贴图颜色相乘,即可得到渲染颜色。
综上所述,本申请实施例提供的虚拟环境中虚拟物体的渲染方法,在对虚拟物体上的网格进行渲染时,首先根据光照方向和虚拟物体的标识点确定渲染分界,从而根据网格与渲染分界的关系确定网格的渲染方式,即使在通过插片实现虚拟物体的情况下,由于插片上的网格都是通过与渲染分界之间的位置关系确定渲染结果的,而并非整体确定渲染方式的,避免整体渲染导致无法准确区别向光背光的情况,提高了插片实现的虚拟物体的渲染有效性以及真实感。
本实施例提供的方法,通过自定义边界过渡宽度的方式平缓在向光区域和背光区域之间的颜色过渡,避免直接由向光颜色跳转至背光颜色,导致向光和背光区域之间的差别过大,阴影显示的真实度较低的问题。
本实施例提供的方法,通过对光线基础强度的设置,从而针对晴天、阴天等不同的光线条件能够以不同的光线基础强度进行阴影的渲染,提高了阴影表达的真实度。
示意性的,图17是本申请一个示例性实施例提供的虚拟环境中虚拟物体的渲染方法的整体流程图,以虚拟物体实现为虚拟植被为例,如图17所示,该过程中包括:
步骤1701,计算虚拟植被根部在世界坐标系中的坐标。
在一些实施例中,世界坐标系中包括x轴、y轴和z轴,其中,y轴指向虚拟环境中的天空。x轴和z轴构成的平面即为XZ平面。
其中,虚拟植被的根部即为上述虚拟物体对应的标识点。将虚拟植被根部的坐标从物体坐标系转换至世界坐标系。也即,将虚拟植被对应的局部空间中,植被根部的坐标转换到世界空间中。在一些实施例中,虚拟植被的根部位于世界坐标系的XZ平面上。示意性的,该植被根据在世界坐标系中的确定方式,伪代码如下所示:
float2 rootPos=mul(unity_ObjectToWorld,half4(0,0,0,1)).xz
其中,float2表示以二维浮点数表达,rootPos表示植被根部坐标;mul表示乘法运算,unity_ObjectToWorld表示从局部空间到世界空间的转换,half4(0,0,0,1)表示转换过程中应用的四维向量;“.xz”表示在XZ平面内。
步骤1702,计算光照方向在XZ平面上的投影。
在一些实施例中,确定光照在三维虚拟环境中的方向后,将光照方向映射至XZ平面内,得到平面投影方向。
示意性的,伪代码如下:
float3 worldPos=mul(unity_ObjectToWorld,v.vertex).xyz;
half2 lightDir=normalize(UnityWorldSpaceLightDir(worldPos)).xz;
其中,float3表示以三维浮点数表达,worldPos表示计算当前片元(即当前渲染的插片)的世界空间坐标,(unity_ObjectToWorld,v.vertex)表示从模型空间(虚拟植被物体的局部空间)转化到世界空间中,“.xyz”表示取xyz分量;half2表示以2维向量表达,lightDir表示映射后的光照方向,normalize表示标准化处理,UnityWorldSpaceLightDir(worldPos)表示在世界空间内光照方向的映射结果,“.xz”表示取xz分量,也即在XZ平面内。
步骤1703,计算当前渲染位置在XZ平面上的投影。
可选地,获取当前渲染位置在局部空间的坐标后,转换至世界空间,得到当前渲染位置在世界坐标系内的坐标,并投影至XZ平面内。
步骤1704,计算XZ平面上垂直于光照方向且过虚拟植被根部的直线方程。
在XZ品平面内计算垂直于光照方向(在XZ平面内的映射方向),并过上述根部位置的直线方向Ax+By+C=0。其中A=lightDir.x/lightDir.y;B=1;C=-(rootPos.y+lightDir.x×rootPos.x/lightDir.y)。lightDir.x表示光照投影在x轴的分量,lightDir.y表示光照投影在z轴的分量;rootPos.x表示根部位置的x轴坐标,rootPos.y表示根部位置的z轴坐标。
步骤1705,计算XZ平面上当前渲染位置与直线方程的距离。
以渲染位置的坐标为(pointPos.x,pointPos.y)为例,pointPos.x表示渲染位置的x轴坐标,pointtPos.y表示根部位置的z轴坐标。
则根据点线距离计算公式可以得到:
距离distance=(A×pointPos.x+pointPos.y+C)/A
步骤1706,根据距离计算向光部分和阴影部分,并叠加。
在一些实施例中,根据交界线宽度、基础贴图颜色、天气环境光、向光强度等因素对向光部分和阴影部分进行渲染,并将渲染的向光部分和阴影部分叠加,得到当前渲染位置的渲染结果。
综上所述,本申请实施例提供的虚拟环境中虚拟物体的渲染方法,在对虚拟物体上的网格进行渲染时,首先根据光照方向和虚拟物体的标识点确定渲染分界,从而根据网格与渲染分界的关系确定网格的渲染方式,即使在通过插片实现虚拟物体的情况下,由于插片上的网格都是通过与渲染分界之间的位置关系确定渲染结果的,而并非整体确定渲染方式的,避免整体渲染导致无法准确区别向光背光的情况,提高了插片实现的虚拟物体的渲染有效性以及真实感。
图18是本申请一个示例性实施例提供的虚拟环境中虚拟物体的渲染装置的结构框图,如图18所示,该装置包括:
确定模块1810,用于确定所述虚拟环境中的光照方向,所述光照方向为所述虚拟环境中虚拟发光体相对于虚拟物体的照射方向;
获取模块1820,用于获取所述虚拟物体对应的标识点坐标,所述标识点坐标用于表示所述虚拟物体在所述虚拟环境中的位置,其中,所述虚拟物体通过插片的形式实现,所述插片由网格模型得到;
所述确定模块1810,还用于基于所述光照方向和所述标识点坐标,确定所述虚拟物体相对于所述光照方向的渲染分界,所述渲染分界用于指示所述虚拟物体上的向光区域和背光区域之间的分界;
渲染模块1830,用于针对所述虚拟物体上的目标网格,基于所述目标网格与所述渲染分界之间的位置关系对所述目标网格进行渲染。
在一个可选的实施例中,所述虚拟环境对应有世界坐标系,所述世界坐标系中与虚拟环境地面对应的至少两个坐标轴构建有地面平面;
如图19所示,所述确定模块1810,包括:
映射单元1811,用于将所述光照方向映射至所述地面平面,得到光照向量;
确定单元1812,用于在所述地面平面内,基于所述光照向量的方向确定过所述标识点坐标的直线为所述渲染分界。
在一个可选的实施例中,所述确定单元1812,还用于以垂直于所述光照向量的方向,确定过所述标识点坐标的直线为所述渲染分界。
在一个可选的实施例中,所述确定单元1812,还用于响应于所述标识点坐标位于所述地面平面内,基于所述光照向量的方向确定过所述标识点坐标的直线为所述渲染分界;
所述确定单元1812,还用于响应于所述标识点坐标未处于所述地面平面内,确定所述标识点坐标在所述地面平面内映射得到的映射坐标;基于所述光照向量的方向确定过所述映射坐标的直线为所述渲染分界。
在一个可选的实施例中,所述映射单元1811,还用于将所述目标网格映射至所述地面平面内,得到映射网格;
所述渲染模块1830,还用于基于所述映射网格与所述渲染分界之间的位置关系对所述目标网格进行渲染。
在一个可选的实施例中,所述获取模块1820,还用于获取所述映射网格与所述渲染分界对应的直线之间的距离;获取所述映射网格到所述渲染分界对应的直线之间的向量与所述光照向量之间的方向关系;
所述渲染模块1830,还用于基于所述距离和所述方向关系对所述目标网格进行渲染。
在一个可选的实施例中,所述确定单元1812,还用于基于所述方向关系确定所述目标网格所处的区域类型,所述区域类型包括向光区域和背光区域中的任意一种;
所述确定单元1812,还用于基于所述距离确定对所述目标网格的渲染强度,所述渲染强度对应所述目标网格的光照表现强度或者阴影表现强度;
所述渲染模块1830,还用于基于所述区域类型和所述渲染强度对所述目标网格进行渲染。
在一个可选的实施例中,所述确定单元1812,还用于响应于所述映射网格到所述渲染分界对应的直线之间的向量,与所述光照向量同向,确定所述目标网格处于所述向光区域;
所述确定单元1812,还用于响应于所述映射网格到所述渲染分界对应的直线之间的向量,与所述光照向量反向,确定所述目标网格处于所述背光区域。
在一个可选的实施例中,所述获取模块1820,还用于获取预先设置的交界线宽度,所述交界线宽度用于表示所述向光区域和所述背光区域之间的过渡宽度;
所述确定单元1812,还用于基于所述交界线宽度和所述距离确定对所述目标网格的渲染强度。
在一个可选的实施例中,所述基于所述交界线宽度和所述距离确定对所述目标网格的渲染强度,包括:
所述获取模块1820,还用于获取预先设置的光线基础强度;
所述确定单元1812,还用于基于所述交界线宽度、所述光线基础强度和所述距离确定对所述目标网格的渲染强度。
在一个可选的实施例中,所述虚拟物体对应有物体坐标系;
所述获取模块1820,还用于确定所述虚拟物体的标识点在所述物体坐标系中的参考坐标;基于所述物体坐标系与所述世界坐标系之间的转换关系,确定所述虚拟物体的标识点在所述世界坐标系中的所述标识点坐标。
综上所述,本申请实施例提供的虚拟环境中虚拟物体的渲染装置,在对虚拟物体上的网格进行渲染时,首先根据光照方向和虚拟物体的标识点确定渲染分界,从而根据网格与渲染分界的关系确定网格的渲染方式,即使在通过插片实现虚拟物体的情况下,由于插片上的网格都是通过与渲染分界之间的位置关系确定渲染结果的,而并非整体确定渲染方式的,避免整体渲染导致无法准确区别向光背光的情况,提高了插片实现的虚拟物体的渲染有效性以及真实感。
需要说明的是:上述实施例提供的虚拟环境中虚拟物体的渲染装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟环境中虚拟物体的渲染装置,与虚拟环境中虚拟物体的渲染方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图20示出了本申请一个示例性实施例提供的电子设备2000的结构框图。该电子设备2000可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。电子设备2000还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,电子设备2000包括有:处理器2001和存储器2002。
处理器2001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2001可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器2001所执行以实现本申请中方法实施例提供的虚拟环境中虚拟物体的渲染方法。
在一些实施例中,电子设备2000还可选包括有:外围设备接口2003和至少一个外围设备。处理器2001、存储器2002和外围设备接口2003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2003相连。具体地,外围设备包括:射频电路2004、显示屏2005、摄像头组件2006、音频电路2007、定位组件2008和电源2009中的至少一种。
外围设备接口2003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器2001和存储器2002。在一些实施例中,处理器2001、存储器2002和外围设备接口2003被集成在同一芯片或电路板上;在一些其他实施例中,处理器2001、存储器2002和外围设备接口2003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路2004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路2004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2004可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路2004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏2005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏2005是触摸显示屏时,显示屏2005还具有采集在显示屏2005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2001进行处理。此时,显示屏2005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏2005可以为一个,设置在电子设备2000的前面板;在另一些实施例中,显示屏2005可以为至少两个,分别设置在电子设备2000的不同表面或呈折叠设计;在另一些实施例中,显示屏2005可以是柔性显示屏,设置在电子设备2000的弯曲表面上或折叠面上。甚至,显示屏2005还可以设置成非矩形的不规则图形,也即异形屏。显示屏2005可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件2006用于采集图像或视频。可选地,摄像头组件2006包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件2006还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2001进行处理,或者输入至射频电路2004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备2000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2001或射频电路2004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路2007还可以包括耳机插孔。
定位组件2008用于定位电子设备2000的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件2008可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源2009用于为电子设备2000中的各个组件进行供电。电源2009可以是交流电、直流电、一次性电池或可充电电池。当电源2009包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,电子设备2000还包括有一个或多个传感器2010。该一个或多个传感器2010包括但不限于:加速度传感器2011、陀螺仪传感器2012、压力传感器2013、指纹传感器2014、光学传感器2015以及接近传感器2016。
加速度传感器2011可以检测以电子设备2000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器2011可以用于检测重力加速度在三个坐标轴上的分量。处理器2001可以根据加速度传感器2011采集的重力加速度信号,控制显示屏2005以横向视图或纵向视图进行用户界面的显示。加速度传感器2011还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器2012可以检测电子设备2000的机体方向及转动角度,陀螺仪传感器2012可以与加速度传感器2011协同采集用户对电子设备2000的3D动作。处理器2001根据陀螺仪传感器2012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器2013可以设置在电子设备2000的侧边框和/或显示屏2005的下层。当压力传感器2013设置在电子设备2000的侧边框时,可以检测用户对电子设备2000的握持信号,由处理器2001根据压力传感器2013采集的握持信号进行左右手识别或快捷操作。当压力传感器2013设置在显示屏2005的下层时,由处理器2001根据用户对显示屏2005的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器2014用于采集用户的指纹,由处理器2001根据指纹传感器2014采集到的指纹识别用户的身份,或者,由指纹传感器2014根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器2001授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器2014可以被设置在电子设备2000的正面、背面或侧面。当电子设备2000上设置有物理按键或厂商Logo时,指纹传感器2014可以与物理按键或厂商Logo集成在一起。
光学传感器2015用于采集环境光强度。在一个实施例中,处理器2001可以根据光学传感器2015采集的环境光强度,控制显示屏2005的显示亮度。具体地,当环境光强度较高时,调高显示屏2005的显示亮度;当环境光强度较低时,调低显示屏2005的显示亮度。在另一个实施例中,处理器2001还可以根据光学传感器2015采集的环境光强度,动态调整摄像头组件2006的拍摄参数。
接近传感器2016,也称距离传感器,通常设置在电子设备2000的前面板。接近传感器2016用于采集用户与电子设备2000的正面之间的距离。在一个实施例中,当接近传感器2016检测到用户与电子设备2000的正面之间的距离逐渐变小时,由处理器2001控制显示屏2005从亮屏状态切换为息屏状态;当接近传感器2016检测到用户与电子设备2000的正面之间的距离逐渐变大时,由处理器2001控制显示屏2005从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图20中示出的结构并不构成对电子设备2000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请的实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述各方法实施例提供的虚拟环境中虚拟物体的渲染方法。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行,以实现上述各方法实施例提供的虚拟环境中虚拟物体的渲染方法。
本申请的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中任一所述的虚拟环境中虚拟物体的渲染方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种虚拟环境中虚拟物体的渲染方法,其特征在于,所述方法包括:
确定所述虚拟环境中的光照方向,所述光照方向为所述虚拟环境中虚拟发光体相对于虚拟物体的照射方向;
获取所述虚拟物体对应的标识点坐标,所述标识点坐标用于表示所述虚拟物体在所述虚拟环境中的位置,其中,所述虚拟物体通过插片的形式实现,所述插片由网格模型得到,所述虚拟环境对应有世界坐标系,所述世界坐标系中与虚拟环境地面对应的至少两个坐标轴构建有地面平面;
将所述光照方向映射至所述地面平面,得到光照向量;
在所述地面平面内,基于所述光照向量的方向确定过所述标识点坐标的直线为渲染分界,所述渲染分界用于指示所述虚拟物体上的向光区域和背光区域之间的分界;
针对所述虚拟物体上的目标网格,基于所述目标网格与所述渲染分界之间的位置关系对所述目标网格进行渲染。
2.根据权利要求1所述的方法,其特征在于,所述基于所述光照向量的方向确定过所述标识点坐标的直线为渲染分界,包括:
以垂直于所述光照向量的方向,确定过所述标识点坐标的直线为所述渲染分界。
3.根据权利要求1所述的方法,其特征在于,所述基于所述光照向量的方向确定过所述标识点坐标的直线为渲染分界,包括:
响应于所述标识点坐标位于所述地面平面内,基于所述光照向量的方向确定过所述标识点坐标的直线为所述渲染分界;
响应于所述标识点坐标未处于所述地面平面内,确定所述标识点坐标在所述地面平面内映射得到的映射坐标;基于所述光照向量的方向确定过所述映射坐标的直线为所述渲染分界。
4.根据权利要求1至3任一所述的方法,其特征在于,所述针对所述虚拟物体上的目标网格,基于所述目标网格与所述渲染分界之间的位置关系对所述目标网格进行渲染,包括:
将所述目标网格映射至所述地面平面内,得到映射网格;
基于所述映射网格与所述渲染分界之间的位置关系对所述目标网格进行渲染。
5.根据权利要求4所述的方法,其特征在于,所述基于所述映射网格与所述渲染分界之间的位置关系对所述目标网格进行渲染,包括:
获取所述映射网格与所述渲染分界对应的直线之间的距离;
获取所述映射网格到所述渲染分界对应的直线之间的向量与所述光照向量之间的方向关系;
基于所述距离和所述方向关系对所述目标网格进行渲染。
6.根据权利要求5所述的方法,其特征在于,所述基于所述距离和所述方向关系对所述目标网格进行渲染,包括:
基于所述方向关系确定所述目标网格所处的区域类型,所述区域类型包括向光区域和背光区域中的任意一种;
基于所述距离确定对所述目标网格的渲染强度,所述渲染强度对应所述目标网格的光照表现强度或者阴影表现强度;
基于所述区域类型和所述渲染强度对所述目标网格进行渲染。
7.根据权利要求6所述的方法,其特征在于,所述基于所述方向关系确定所述目标网格所处的区域类型,包括:
响应于所述映射网格到所述渲染分界对应的直线之间的向量,与所述光照向量同向,确定所述目标网格处于所述向光区域;
响应于所述映射网格到所述渲染分界对应的直线之间的向量,与所述光照向量反向,确定所述目标网格处于所述背光区域。
8.根据权利要求6所述的方法,其特征在于,所述基于所述距离确定对所述目标网格的渲染强度,包括:
获取预先设置的交界线宽度,所述交界线宽度用于表示所述向光区域和所述背光区域之间的过渡宽度;
基于所述交界线宽度和所述距离确定对所述目标网格的渲染强度。
9.根据权利要求8所述的方法,其特征在于,所述基于所述交界线宽度和所述距离确定对所述目标网格的渲染强度,包括:
获取预先设置的光线基础强度;
基于所述交界线宽度、所述光线基础强度和所述距离确定对所述目标网格的渲染强度。
10.根据权利要求1至3任一所述的方法,其特征在于,所述虚拟物体对应有物体坐标系;
所述获取所述虚拟物体对应的标识点坐标,包括:
确定所述虚拟物体的标识点在所述物体坐标系中的参考坐标;
基于所述物体坐标系与所述世界坐标系之间的转换关系,确定所述虚拟物体的标识点在所述世界坐标系中的所述标识点坐标。
11.一种虚拟环境中虚拟物体的渲染装置,其特征在于,所述装置包括:
确定模块,用于确定所述虚拟环境中的光照方向,所述光照方向为所述虚拟环境中虚拟发光体相对于虚拟物体的照射方向;
获取模块,用于获取所述虚拟物体对应的标识点坐标,所述标识点坐标用于表示所述虚拟物体在所述虚拟环境中的位置,其中,所述虚拟物体通过插片的形式实现,所述插片由网格模型得到,所述虚拟环境对应有世界坐标系,所述世界坐标系中与虚拟环境地面对应的至少两个坐标轴构建有地面平面;
所述确定模块,包括:
映射单元,用于将所述光照方向映射至所述地面平面,得到光照向量;
确定单元,用于在所述地面平面内,基于所述光照向量的方向确定过所述标识点坐标的直线为渲染分界,所述渲染分界用于指示所述虚拟物体上的向光区域和背光区域之间的分界;
渲染模块,用于针对所述虚拟物体上的目标网格,基于所述目标网格与所述渲染分界之间的位置关系对所述目标网格进行渲染。
12.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一段程序,所述至少一段程序由所述处理器加载并执行以实现如权利要求1至10任一所述的虚拟环境中虚拟物体的渲染方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至10任一所述的虚拟环境中虚拟物体的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110272440.2A CN112884873B (zh) | 2021-03-12 | 2021-03-12 | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110272440.2A CN112884873B (zh) | 2021-03-12 | 2021-03-12 | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112884873A CN112884873A (zh) | 2021-06-01 |
CN112884873B true CN112884873B (zh) | 2023-05-23 |
Family
ID=76042497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110272440.2A Active CN112884873B (zh) | 2021-03-12 | 2021-03-12 | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112884873B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113599818B (zh) * | 2021-08-16 | 2023-07-21 | 北京字跳网络技术有限公司 | 植被渲染方法、装置、电子设备及可读存储介质 |
CN113920238B (zh) * | 2021-12-14 | 2022-03-15 | 深圳市大头兄弟科技有限公司 | 一种二维目标图案的三维化方法及相关设备 |
CN118096985A (zh) * | 2023-07-11 | 2024-05-28 | 北京艾尔飞康航空技术有限公司 | 虚拟森林场景实时渲染方法及装置 |
CN117934681A (zh) * | 2023-12-12 | 2024-04-26 | 青矩技术股份有限公司 | 一种3d模型渲染方法、装置、设备及计算机可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005032080A (ja) * | 2003-07-08 | 2005-02-03 | Konami Co Ltd | 表示装置、表示方法、ならびに、プログラム |
CN101136107A (zh) * | 2006-08-29 | 2008-03-05 | 三星电子株式会社 | 减小功耗的细节级别值计算方法和介质以及3维渲染系统 |
CN108305328A (zh) * | 2018-02-08 | 2018-07-20 | 网易(杭州)网络有限公司 | 虚拟物体渲染方法、系统、介质和计算设备 |
CN109427088A (zh) * | 2017-08-18 | 2019-03-05 | 腾讯科技(深圳)有限公司 | 一种模拟光照的渲染方法及终端 |
CN111369655A (zh) * | 2020-03-02 | 2020-07-03 | 网易(杭州)网络有限公司 | 渲染方法、装置和终端设备 |
CN111583373A (zh) * | 2020-05-11 | 2020-08-25 | 上海米哈游天命科技有限公司 | 一种模型渲染方法、装置、设备及存储介质 |
CN112206517A (zh) * | 2020-10-22 | 2021-01-12 | 网易(杭州)网络有限公司 | 一种渲染方法、装置、存储介质及计算机设备 |
CN112206528A (zh) * | 2020-10-12 | 2021-01-12 | 网易(杭州)网络有限公司 | 植被模型渲染方法、装置、设备及存储介质 |
CN112270759A (zh) * | 2020-10-30 | 2021-01-26 | 北京字跳网络技术有限公司 | 基于图像的光效处理方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130028370A (ko) * | 2011-09-09 | 2013-03-19 | 삼성전자주식회사 | 영상 모델링 시스템에서 형상 정보, 재질 정보 및 조명 정보를 획득하는 장치 및 방법 |
KR20170034727A (ko) * | 2015-09-21 | 2017-03-29 | 삼성전자주식회사 | 그림자 정보 저장 방법 및 장치, 3d 렌더링 방법 및 장치 |
US10403040B2 (en) * | 2017-07-17 | 2019-09-03 | Adobe Inc. | Vector graphics rendering techniques |
EP3462418B1 (en) * | 2017-09-28 | 2024-06-19 | Siemens Healthineers AG | Method and apparatus for rendering material properties |
US10573067B1 (en) * | 2018-08-22 | 2020-02-25 | Sony Corporation | Digital 3D model rendering based on actual lighting conditions in a real environment |
-
2021
- 2021-03-12 CN CN202110272440.2A patent/CN112884873B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005032080A (ja) * | 2003-07-08 | 2005-02-03 | Konami Co Ltd | 表示装置、表示方法、ならびに、プログラム |
CN101136107A (zh) * | 2006-08-29 | 2008-03-05 | 三星电子株式会社 | 减小功耗的细节级别值计算方法和介质以及3维渲染系统 |
CN109427088A (zh) * | 2017-08-18 | 2019-03-05 | 腾讯科技(深圳)有限公司 | 一种模拟光照的渲染方法及终端 |
CN108305328A (zh) * | 2018-02-08 | 2018-07-20 | 网易(杭州)网络有限公司 | 虚拟物体渲染方法、系统、介质和计算设备 |
CN111369655A (zh) * | 2020-03-02 | 2020-07-03 | 网易(杭州)网络有限公司 | 渲染方法、装置和终端设备 |
CN111583373A (zh) * | 2020-05-11 | 2020-08-25 | 上海米哈游天命科技有限公司 | 一种模型渲染方法、装置、设备及存储介质 |
CN112206528A (zh) * | 2020-10-12 | 2021-01-12 | 网易(杭州)网络有限公司 | 植被模型渲染方法、装置、设备及存储介质 |
CN112206517A (zh) * | 2020-10-22 | 2021-01-12 | 网易(杭州)网络有限公司 | 一种渲染方法、装置、存储介质及计算机设备 |
CN112270759A (zh) * | 2020-10-30 | 2021-01-26 | 北京字跳网络技术有限公司 | 基于图像的光效处理方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
增强现实中虚实光照一致性研究综述;王珂;;光电技术应用(第06期);全文 * |
用于增强现实的光照估计研究综述;刘万奎;刘越;;计算机辅助设计与图形学学报(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112884873A (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109993823B (zh) | 阴影渲染方法、装置、终端及存储介质 | |
US20210225067A1 (en) | Game screen rendering method and apparatus, terminal, and storage medium | |
CN112884873B (zh) | 虚拟环境中虚拟物体的渲染方法、装置、设备及介质 | |
CN110276840B (zh) | 多虚拟角色的控制方法、装置、设备及存储介质 | |
CN112870707B (zh) | 虚拟场景中的虚拟物体展示方法、计算机设备及存储介质 | |
CN109685876B (zh) | 毛发渲染方法、装置、电子设备及存储介质 | |
CN112884874B (zh) | 在虚拟模型上贴花的方法、装置、设备及介质 | |
CN110880204B (zh) | 虚拟植被显示方法、装置、计算机设备及存储介质 | |
CN110033503B (zh) | 动画显示方法、装置、计算机设备及存储介质 | |
CN112907716B (zh) | 虚拟环境中的云朵渲染方法、装置、设备及存储介质 | |
WO2018209710A1 (zh) | 一种图像处理方法及装置 | |
CN112245926A (zh) | 虚拟地形的渲染方法、装置、设备及介质 | |
CN111784841B (zh) | 重建三维图像的方法、装置、电子设备及介质 | |
CN116672706B (zh) | 光照渲染方法、装置、终端和存储介质 | |
CN112750190B (zh) | 三维热力图生成方法、装置、设备及存储介质 | |
CN112950753B (zh) | 虚拟植物显示方法、装置、设备及存储介质 | |
CN117582661A (zh) | 虚拟模型渲染方法、装置、介质及设备 | |
CN116828207A (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN112717393B (zh) | 虚拟场景中的虚拟物件显示方法、装置、设备及存储介质 | |
CN113018865B (zh) | 攀爬线生成方法、装置、计算机设备及存储介质 | |
CN110335224B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN110201392B (zh) | 用户界面生成方法、装置和终端 | |
CN113058266B (zh) | 虚拟环境中场景字体的显示方法、装置、设备及介质 | |
CN113205582B (zh) | 烘焙贴图的生成和使用方法、装置、设备及介质 | |
CN117132700A (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 |