System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及模型渲染,尤其涉及一种叠加光遮挡的渲染方法、装置及相关产品。
技术介绍
1、在游戏开发和动画制作等场景中,叠加光是指除了主光源外照射虚拟对象的其他光源。真实世界中,射向物体的光在受到遮挡的情况下,应当在物体上投射出阴影。但是对于游戏开发和动画制作而言,遮挡阴影的计算往往对计算设备的性能产生较大的消耗。因此,对于许多移动设备上运行游戏中,为了保证设备性能,往往仅展示主光源的遮挡效果,去除了叠加光的遮挡计算。这导致叠加光照射到虚拟对象时,在应当出现阴影的位置出现了不自然的光斑。在业内,而这一问题被称为漏光问题。为了解决漏光问题,目前可以采用如下的两种方法:
2、一种方案是对于每盏叠加光,逐帧计算对应其光方向的空间坐标系下每个物体的最小深度并保存到该帧对应的一张render texture中。render texture(渲染纹理)是游戏引擎unity在运行时创建和更新的一种纹理。在计算到物体受到该盏叠加光的影响时,将物体坐标转换到光方向的空间坐标系中,再利用新坐标去采样对应的render texture来获得深度。如果物体深度比render texture中保存的该物体的深度大,则代表该物体被遮挡。但是这一方案逐帧计算遮挡每帧都需要计算刷新的关系,导致运算性能消耗十分高。并且每盏叠加光都会占据一张render texture,若叠加光的盏数较多,每帧读取的rendertexture过多会造成带宽占用高。高带宽意味着高功率消耗。因此,这一方案在移动设备上并不适用。
3、另一种方案是由美术人员手绘遮挡图
技术实现思路
1、本申请实施例提供了一种叠加光遮挡的渲染方法、装置及相关产品,旨在渲染出更加自然、准确的叠加光遮挡效果并减少对设备性能的消耗。
2、本申请第一方面提供了一种叠加光遮挡的渲染方法,包括:
3、获取虚拟对象所处环境中叠加光的方向信息和所述虚拟对象的模型上多个顶点的数据;其中,顶点的数据包含顶点遮挡信息的编码结果;
4、根据所述方向信息对所述编码结果进行解码,得到解码后的顶点遮挡信息,所述顶点遮挡信息为预先对所述顶点进行光线遮挡检测后得到;
5、根据所述多个顶点分别对应的所述解码后的顶点遮挡信息和所述叠加光的光强信息,得到对于所述虚拟对象的叠加光遮挡渲染数据。
6、本申请第二方面提供了一种叠加光遮挡的渲染装置,包括:
7、第一获取单元,用于获取虚拟对象所处环境中叠加光的方向信息;
8、第二获取单元,用于获取所述虚拟对象的模型上多个顶点的数据;其中,顶点的数据包含顶点遮挡信息的编码结果,所述顶点遮挡信息为预先对所述顶点进行光线遮挡检测后得到;
9、解码单元,用于根据所述方向信息对所述编码结果进行解码,得到解码后的顶点遮挡信息;
10、渲染单元,根据所述多个顶点分别对应的所述解码后的顶点遮挡信息和所述叠加光的光强信息,得到对于所述虚拟对象的叠加光遮挡渲染数据。
11、本申请第三方面提供了一种叠加光遮挡的渲染设备,所述设备包括处理器以及存储器:
12、所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
13、所述处理器用于根据所述程序代码中的指令执行第一方面提供的叠加光遮挡的渲染方法的步骤。
14、本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面提供的叠加光遮挡的渲染方法的步骤。
15、本申请第五方面提供了一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被叠加光遮挡的渲染设备执行时实现第一方面提供的叠加光遮挡的渲染方法的步骤。
16、从以上技术方案可以看出,本申请实施例具有以下优点:
17、本申请技术方案中预先对虚拟对象的顶点进行光线遮挡检测,得到顶点遮挡信息,使其处于该顶点的数据中。在实际需要渲染叠加光在虚拟对象的模型上的遮挡效果时,只要获取虚拟对象所处环境中叠加光的方向信息和模型上多个顶点的数据,逐个顶点地去利用叠加光的方向信息对顶点数据中保存的顶点遮挡信息的编码结果进行解码,便可以获得各个顶点的解码后的顶点遮挡信息。最后根据这些解码后的顶点遮挡信息和叠加光的光强信息得到对于虚拟对象的叠加光遮挡渲染数据,通过叠加光遮挡渲染数据便可以呈现出叠加光在虚拟对象上的遮挡效果。由于顶点遮挡信息是预先检测出并以编码的形式存储在顶点数据中,在渲染时只需要拿取顶点数据便可以相应解码,不需要逐帧读取纹理,因此能够节省对计算设备的性能消耗,在叠加光遮挡效果渲染呈现的同时保证了设备的高性能,更加适用于在移动设备上应用。此外,该渲染方案以模型顶点为基础,因此不受虚拟对象在其所处世界坐标系中的运动方向变化的影响。并且在该方案中也考虑到了叠加光方向的重要作用,以叠加光的方向信息解码顶点数据中的编码结果,使解码后的顶点遮挡信息在与叠加光光强共同形成的叠加光遮挡渲染数据。因此,该渲染方案能够展示更加自然、物理准确的叠加光遮挡效果,进一步提升用户(游戏玩家或动画观看者)的视觉体验。
本文档来自技高网...【技术保护点】
1.一种叠加光遮挡的渲染方法,其特征在于,包括:
2.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,所述根据所述方向信息对所述编码结果进行解码,得到解码后的顶点遮挡信息,包括:
3.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,所述环境中叠加光的数量为多盏,所述根据所述方向信息对所述编码结果进行解码,得到解码后的顶点遮挡信息,包括:
4.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,所述顶点遮挡信息的编码结果为利用球谐函数对所述顶点遮挡信息进行编码后得到的球谐系数;所述根据所述方向信息对所述编码结果进行解码,包括:
5.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,解码后的顶点遮挡信息为取值在[0,1]区间的遮挡值;所述根据所述多个顶点分别对应的所述解码后的顶点遮挡信息和所述叠加光的光强信息,得到对于所述虚拟对象的叠加光遮挡渲染数据,包括:
6.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,在获取所述虚拟对象的模型上多个顶点分别对应的顶点遮挡信息的编码结果之前,所述方法还包括:
...【技术特征摘要】
1.一种叠加光遮挡的渲染方法,其特征在于,包括:
2.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,所述根据所述方向信息对所述编码结果进行解码,得到解码后的顶点遮挡信息,包括:
3.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,所述环境中叠加光的数量为多盏,所述根据所述方向信息对所述编码结果进行解码,得到解码后的顶点遮挡信息,包括:
4.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,所述顶点遮挡信息的编码结果为利用球谐函数对所述顶点遮挡信息进行编码后得到的球谐系数;所述根据所述方向信息对所述编码结果进行解码,包括:
5.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,解码后的顶点遮挡信息为取值在[0,1]区间的遮挡值;所述根据所述多个顶点分别对应的所述解码后的顶点遮挡信息和所述叠加光的光强信息,得到对于所述虚拟对象的叠加光遮挡渲染数据,包括:
6.根据权利要求1所述的叠加光遮挡的渲染方法,其特征在于,在获取所述虚拟对象的模型上多个顶点分别对应的顶点遮挡信息的编码结果之前,所述方法...
【专利技术属性】
技术研发人员:利伟民,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。