环境光遮蔽效果的渲染方法、装置及电子设备与流程

文档序号:17470735发布日期:2019-04-20 05:48阅读:402来源:国知局
环境光遮蔽效果的渲染方法、装置及电子设备与流程

本公开涉及计算机图形技术领域,尤其涉及一种环境光遮蔽效果的渲染方法、装置及电子设备。



背景技术:

随着计算机图形技术的发展,用户对三维图形场景中三维图形的逼真度要求越来越高,尤其是希望在三维图形场景中实现光照/光影的逼真效果,以使三维图形场景能够近似地模拟与现实生活中一样的光照效果。

为此,环境光遮蔽(ao,ambientocclusion)技术由此而生,环境光遮蔽效果是用于描绘物体之间相交或者靠近时遮挡周围漫反射光线的效果,以此解决或者改善三维图形场景中缝隙、褶皱、墙角、角线以及其他细小物体等表现不清晰的问题,进而增强三维图形场景的层次感、真实感。

目前,为了能够模拟环境光遮蔽效果,通常的实现方式包括aomap(ambientocclusionmap,环境光遮蔽贴图)和ssao(screen-spaceambientocclusion,屏幕空间环境光遮蔽),但是上述两种方式不仅计算量较大,而且会占用较多的资源使得内存消耗过大,仍存在渲染效率不高的局限性。

由上可知,在保证环境光遮蔽效果的前提下,如何提高三维图形场景的渲染效率,以提升渲染性能仍亟待解决。



技术实现要素:

为了解决上述技术问题,本公开的一个目的在于提供一种环境光遮蔽效果的渲染方法、装置及电子设备。

其中,本公开所采用的技术方案为:

一种环境光遮蔽效果的渲染方法,包括:获取三维图形数据,所述三维图形数据用于描述三维图形场景中静止于地表的三维图形;采用离屏渲染技术由所述三维图形数据生成纹理贴图;将所述纹理贴图绘制在所述三维图形场景中地表与三维图形的衔接区域,并对静止于所述地表的三维图形进行渐变式渲染着色。

一种环境光遮蔽效果的渲染装置,包括:数据获取模块,用于获取三维图形数据,所述三维图形数据用于描述三维图形场景中静止于地表的三维图形;贴图生成模块,用于采用离屏渲染技术由所述三维图形数据生成纹理贴图;渲染模块,用于将所述纹理贴图绘制在所述三维图形场景中地表与三维图形的衔接区域,并对静止于所述地表的三维图形进行渐变式渲染着色。

一种电子设备,包括:处理器及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如上所述的环境光遮蔽效果的渲染方法。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的环境光遮蔽效果的渲染方法。

与现有技术相比,本公开具有以下有益效果:

通过离屏渲染技术由获取的三维图形数据生成纹理贴图,进而将纹理贴图绘制在三维图形场景中地表与三维图形的衔接区域,并对静止于地表的三维图形进行渐变式渲染着色,由此,将环境光遮蔽效果渲染在三维图形场景中地表与三维图形的衔接区域,即通过纹理贴图实现地表靠近三维图形底部的阴影效果,辅以渐变式渲染着色实现三维图形底部靠近地表的阴影效果,既实现了环境光遮蔽效果,且内存和性能开销极小,提高了三维图形场景的渲染效率,以此解决了现有技术中渲染效率较低的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并于说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的实施环境的示意图。

图2是根据一示例性实施例示出的一种客户端的硬件结构框图。

图3是根据一示例性实施例示出的一种环境光遮蔽效果的渲染方法的流程图。

图4是图3对应实施例中环境光遮蔽效果渲染的效果示意图。

图5是图3对应实施例中步骤330在一个实施例的流程图。

图6是图5对应实施例中三维图形在地表的投影视图的俯视效果示意图。

图7是图5对应实施例中经过模糊边缘处理的纹理贴图中三维图形的轮廓向外扩散的效果示意图。

图8是图5对应实施例中步骤333在一个实施例的流程图。

图9是图3对应实施例中步骤350在一个实施例的流程图。

图10是根据一示例性实施例示出的一种环境光遮蔽效果的渲染装置的框图。

图11是图10对应实施例中贴图生成模块730在一个实施例的框图。

图12是图11对应实施例中边缘处理单元733在一个实施例的框图。

图13是图10对应实施例中渲染模块750在一个实施例的框图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

如前所述,为了能够模拟环境光遮蔽效果,实现方式通常有两种:aomap和ssao。

其中,aomap会进行大量的离线处理,同时产生占用大量存储空间的环境光遮蔽贴图,由于计算量较大而往往应用在实时性要求不高且渲染面积较小的三维图形场景中。

ssao虽然渲染效率较aomap要高,但是计算量仍然较大,其性能依然无法满足渲染面积较大的三维图形场景。

为此,本公开特提出了一种环境光遮蔽效果的渲染方法,以极低的性能开销和极小的内存增加量,在三维图形场景中模拟出环境光遮蔽效果,不仅能够提高渲染效率,有效地提升了渲染性能,而且具有较好的实时性和通用性,能够适用于实时性要求较高且渲染面积较大的三维图形场景。

图1为上述环境光遮蔽效果的渲染方法所涉及的实施环境在一个实施例的示意图。该实施环境包括客户端100和服务端200。

其中,客户端100可以是智能手机、台式电脑、笔记本电脑、平板电脑或者其它可供三维图形场景展示的应用程序所运行的电子设备等等。

服务端200为客户端100提供用于展示三维图形场景的三维图形数据。

通过客户端100与服务端200的交互,对于客户端100而言,在获取到三维图形数据之后,便以此在三维图形场景中进行环境光遮蔽效果的渲染。

具体而言,通过离屏渲染技术由三维图形数据生成纹理贴图,进而将纹理贴图绘制在三维图形场景中地表与三维图形的衔接区域,并通过对静止于地表的三维图形进行渐变式渲染着色将三维图形与地表衔接。

由此,在三维图形场景中,尤其是在静止于地表的三维图形与地表之间,模拟出环境光遮蔽效果。

请参阅图2,图2是根据一示例性实施例示出的一种客户端的硬件结构框图。需要说明的是,该客户端100只是一个适配于本公开的示例,不能认为是提供了对本公开的使用范围的任何限制。该客户端100也不能解释为需要依赖于或者必须具有图2中示出的示例性的客户端100中的一个或者多个组件。

如图2所示,客户端100包括存储器101、存储控制器103、一个或多个(图中仅示出一个)处理器105、外设接口107、射频模块109、定位模块111、摄像模块113、音频模块115、触控屏幕117以及按键模块119。这些组件通过一条或多条通讯总线/信号线121相互通讯。

其中,存储器101可用于存储软件程序以及模块,如本公开各示例性实施例中的环境光遮蔽效果的渲染方法及装置所对应的程序指令及模块,处理器105通过运行存储在存储器101内的程序指令,从而执行各种功能以及数据处理,即实现上述环境光遮蔽效果的渲染方法。

存储器101作为资源存储的载体,可以是随机存储介质、例如高速随机存储器、非易失性存储器,如一个或多个磁性存储装置、闪存、或者其它固态存储器。存储方式可以是短暂存储或者永久存储。

外设接口107可以包括至少一有线或无线网络接口、至少一串并联转换接口、至少一输入输出接口以及至少一usb接口等等,用于将外部各种输入/输出装置耦合至存储器101以及处理器105,以实现与外部各种输入/输出装置的通信。

射频模块109用于收发电磁波,实现电磁波与电信号的相互转换,从而通过通讯网络与其他设备进行通讯。通信网络包括蜂窝式电话网、无线局域网或者城域网,上述通信网络可以使用各种通信标准、协议及技术。

定位模块111用于获取客户端100的当前所在的地理位置。定位模块111的实例包括但不限于全球卫星定位系统(gps)、基于无线局域网或者移动通信网的定位技术。

摄像模块113隶属于摄像头,用于拍摄图片或者视频。拍摄的图片或者视频可以存储至存储器101内,还可以通过射频模块109发送至上位机。

音频模块115向用户提供音频接口,其可包括一个或多个麦克风接口、一个或多个扬声器接口以及一个或多个耳机接口。通过音频接口与其它设备进行音频数据的交互。音频数据可以存储至存储器101内,还可以通过射频模块109发送。

触控屏幕117在客户端100与用户之间提供一个输入输出界面。具体地,用户可通过触控屏幕117进行输入操作,例如点击、触摸、滑动等手势操作,以使客户端100对该输入操作进行响应。客户端100则将文字、图片或者视频任意一种形式或者组合所形成的输出内容通过触控屏幕117向用户显示输出。

按键模块119包括至少一个按键,用以提供用户向客户端100进行输入的接口,用户可以通过按下不同的按键使客户端100执行不同的功能。例如,声音调节按键可供用户实现对客户端100播放的声音音量的调节。

可以理解,图2所示的结构仅为示意,客户端100还可包括比图2中所示更多或更少的组件,或者具有与图2所示不同的组件。

此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本公开,因此,实现本公开并不限于任何特定硬件电路、软件以及两者的组合。

请参阅图3,在一示例性实施例中,一种环境光遮蔽效果的渲染方法适用于图1所示实施环境的客户端100,客户端100可以具有如图2所示出的硬件结构。

该种环境光遮蔽效果的渲染方法可以由客户端100执行,可以包括以下步骤:

步骤310,获取三维图形数据。

其中,三维图形数据用于描述三维图形场景中静止于地表的三维图形。

首先应当说明的是,三维图形场景,是由各种类型的三维图形构成的虚拟环境,例如,地图场景,游戏场景等等。

其次,三维图形,构成三维图形场景的元素,并能够显示在三维图形场景中,包括地表、植被、建筑、人物、山川河流等等。

为了能够在三维图形场景中模拟环境光遮蔽效果,首先需要确定三维图形场景中都存在哪些三维图形,那么对于三维图形所存在的三维图形场景进行渲染时,才能够描绘出存在的三维图形之间相交或者靠近时遮挡周围漫反射光线的效果,即环境光遮蔽效果。

进一步地,本实施例中,环境光遮蔽效果尤指三维图形与地表之间相交时遮挡周围漫反射光线的效果,则三维图形尤指静止于地表的三维图形。相应地,三维图形场景尤指地图场景,和/或,基于位置服务(lbs,localbasedservice)的游戏场景。

举例来说,在lbs游戏场景中,三维图形包括停靠在岸边的船只,此时,环境光遮蔽效果至少包括水面靠近船只底部的阴影效果、以及船只底部靠近水面的阴影效果。

由此,在进行环境光遮蔽效果的渲染之前,需要获取三维图形数据,以此对三维图形场景中静止于地表的三维图形进行描述,方便于后续在三维图形与地表之间的相交处(即二者的衔接区域)进行渲染。

对于客户端而言,三维图形数据是通过与服务端交互获得的。举例说明如下,在地图场景中,服务端中预先存储了各个区域海量的三维图形数据,该些三维图形数据主要用于描述地图场景中静止于地表的各类型建筑。当客户端请求服务端进行指定位置服务时,将接收到服务端返回的与指定位置相关的三维图形数据。

步骤330,采用离屏渲染技术由三维图形数据生成纹理贴图。

如前所述,环境光遮蔽效果是在三维图形场景中地表与三维图形的衔接区域进行渲染所产生的效果,即,环境光遮蔽效果至少包括地表靠近三维图形底部的阴影效果、以及三维图形底部靠近地表的阴影效果。

基于此,本实施例中,根据三维图形数据获得纹理贴图,以通过纹理贴图来模拟光源所产生的自然阴影效果,进而方便于后续实现地表靠近三维图形底部的阴影效果。

具体地,对三维图形数据实施离屏渲染技术,生成纹理贴图。进一步地,离屏渲染技术包括但不限于:正交投影、模糊边缘处理等等。

更进一步地,离屏渲染技术可以在三维图形场景展示时实施,还可以离线实施,在此并不进行限定,以满足实时性要求不同的三维图形场景。例如,实时性要求较高的地图场景中,离屏渲染技术在三维图形场景展示时实施,也可以理解为在可供三维图形场景展示的地图类应用程序运行时实施。

步骤350,将纹理贴图绘制在三维图形场景中地表与三维图形的衔接区域,并对静止于地表的三维图形进行渐变式渲染着色。

在生成纹理贴图之后,便能够通过纹理贴图来实现地表与三维图形底部的阴影效果。

具体而言,在三维图形场景中,将纹理贴图绘制在地表与三维图形的衔接区域,进而通过纹理贴图渲染在地表上的效果来实现地表与三维图形底部的阴影效果,以此提高三维图形场景的逼真度。

此外,如前所述,环境光遮蔽效果还可以包括三维图形底部靠近地表的阴影效果,本实施例中,三维图形底部靠近地表的阴影效果是通过渐变式渲染着色实现的,进而达到三维图形与地表之间的无缝衔接,从而进一步地增强三维图形场景的层次感、真实感。

其中,渐变式渲染着色包括三维图形的颜色沿三维图形的高度方向由暗到明,逐渐变化至指定颜色的渲染着色过程,以此模拟出环境光由小到大的渐变过程。

进一步地,渐变式渲染着色还包括根据三维图形相邻侧面的颜色进行渲染着色调整过程,以此模拟出三维图形相邻侧面之间环境光的渐变过程。

由此,在纹理贴图绘制和渐变式渲染着色之后,便完成了三维图形场景中环境光遮蔽效果的渲染。

在一个具体实施例的地图场景中,当三维图形是楼宇时,如图4所示,环境光遮蔽效果体现在:地面靠近楼宇底部的阴影效果401和楼宇底部靠近地面的阴影效果402。其中,环境光遮蔽效果的渲染过程包括:将纹理贴图绘制在地面与楼宇的衔接区域,以渲染形成阴影效果401;对楼宇进行渐变式渲染着色,以渲染形成阴影效果402。

通过如上所述的过程,实现了三维图形场景中模拟环境光遮蔽效果,且内存和性能开销极小,有效地提高了三维图形场景的渲染效率,避免了现有技术中存在的渲染效率不高的局限性。

此外,相较于aomap和ssao,由于具有极低的性能开销,有利于渲染性能的提升,进而有利于实现极大的环境光遮蔽效果提升,使得上述技术方案尤其适用于实时性要求较高且渲染面积较大的三维图形场景,例如地图场景、lbs游戏场景。

请参阅图5,在一示例性实施例中,步骤330可以包括以下步骤:

步骤331,通过正交投影对三维图形数据描述的三维图形进行离屏渲染,得到三维图形在地表的投影视图。

由于纹理贴图是用于实现地表靠近三维图形底部阴影效果的,其将被绘制在三维图形场景中地表与三维图形的衔接区域,由此,纹理贴图需要能够反映出三维图形在地表的投影效果,以利于后续进行地面上阴影效果的渲染。

具体而言,首先按照预设网格数量划分三维图形数据,形成若干个网格块,并假设z轴朝上,通过正交投影,对每一个网格块中所描述的三维图形进行自上而下的离屏渲染,以此得到三维图形在地表的投影视图,该投影视图即反映了三维图形在地表的俯视效果。

其中,预设网格数量可以根据实际的应用场景进行灵活地调整,在此并未加以限定。例如,地图场景中,预设网格数量为8096×8096墨卡托单位。

进一步地,应当理解,投影视图往往存在较为明显的锯齿状边缘,这属于光栅化正常现象,尤其是在放大的时候尤为明显。为此,在进行离屏渲染时,将通过抗锯齿处理来消除投影视图中锯齿状边缘的问题。抗锯齿处理包括按照预设大尺寸生成投影视图。该预设大尺寸可以根据实际的应用场景灵活地设定,在此并不进行限定。

值得一提的是,投影视图的尺寸越大,抗锯齿效果越好,然而,这会带来两方面的性能开销:

1)、尺寸的增加意味着图片大小的增加,进而造成离屏渲染的图形处理器(gpu,graphicsprocessionunit)开销也随之增加,此外,还将导致后续gpu计算开销的增加;

2)、图片大小的增加将使得显存占用增加,并且在进行实时渲染时随之增加的是渲染开销。

另外说明的是,采样性能通常随着图片大小的增加而降低,换而言之,图片大小的增加往往意味着采样性能的下降。

由此,预设大尺寸的设定需要在性能开销与抗锯齿效果之间进行平衡。例如,地图场景中,预设大尺寸为512×512像素单位。

在一个具体实施例的地图场景中,当三维图形是楼宇时,楼宇在地面的投影视图反映了楼宇在地面的俯视效果,如图6所示。

基于上述,三维图形在地表的投影视图即可视为原始的纹理贴图。

步骤333,对投影视图进行模糊边缘处理,得到纹理贴图。

可以理解,如果原始的纹理贴图,即投影视图中三维图形的轮廓与三维图形场景中三维图形底部紧密贴合,那么在进行纹理贴图绘制时,投影视图中三维图形的轮廓将被三维图形场景中三维图形底部完全遮挡。

因此,本实施例中,在得到原始的纹理贴图,即投影视图之后,需要对投影视图进行模糊边缘处理,以使处理得到的纹理贴图中三维图形的轮廓能够向外扩散,进而避免在进行纹理贴图绘制时被三维图形场景中的三维图形底部完全遮挡。

进一步地,模糊边缘处理包括高斯模糊、线性缩放等。

其中,高斯模糊可以由着色器在gpu中完成,并按照投影视图的横轴方向和/或纵轴方向进行横向模糊和/或纵向模糊。

线性缩放包括将预设大尺寸的投影视图线性缩放得到预设小尺寸的纹理贴图,以此降低渲染开销,进而有利于提高渲染效率。该预设小尺寸可以根据实际的应用场景灵活地设定,在此并不加以限定。

需要说明的是,图片的缩小有可能损失三维图形的轮廓信息,由此,预设小尺寸的设定需要在性能开销与轮廓信息损失之间进行平衡。例如,地图场景中,预设小尺寸为256×256像素单位,充分地保证了各种机型的客户端都能够高效地渲染该尺寸的纹理贴图,进而有利于提升渲染性能。

更进一步地,由于高斯模糊中使用clamp模式对投影视图中像素点进行采样,即超出三维图形轮廓边缘的采样会重复采样其轮廓边缘的像素点,这将导致三维图形的轮廓边缘在高斯模糊时颜色加深。为此,模糊边缘处理还包括边缘预处理,以在进行模糊边缘处理时,将按照边缘预处理方式来避免三维图形的轮廓边缘在高斯模糊时颜色加深的问题。边缘预处理方式可以是预先设置离屏渲染的区域范围,使得三维图形的轮廓边缘部分不会被渲染,还可以是预先设置像素点采样范围,使得邻近三维图形轮廓边缘的像素点不进行采样。

在一个具体实施例的地图场景中,当三维图形是楼宇时,楼宇在地面的投影视图经过模糊边缘处理之后,所获得的纹理贴图中楼宇轮廓向外扩散的效果如图7所示。

在上述实施例的配合下,实现了地表靠近三维图形底部的阴影效果,为后续实现环境光遮蔽效果提供了基础。

进一步地,请参阅图8,在一示例性实施例中,步骤333可以包括以下步骤:

步骤3331,对投影视图进行第一次高斯模糊,得到中间贴图。

其中,第一次高斯模糊由着色器在gpu中完成,并按照投影视图的横轴方向和纵轴方向分别先后各进行一次横向模糊和纵向模糊,以此提高第一次高斯模糊的计算效率和精准度。

进一步地,第一次高斯模糊是按照预设高斯模糊小半径实施的,该预设高斯模糊小半径可以根据实际的应用场景灵活地调整,例如,地图场景中,该预设高斯模糊小半径为3个像素点。

步骤3333,线性缩放中间贴图获得预设尺寸贴图。

如前所述,为了实现抗锯齿效果,中间贴图的尺寸对应于投影视图的尺寸,在离屏渲染时被设置为预设大尺寸,由此,为了降低渲染开销,提高渲染效率,并提升采样性能,将对中间贴图进行线性缩放。

在一个具体实施例的地图场景中,中间贴图的尺寸为512×512像素单位,线性缩放之后,预设尺寸贴图的尺寸为256×256像素单位,即预设尺寸为256×256像素单位。该预设尺寸不仅可以使相应尺寸贴图达到接近1024×1024尺寸贴图的抗锯齿效果,而且充分地保证了各种机型的客户端都能够高效地渲染该相应尺寸贴图,进而有利于提升渲染性能。

值得一提的是,第一次高斯模糊中的纵向模糊和线性缩放可以合并,也就是说,对于gpu而言,以同步方式,在同一时间内通过执行同一条指令来完成该两个步骤,以此提高gpu的处理效率,进一步地有利于提高渲染效率。

步骤3335,按照预设扩散距离对预设尺寸贴图进行第二次高斯模糊,形成纹理贴图。

首先说明的是,预设扩散距离是按照用户期望纹理贴图中三维图形的轮廓向外扩散的距离设定的。

其次,第二次高斯模糊是按照预设高斯模糊大半径实施的,该预设高斯模糊大半径等于预设扩散距离,且大于第一次高斯模糊中的预设高斯模糊小半径。

由此,通过前后两次高斯模糊和一次线性缩放便由投影视图形成纹理贴图。

在上述实施例的作用下,通过模糊边缘处理进一步地增强了抗锯齿效果,充分地保证了环境光遮蔽效果,并且有效地提升了渲染性能,针对离线渲染和实时渲染而言,性能分别至少提升4倍和16倍以上。

请参阅图9,在一示例性实施例中,步骤350可以包括以下步骤:

步骤351,将三维图形底部的颜色设置为三维图形与地表衔接区域在纹理贴图中的颜色。

由于纹理贴图被用于实现地表靠近三维图形底部的阴影效果,也就是说,三维图形与地表衔接区域在纹理贴图中的颜色即反映了地表靠近三维图形底部的阴影效果。

应当理解,为了使得三维图形能够与地表之间进行无缝衔接,三维图形底部的颜色也应当能够反映地表靠近三维图形底部的阴影效果,即,三维图形与地表衔接区域在纹理贴图中的颜色即为三维图形底部的颜色,亦即,三维图形底部的颜色反映了三维图形底部靠近地表的阴影效果。

步骤353,沿三维图形的高度方向,在预设渐变高度范围内将三维图形的颜色由三维图形底部的颜色逐渐变化至三维图形的指定颜色。

举例来说,三维图形的颜色逐渐变化的过程为:假设预设渐变高度为h,三维图形的高度为y,则y由0上升至h的过程中,三维图形的颜色逐渐由三维图形底部的颜色线性变化至三维图形的指定颜色。

其中,线性变化可以通过线性插值的方式来实现。

步骤355,在预设渐变高度范围之外将三维图像的颜色设置为三维图形的指定颜色。

仍以上述例子进行说明,假设三维图形的指定高度为y,则y由h继续上升至y的过程中,三维图形的颜色始终保持三维图形的指定颜色不变。

由此,便实现了沿三维图像的高度方向对三维图形整体的渐变式渲染着色过程。

在上述实施例的作用下,实现了三维图形底部靠近地表的阴影效果,达到了三维图形与地表无缝衔接的衔接效果,充分地保证了环境光遮蔽效果。

此外,按照高度执行渐变式渲染着色只需要引入较小的gpu计算量,极大地提升了渲染效率。

进一步地,在一示例性实施例中,步骤350还可以包括以下步骤:

根据三维图形相邻侧面之间的夹角对三维图形相邻侧面的颜色进行渲染着色调整。

可以理解,在进行了三维图形的渐变式渲染着色之后,三维图形的任意侧面沿三维图形高度方向的颜色变化是相同的。为了提升环境光遮蔽效果,还需要增加三维图形相邻侧面之间的环境光影响。

也就是说,三维图形各相邻侧面之间的夹角不同,各相邻侧面在环境光影响下所形成的阴影效果也是不同的,进而使得三维图形各相邻侧面沿其宽度方向的颜色变化也不尽相同。

举例说明如下,三维图形包括首尾相连的侧面一、侧面二和侧面三,即,侧面一与侧面二相邻,侧面二与侧面三相邻,侧面三与侧面一相邻。按照侧面一与侧面二夹角为180度时保持二者颜色相同,侧面一与侧面二夹角为0度时令二者颜色相反的原则,分别对侧面一与侧面二的颜色进行渲染着色调整。

当然,在其他实施例中,渲染着色调整还将通过三角形拆分来实现。

在一示例性实施例中,步骤350之后,如上所述的方法还可以包括以下步骤:

存储三维图形场景中生成的纹理贴图,以根据存储的纹理贴图在三维图形场景中执行后一次的环境光遮蔽效果渲染。

应当理解,三维图形场景可以连续变化,即其中静止于地表的三维图形连续地发生了变化,例如,楼宇消失于可实时变化的地图场景。针对同一个三维图形场景,其中静止于地表的三维图形是固定不变的,由此生成的纹理贴图也是相同的,然而,为了渲染出不同的环境光遮蔽效果,在同一个三维图像场景中可以执行多次环境光遮蔽效果渲染。

基于此,对于同一个三维图形场景而言,仅生成一次纹理贴图,并以该纹理贴图作为后续多次的环境光遮蔽效果渲染的基础。

具体地,将三维图像场景中生成的纹理贴图保存至存储空间,以便于后续进行环境光遮蔽效果渲染时使用。

相应地,如上所述的方法还可以包括以下步骤:

当三维图形场景发生了变化,则对存储的纹理贴图进行清除处理。

由于三维图形场景一旦发生了变化,通常较长时间内都不会重新切换回来,为此,将根据三维图形场景的变化情况,及时地清除与该三维图形场景相关的纹理贴图。

当然,在其他实施例中,纹理贴图的清除处理也可以是定期进行,以此保证存储空间较高的利用率。

在上述实施例的作用下,通过纹理贴图的存储和清除,既有利于提高渲染效率,同时不会占用大量的存储空间。

下述为本公开装置实施例,可以用于执行本公开所涉及的环境光遮蔽效果的渲染方法。对于本公开装置实施例中未披露的细节,请参照本公开所涉及的环境光遮蔽效果的渲染方法实施例。

请参阅图10,在一示例性实施例中,一种环境光遮蔽效果的渲染装置700应用于客户端,包括但不限于:数据获取模块710、贴图生成模块730和渲染模块750。

其中,数据获取模块710用于获取三维图形数据,三维图形数据用于描述三维图形场景中静止于地表的三维图形。

贴图生成模块730用于采用离屏渲染技术由三维图形数据生成纹理贴图。

渲染模块750用于将纹理贴图绘制在三维图形场景中地表与三维图形的衔接区域,并对静止于地表的三维图形进行渐变式渲染着色。

请参阅图11,在一示例性实施例中,贴图生成模块730包括但不限于:正交投影单元731和边缘处理单元733。

其中,正交投影单元731用于通过正交投影对三维图形数据描述的三维图形进行离屏渲染,得到三维图形在地表的投影视图。

边缘处理单元733用于对投影视图进行模糊边缘处理,得到纹理贴图。

请参阅图12,在一示例性实施例中,边缘处理单元733包括但不限于:第一高斯模糊单元7331、线性缩放单元7333和第二高斯模糊单元7335。

其中,第一高斯模糊单元7331用于对投影视图进行第一次高斯模糊,得到中间贴图。

线性缩放单元7333用于线性缩放中间贴图获得预设尺寸贴图。

第二高斯模糊单元7335用于按照预设扩散距离对预设尺寸贴图进行第二次高斯模糊,形成纹理贴图。

请参阅图13,在一示例性实施例中,渲染模块750包括但不限于:第一颜色设置单元751、颜色渐变单元753和第二颜色设置单元755。

其中,第一颜色设置单元751用于将三维图形底部的颜色设置为三维图形与地表衔接区域在纹理贴图中的颜色。

颜色渐变单元753用于沿三维图形的高度方向,在预设渐变高度范围内将三维图形的颜色由三维图形底部的颜色逐渐变化至三维图形的指定颜色。

第二颜色设置单元755用于在预设渐变高度范围之外将三维图像的颜色设置为三维图形的指定颜色。

进一步地,在一示例性实施例中,渲染模块750还包括但不限于:侧面渲染单元。

其中,侧面渲染单元用于根据三维图形相邻侧面之间的夹角对三维图形相邻侧面的颜色进行渲染着色调整。

在一示例性实施例中,如上所述的装置700还包括但不限于:贴图存储模块。

其中,贴图存储模块用于存储三维图形场景中生成的纹理贴图,以根据存储的纹理贴图在三维图形场景中执行后一次的环境光遮蔽效果渲染。

相应地,如上所述的装置700还包括但不限于:贴图清除模块。

其中,贴图清除模块用于当三维图形场景发生了变化,则对存储的纹理贴图进行清除处理。

需要说明的是,上述实施例所提供的环境光遮蔽效果的渲染装置在进行三维图像场景的渲染时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即环境光遮蔽效果的渲染装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。

另外,上述实施例所提供的环境光遮蔽效果的渲染装置与环境光遮蔽效果的渲染方法的实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。

在一示例性实施例中,一种电子设备,包括但不限于处理器及存储器。

其中,存储器上存储有计算机可读指令,该计算机可读指令被处理器执行时实现如上所述的各实施例中的环境光遮蔽效果的渲染方法。

在一示例性实施例中,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的各实施例中的环境光遮蔽效果的渲染方法。

上述内容,仅为本公开的较佳示例性实施例,并非用于限制本公开的实施方案,本领域普通技术人员根据本公开的主要构思和精神,可以十分方便地进行相应的变通或修改,故本公开的保护范围应以权利要求书所要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1