CN112819941B - 渲染水体面的方法、装置、设备和计算机可读存储介质 - Google Patents
渲染水体面的方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112819941B CN112819941B CN202110247001.6A CN202110247001A CN112819941B CN 112819941 B CN112819941 B CN 112819941B CN 202110247001 A CN202110247001 A CN 202110247001A CN 112819941 B CN112819941 B CN 112819941B
- Authority
- CN
- China
- Prior art keywords
- light
- surface model
- water surface
- parameter
- light effect
- 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
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 title claims abstract description 289
- 238000009877 rendering Methods 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 230000001795 light effect Effects 0.000 claims abstract description 173
- 230000000694 effects Effects 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 20
- 239000013598 vector Substances 0.000 claims description 70
- 238000005286 illumination Methods 0.000 claims description 67
- 230000006870 function Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 19
- 238000009499 grossing Methods 0.000 claims description 12
- 239000000463 material Substances 0.000 claims description 4
- 230000003631 expected effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000007613 environmental effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
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/506—Illumination models
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及计算机图形学领域,提供了渲染水体面的方法、装置、设备和计算机可读存储介质,以减少对计算资源的消耗,并达到预期的效果。所述方法包括:创建水体面模型;获取水体面模型于高光下对应的第一光效参数;获取水体面模型于模拟点光源下对应的第二光效参数;将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效;采用平滑阶梯函数对叠加光效对应的第三光效参数进行处理,得到目标光效参数;基于目标光效参数对水体面模型进行渲染,以得到高光水体面模型。本申请的技术方案减小了计算资源的消耗,能够形成线状的风格化高光,更加真实地反映真实场景下水体面的高光效果。
Description
技术领域
本发明涉及计算机图形学领域,特别涉及一种渲染水体面的方法、装置、设备和计算机可读存储介质。
背景技术
所谓高光,是指光源照射到物体经反射后入到人眼时,物体上最亮的那个点,因此,高光不是光,而是物体上最亮的部分。从计算机图形学角度,高光是画面色调最亮的一个点,表现的是物体直接反射光源的部分,多见于质感比较光滑的物体。例如,在游戏场景,海面、湖面、河面等水面,其浪花的起伏常常呈现一些高光,而这些场景中的太阳的高光同时具备反射和折射的效果,甚至还有阳光的透射效果。
现有的渲染水体面的方法,主要是基于物理的渲染(Physically BasedRendering,PBR),结合水体面二次渲染绘制天空球这种方式进行。所谓PBR,不是单指一种渲染方案,而是在不同程度上都基于与现实世界的物理原理更相符的基本理论所构成的渲染技术的集合。虽然与Phong、Blinn-Phong等光照算法相比,PBR的方式总体上使得对水体面高光渲染的效果看上去要更真实一些。然而,这种“真实”的效果(PBR仍然只是对基于物理原理的现实世界的一种近似,并非完全真实)是以计算资源的巨量消耗作为代价的,并且,渲染后的结果更多的是点状高光。
综上,现有的渲染水体面的方法不仅消耗资源,而且效果也差强人意。
发明内容
本申请提供一种渲染水体面的方法、装置、设备和计算机可读存储介质,以减少对计算资源的消耗,并达到预期的效果。
一方面,本申请提供了一种渲染水体面的方法,包括:
创建水体面模型;
获取所述水体面模型于高光下对应的第一光效参数;
获取所述水体面模型于模拟点光源下对应的第二光效参数;
将所述第一光效参数对应的光效和所述第二光效参数对应的光效进行叠加,得到叠加光效;
利用平滑阶梯函数对所述叠加光效对应的第三光效参数进行处理,得到目标光效参数;
基于所述目标光效参数对所述水体面模型进行渲染,以得到高光水体面模型。
可选地,所述创建水体面模型,包括:获取所述水体面模型的漫反射贴图和法线贴图中待处理的目标像素点;根据预贴图和所述目标像素点对应的法线方向参数,确定所述目标像素点的颜色,所述预贴图用于表示曲率与色带之间的对应关系,所述法线方向参数用于表示所述目标像素点在世界空间坐标系下的法线方向;采用由所述目标像素点的颜色确定的目标像素点的渲染色对所述目标像素点进行渲染,以得到所述水体面模型。
可选地,所述根据预贴图和所述目标像素点对应的法线方向参数,确定所述目标像素点的颜色,包括:根据明部颜色参数、暗部颜色参数、所述水体面模型明部和暗部范围、明暗交界线位置参数、所述法线方向参数和光源方向参数,确定所述目标像素点的颜色,所述光源方向参数用于表示在渲染所述水体面模型时采用的预设光源的光源方向,所述明部颜色参数用于表示所述水体面模型明部范围上的第一颜色,所述暗部颜色参数用于表示所述水体面模型暗部范围上的第二颜色,所述第一颜色的亮度高于所述第二颜色的亮度,所述明暗交界线位置参数用于表示所述水体面模型的明部和暗部交界线位置。
可选地,所述获取所述水体面模型于高光下对应的第一光效参数,包括:根据光照方向、视线向量和所述水体面模型顶点的法向量,采用phong光照模型计算所述水体面模型中高光分量spec;将所述水体面模型中高光分量specspec与预设高光强度specularStrength和光照颜色lightColor相乘后,得到所述水体面模型于高光下对应的第一光效参数。
可选地,所述获取所述水体面模型于高光下对应的第一光效参数,包括:根据光照方向、视线向量和所述水体面模型顶点的法向量,采用phong光照模型计算所述水体面模型中高光分量spec;使用光照贴图G通道与顶点颜色的G通道的乘积对所述水体面模型中高光分量spec进行相对于标准值的调整,根据所述调整之后的高光分量确定所述水体面模型于高光下对应的第一光效参数。
可选地,所述获取所述水体面模型于模拟点光源下对应的第二光效参数,包括:对Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)进行修改,所述Cspecular为反射后的光照强度,所述Clight为光源光照强度,所述Mspecular为材质反射系数,所述向量n为法线方向单位向量,所述向量l为取反的射线的单位向量;在上下左右前后六个方向各引出一条射线以检测相交,当射线检测到接触所述水体面模型时获取相交点位置,在所述相交点位置生成模拟点光源,按照所述Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)得到所述模拟点光源的光照强度;根据射线的单位向量与法线方向单位向量,得到反射光线方向,从所述反射光线方向引出一条反射射线,再次生成所述模拟点光源,所述模拟点光源至所述相交点之间的距离作为所述水体面模型于模拟点光源下对应的第二光效参数。
可选地,所述将所述第一光效参数对应的光效和所述第二光效参数对应的光效进行叠加,得到叠加光效,包括:将所述第一光效参数与所述第二光效参数相乘,以使所述模拟点光源对所述水体面模型的高光部分形成遮罩。
可选地,所述基于所述目标光效参数对所述水体面模型进行渲染,以得到高光水体面模型之后,所述方法还包括:根据环境贴图或反射贴图获取环境光照射至所述水体面模型后反射时反射光的颜色信息;基于所述高光水体面模型的透明度、所述高光水体面模型中高光的R通道值、所述反射光的颜色信息以及预设透明度调节值,调整所述高光水体面模型的透明度;将所述高光水体面模型的基本颜色、所述模拟点光源下经所述预设透明度调节值调整后所述高光水体面模型的高光效果与经所述预设透明度调节值调整后反射光的颜色信息相加。
另一方面,本申请提供了一种渲染水体面的装置,包括:
模型创建模块,用于创建水体面模型;
第一获取模块,用于获取所述水体面模型于高光下对应的第一光效参数;
第三获取模块,用于获取所述水体面模型于模拟点光源下对应的第二光效参数;
光效叠加模块,用于将所述第一光效参数对应的光效和所述第二光效参数对应的光效进行叠加,得到叠加光效;
平滑模块,用于采用平滑阶梯函数对所述叠加光效对应的第三光效参数进行处理,得到目标光效参数;
映射模块,用于基于所述目标光效参数对所述水体面模型进行渲染,以得到高光水体面模型。
第三方面,本申请提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的渲染水体面的方法中的步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的渲染水体面的方法中的步骤。
从上述本申请提供的技术方案可知,一方面,本申请的技术方案是创建水体面模型,在获取水体面模型于高光下对应的第一光效参数和水体面模型于模拟点光源下对应的第二光效参数后,再将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效,由于摒弃了PBR的方案,因此,与现有技术相比,本申请的技术方案大幅度减小了计算资源的消耗;另一方面,采用平滑阶梯函数对叠加光效对应的第三光效参数进行处理,得到目标光效参数,以使水体面模型的边缘变硬,能够形成线状的风格化高光,更加真实地反映真实场景下水体面的高光效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的渲染水体面的方法的流程图;
图2是本申请实施例提供的水体面模型中高光的颜色效果示意图;
图3是本申请实施例提供的将水体面模型中高光的颜色与点光源-模型距离相乘、得到的点光源下水体面模型的高光效果示意图;
图4是本申请实施例提供的根据环境贴图或反射贴图来模拟反射效果的示意图;
图5本申请实施例提供的将水体面模型的基本颜色与已调节高光和反射效果透明度叠加后的水体面模型的效果示意图;
图6是本申请实施例提供的渲染水体面的装置的结构示意图;
图7是本申请另一实施例提供的渲染水体面的装置的结构示意图;
图8是本申请实施例提供的设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。
本申请提出了一种渲染水体面的方法,如附图1所示,主要包括步骤S101至S106,详述如下:
步骤S101:创建水体面模型。
在本申请实施例中,水体面模型是关于江、河、湖、海等自然水体或人工水体(例如,喷泉等)的水面的模型。可以基于漫反射贴图和法线贴图来创建一个水体面模型,其实现方式与纹理贴图类似,主要是将贴图上像素的颜色映射至水体面模型上相应的位置。需要说明的是,此处基于漫反射贴图和法线贴图创建的水体面模型,并不包含高光,即基于漫反射贴图和法线贴图创建的水体面模型只包含基本颜色,并不包含反射等光参数。
作为本申请一个实施例,创建水体面模型可通过步骤S1011至步骤S1013实现,说明如下:
步骤S1011:获取水体面模型的漫反射贴图和法线贴图中待处理的目标像素点。
漫反射贴图和法线贴图可以理解为游戏中的一种贴图资源,其中,漫反射贴图可以理解为在游戏中表现出物体表面的反射和表面颜色,换言之,漫反射贴图可以表现出物体被光照射到而显出的颜色和强度,而法线贴图可以理解为定义一个表面的倾斜度或者法线,法线贴图可以将空间坐标的参数(X,Y,Z)记录在像素(R,G,B)中。在本申请实施中,水体面模型的漫反射贴图和法线贴图等贴图可以事先制作并存储于贴图数据库,贴图数据库中包含贴图及贴图与模型类型的对应关系。因此,可以从贴图数据库中查找与水体面模型的类型对应的漫反射贴图和法线贴图。这些漫反射贴图和法线贴图可以是获取所需的各角度打光拍摄的目标图片,然后分别对各个图片进行预处理,生成漫反射贴图和法线贴图。例如,对于漫反射贴图,可以基于YUV颜色空间明亮度对单幅样本材质图像进行高光分离,读取镜面反射系数,计算生成得到原始明暗图、原始颜色图镜面反射图,即,计算输入图像的原始明暗图Y以及原始颜色图U、V;读取镜面反射系数ρ;设置所有像素的明暗值为常数,并据此计算镜面反射贴图;通过原始RGB图像计算得到镜面反射贴图,进一步计算漫反射贴图,而对于法线贴图,可以使用标准差将原始图像空间明亮度处理为标准正态分布,读取法向系数,计算并生成法向图,即,读取图像原始明暗图;将图像原始明暗图进行处理得到新的标准化明暗图;对标准化明暗图进行缩放处理,并根据标准化明暗图每个像素值及其周边像素的差值,得到法线贴图。
需要说明的是,待处理的目标像素点是水体面模型的漫反射贴图和法线贴图中任意一个将要映射至水体面模型的像素点。
步骤S1012:根据预贴图和目标像素点对应的法线方向参数,确定目标像素点的颜色其中,预贴图用于表示曲率与色带之间的对应关系,法线方向参数用于表示目标像素点在世界空间坐标系下的法线方向。
在本申请实施例中,预贴图技术可以使用一个方形贴图,通过曲率数据以及兰伯特光照计算得到的数据结果进行一一对应的映射,以得到次表面散射的光照的颜色,而根据预贴图和目标像素点对应的法线方向参数所确定的目标像素点的颜色,可用于对水体面模型进行渲染。具体地,根据预贴图和目标像素点对应的法线方向参数,确定目标像素点的颜色可以是:根据明部颜色参数、暗部颜色参数、水体面模型明部和暗部范围参数、明暗交界线位置参数、法线方向参数和光源方向参数,确定目标像素点的颜色,其中,光源方向参数用于表示在渲染水体面模型时采用的预设光源的光源方向。在本申请实施例中,预贴图实际由某个确定的函数实现,其输入参数包括明部颜色参数、暗部颜色参数、范围参数以及明暗交界线位置参数,实现预贴图的函数用于根据明部颜色参数、暗部颜色参数、水体面模型明部和暗部范围参数以及明暗交界线位置参数模拟预贴图,其中,水体面模型明部和暗部范围参数用于表示水体面模型的明部范围和水体面模型的暗部范围,明部颜色参数用于表示水体面模型的明部范围上的第一颜色,暗部颜色参数用于表示水体面模型的暗部范围上的第二颜色,第一颜色的亮度高于第二颜色的亮度,明暗交界线位置参数用于表示水体面模型的明部和暗部交界线位置。
步骤S1013:采用由目标像素点的颜色确定的目标像素点的渲染色对目标像素点进行渲染,以得到水体面模型。
具体地,可以由明部颜色参数即水体面模型的明部范围上的第一颜色以及暗部颜色参数即水体面模型的暗部范围上的第二颜色确定的目标像素点的渲染色,对目标像素点进行渲染,以得到水体面模型。
步骤S102:获取水体面模型于高光下对应的第一光效参数。
在本申请一个实施例中,获取水体面模型于高光下对应的第一光效参数可以通过步骤S1021和步骤S1022实现,说明如下:
步骤S1021:根据光照方向、视线向量和水体面模型顶点的法向量,采用phong光照模型计算水体面模型中高光分量spec。
在采用phong光照模型计算水体面模型中高光的颜色时,光照方向、视线向量和水体面模型顶点的法向量是三个必要参量,其中,光照方向定义为光源位置向量与水体面模型片段位置向量之间的向量差,即,若光源位置向量采用lightPos表示,水体面模型片段位置向量采用FragPos表示,而光照方向采用lightDir表示,则lightDir=lightPos-FragPos。视线向量定义为虚拟摄像机位置即视点位置向量与水体面模型片段位置向量之间的向量差,即,若视点位置向量采用viewPos表示,水体面模型片段位置向量仍采用前述的FragPos表示,而视线向量采用viewDir表示,则viewDir=viewPos-FragPos。至于法向量normal,其定义为一个垂直于顶点表面的向量。然而,由于顶点本身并没有表面(它只是空间中一个独立的点),可以利用它周围的顶点来计算出这个顶点的表面。例如,使用叉乘对立方体所有的顶点计算法向量,并且,由于3D立方体不是一个复杂的形状,因此,可以简单地将法线数据添加到顶点数据中。
在得到光照方向lightDir、视线向量viewDir和法向量normal之后,对这些向量归一化,即采用归一化函数normalize(),分别对光照方向lightDir、视线向量viewDir和法向量normal进行归一化,得到相应的归一化光照方向L、归一化视线向量V和归一化法向量N,即,L=normalize(lightPos-FragPos)、V=normalize(viewPos-FragPos)和N=normalize(normal),与此同时,对也对L与V之和归一化,得到中间向量H,即H=normalize(L+V);进一步,计算归一化法向量N与中间向量H的点乘,即使用点乘函数dot()得到dot(H,N)。一般地,负数颜色的光照没有意义,因此,需要避免出现负数颜色的光照,方法是取dot(H,N)和0中的较大值,即max(dot(H,N),0)。然后,使用x的y次幂函数pow(x,y)=xy来计算max(dot(H,N),0)的32次幂,即pow(max(dot(H,N),0),32),此处,32是高光的反光度(Shininess),其属性为一个物体的反光度越高,反射光的能力越强,散射得越少,高光点就会越小。同样也是考虑到负数颜色的光照没有意义,此处,再次对pow(max(dot(H,N),0),32)和0中取其较大值,即max(pow(max(dot(H,N),0),32),0),至此,得到水体面模型中高光分量spec=max(pow(max(dot(H,N),0),32),0)。
步骤S1022:将水体面模型中高光分量spec与预设高光强度specularStrength和光照颜色lightColor相乘后,得到水体面模型于高光下对应的第一光效参数。
在计算水体面模型中高光的颜色时,可以定义一个称为镜面强度(SpecularIntensity)的变量specularStrength即预设高光强度,以便给镜面高光一个中等亮度颜色,使其不要产生过度的影响。将spec与预设高光强度specularStrength和光照颜色lightColor相乘后,得到水体面模型于高光下对应的第一光效参数specularColor,即specularColor=specularStrength*spec*lightColor。
作为本申请另一实施例,获取水体面模型于高光下对应的第一光效参数也可以通过步骤S’1021和步骤S’1022实现,说明如下:
步骤S’1021:根据光照方向、视线向量和水体面模型顶点的法向量,采用phong光照模型计算水体面模型中高光分量spec。
步骤S’1021的实现与前述实施例中步骤S1021的实现相同,其中涉及的概念或术语及其解释等等,都可以参阅前述实施例的相应描述,此处不做赘述。
步骤S’1022:使用光照贴图G通道与顶点颜色的G通道的乘积对水体面模型中高光分量spec进行相对于标准值的调整,根据调整之后的高光分量确定水体面模型于高光下对应的第一光效参数。
在本申请实施例中,光照贴图中记录的不再是固定的高光区域,而是高光区域相对于标准值的调整值以及材质反射高光的强度。光照贴图使用到R、G、B 3个通道,通道的分配在此不作限定,每个通道的取值范围是0到1,其中,G通道未经过二值化的高光的调整值时标准值为0.5,G通道的值大于0.5时会增亮,小于时则会变暗。二值化后,G通道的值反映的是所在区域落在高光中的可能性,值越大越可能落在高光中,值为1时一定落在高光中,为0时一定不落在高光中,G通道的值为其它值时则还与法线、光照方向和视角有关。
3D渲染中,可以将所有的图形都看作是由顶点组成,即顶点为3D模型表面的点,顶点颜色三通道R通道、G通道和B通道可以存放数据用来调节光影的特性。在本实施例中,顶点中存放一个参数来控制亮暗区域,可以存放在顶点颜色的R通道中,也可以是其它通道,其作用与光照贴图的R通道一样,作为对光照贴图的补充。在本申请实施例中,使用光照贴图G通道与顶点颜色的G通道的乘积对所述水体面模型中高光分量spec进行相对于标准值的调整,由于顶点颜色的G通道存储的参数与Lightmap贴图G通道中的数据的作用相同,使用光照贴图G通道与顶点颜色的G通道的乘积对水体面模型中高光分量spec进行相对于标准值的调整,可以确保调整更准确。通过光照贴图三通道中任意通道存储的数据对水体面模型中高光分量spec进行调整,根据调整之后的水体面模型中高光分量spec,确定高光分量spec超过预设阈值的区域为高光区域,再对调整之后的高光区域进行二值化,确定水体面模型于高光下对应的第一光效参数。
上述本申请实施例通过使用光照贴图中的G通道与顶点颜色G通道的乘积对高光分量spec进行相对于标准值的调整,实现了对高光区域的调整,相比于高光区域固定的方式,可以获得更加美观且可调节的高光区域。
图2所示,是经上述实施例提供的方法,得到水体面模型于高光下对应的第一光效参数的效果图的示例。
步骤S103:获取水体面模型于模拟点光源下对应的第二光效参数。
考虑到若直接在场景里使用点光源,则近处的物体会过于明亮,效果不佳,因此,在本申请实施例中,模拟点光源仅仅是在着色器(shader)里的模拟光照,不会对其他场景的物体生效。作为本申请一个实施例,获取水体面模型于模拟点光源下对应的第二光效参数可以通过步骤S1031至步骤S1033实现,详细说明如下:
步骤S1031:对Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)进行修改,其中,Cspecular为反射后的光照强度,Clight为光源光照强度,Mspecular为材质反射系数,向量n为法线方向单位向量,向量l为取反的射线的单位向量。
具体地,可以根据兰伯特定律,对Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)进行修改。
步骤S1032:在上下左右前后六个方向各引出一条射线以检测相交,当检测到射线接触水体面模型时获取相交点位置,在相交点位置生成模拟点光源,按照Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)得到模拟点光源的光照强度。
步骤S1033:根据射线的单位向量与法线方向单位向量,得到反射光线方向,从该反射光线方向引出一条反射射线,再次生成模拟点光源,其中,模拟点光源至相交点之间的距离作为水体面模型于模拟点光源下对应的第二光效参数spotFalloff。
从该反射光线方向引出一条反射射线,再次生成模拟点光源,总共执行三次生成模拟点光源操作,每次生成六个模拟点光源,模拟点光源至相交点(即在上下左右前后六个方向各引出的射线与水体面模型接触时的相交点)之间的距离作为水体面模型于模拟点光源下对应的第二光效参数。进一步地,可以模拟聚光源,并根据聚光源的角度在聚光源发光的中心位置引出一条射线,依据上文中的方法依次执行生成三次生成模拟点光源操作模拟全局光照,但在每步操作中只生成一个模拟点光源。
需要说明的是,由于射线接触水体面模型时,其入射角度等可能不同,因此,生成的模拟光源以及模拟点光源至相交点之间的距离也有所不同,即第二光效参数spotFalloff是一个变化量。
步骤S104:将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效。
具体而言,将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效可以是将第一光效参数specularColor与第二光效参数spotFalloff相乘,以使模拟点光源对水体面模型的高光部分形成遮罩。若叠加光效对应的第三光效参数采用spotspec表示,则spotspec=specularColor*spotFalloff。如前所述,由于经步骤S103得到的水体面模型于模拟点光源下对应的第二光效参数spotFalloff是一个变化量,会随着射线接触水体面模型时入射角度的不同而不同,相当于获取了一个具有不同照射角度的点光源,因此,当将spotFalloff与specularColor相乘时,得到的效果就是对水体面模型的高光部分形成遮罩,即,水体面模型的一部分仍然是高光(例如,水体面模型正对太阳的部分),而另一部分则显示暗淡(例如,水体面模型背对太阳的部分或者正对太阳部分的邻近区域)。
图3是将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效的示意图。
步骤S105:采用平滑阶梯函数对叠加光效对应的第三光效参数进行处理,得到目标光效参数。
平滑阶梯函数smoothstep的原型如下:
其中,函数clamp(y,min,max)为区间限定函数,其原型为:
在本申请实施例中,可通过向平滑阶梯函数smoothstep(t1,t2,x)的参数t1、t2和x分别传入0.6、0.8和叠加光效对应的第三光效参数spotspec,实现述叠加光效对应的第三光效参数spotspec进行处理,得到目标光效参数,其结果即使得水体面模型的边缘变硬;目标光效参数也即平滑阶梯函数smoothstep(t1,t2,x)的参数t1、t2和x分别传入0.6、0.8和叠加光效对应的第三光效参数spotspec后,得到的平滑阶梯函数smoothstep的值。
步骤S106:基于目标光效参数对水体面模型进行渲染,以得到高光水体面模型。
当经步骤S105利用平滑阶梯函数对所述叠加光效对应的第三光效参数进行处理,得到目标光效参数后,可以基于目标光效参数对水体面模型进行渲染,以得到高光水体面模型,其方法可以是基于目标光效参数制作高光贴图,然后,将该高光贴图映射至水体面模型,得到高光水体面模型。
为了进一步增强效果,在上述本申请实施例中,在基于目标光效参数对水体面模型进行渲染,以得到高光水体面模型之后,还可以通过步骤S1061至步骤S1063,对高光水体面模型做如下进一步处理:
步骤S1061:根据环境贴图或反射贴图,获取环境光照射至高光水体面模型后反射时反射光的颜色信息。
在游戏场景中,一般是使用游戏开发引擎自带的反射球来模拟反射效果,而在本申请实施例中,摒弃了反射球模拟反射效果的方案,而是根据环境贴图或反射贴图,获取环境光照射至高光水体面模型后反射时反射光的颜色信息,从而模拟反射效果。所谓环境贴图或反射贴图,即,利用预先制作的保存了周围环境的纹理贴图,实现模型表面对周围环境的反射效果,它与实时反射相对,实现简单、运行效率高。在本申请实施例中,环境贴图或反射贴图的制作可以是将现实场景图像采用均匀分配方式切分,再进行翻转映射为环境贴图或反射贴图,具体而言,可以是:对光照数据采用格式为RGBA16的立方贴图来存储,其中,对于立方体正前方和正后方的面,将划分后的图像的左右两侧区域映射到面上,对于立方体左右方向的面,将划分后的图像的上下两侧区域映射到面上,对于立方体正下方的面,将图像中心区域映射,最后,对于立方体正上方的面,将图像中心区域翻转映射,从而生成环境贴图或反射贴图。在本申请另一实施例中,环境贴图或反射贴图的制作还可以是根据一个虚拟摄像机(以下简称虚拟相机A)的位置设置一个包围盒(该包围盒为一个空间多面体,其能够将高光水体面模型包围起来);将该包围盒的中心作为另一虚拟摄像机(以下简称虚拟相机B)的位置;将虚拟相机B分别朝向包围盒各个面的中心拍摄图像,得到各个面对应的原始环境贴图;针对每个原始环境贴图,逐步缩小原始环境贴图,并将原始环境贴图中每个环境像素点的颜色平均化,直至得到环境贴图或反射贴图。
作为本申请一个实施例,根据环境贴图或反射贴图,获取环境光照射至高光水体面模型后反射时反射光的颜色信息可以是:根据法向量和视线向量计算反射视线,将反射视线在一个单位球面(半径r=1)上的交点坐标(x,y,z)转换成球面坐标系下的坐标/>然后,将坐标/>对应到纹理坐标(u,v),读取纹理贴图上纹理坐标(u,v)处的信息来实现反射效果。
在本申请另一实施例中,根据环境贴图或反射贴图,获取环境光照射至高光水体面模型后反射时反射光的颜色信息还可以是:获取高光水体面模型的反射朝向,从预设的环境贴图或反射贴图获取与高光水体面模型的反射朝向对应纹理坐标的纹理颜色,作为环境光照射至高光水体面模型后反射时反射光的颜色信息。至于本实施例中环境贴图或反射贴图的制作,具体方式可以是通过响应美术人员的反射贴图的离线渲染请求,在游戏场景中设置位置放置反射球,然后调用相机基于多个方向拍摄位置放置反射球在对应方向反射到的游戏场景中的反射图片,而后根据拍摄到的多个方向的反射图片渲染游戏场景的反射贴图,该反射贴图即作为游戏场景所有水体面模型的环境贴图或反射贴图。如此,不需要每次都渲染一遍周围的场景物体,减轻了计算压力。
图4是根据环境贴图或反射贴图来模拟反射效果的示意图。
步骤S1062:基于高光水体面模型的透明度、高光水体面模型中高光的R通道值、反射光的颜色信息以及预设透明度调节值,调整高光水体面模型的透明度。
一般情况下,水是一种透明无色的物体,它的颜色主要来自于它的折射和反射。同时,观察水时,观察方向和水面方向的夹角越大时,水面越体现反射颜色。在三维游戏当中,水被当作一种特殊的透明物体进行模拟渲染。为了根据水体透明度将水面渲染为透明,从而减少渲染水面折射图,快速模拟出良好的水面效果,在本申请实施例中,基于高光水体面模型的透明度、高光水体面模型中高光的R通道值、反射光的颜色信息以及预设透明度调节值,调整高光水体面模型的透明度。此处,高光水体面模型的透明度是在步骤S101基于漫反射贴图和法线贴图,创建水体面模型时得到的该水体面模型的透明度,水体面模型中高光的R通道值是经步骤S102获取的水体面模型于高光下对应的第一光效参数中其R通道值,反射光的颜色信息是指经前述步骤S1061获取的环境光照射至高光水体面模型后反射时反射光的颜色信息,而预设透明度调节值是用户设置的用于对高光水体面模型中高光的R通道值和反射光的颜色信息进行调节的值,共包括两个调节值。若基于高光水体面模型的透明度使用Opacity表示,高光水体面模型中高光的R通道值使用Shiniess-R表示,反射光的颜色信息使用ReflectColor表示,对高光水体面模型中高光的R通道值进行调节的预设透明度调节值使用SpecOpacity表示,对反射光的颜色信息进行调节的预设透明度调节值使用ReflectOpacity表示,则基于高光水体面模型的透明度、高光水体面模型中高光的R通道值、反射光的颜色信息以及预设透明度调节值,调整高光水体面模型中透明度后所得高光水体面模型的透明度ShiniessOpacity=Opacity+Shiniess-R*SpecOpacity+ReflectColor*ReflectOpacity。
步骤S1063:将高光水体面模型的基本颜色、点光源下经预设透明度调节值调整后高光水体面模型的高光效果与经预设透明度调节值调整后反射光的颜色信息相加。
若高光水体面模型的基本颜色使用diffuse表示,则将高光水体面模型的基本颜色、点光源下经预设透明度调节值调整后高光水体面模型的高光效果与经预设透明度调节值调整后反射光的颜色信息相加可以表示为:diffuse+spotspec+reflect_color,其中,spotspec为点光源下经预设透明度调节值调整后高光水体面模型的高光效果,其包含了步骤S1062述及的Shiniess-R*SpecOpacity,reflect_color经预设透明度调节值调整后反射光的颜色信息,其包含了步骤S1062述及的ReflectColor*ReflectOpacity。
附图5是将高光水体面模型的基本颜色与已调节高光和反射效果透明度叠加后的高光水体面模型的效果示意图。
从上述附图1示例的渲染水体面的方法可知,一方面,本申请的技术方案是创建水体面模型,在获取水体面模型于高光下对应的第一光效参数和水体面模型于模拟点光源下对应的第二光效参数后,再将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效,由于摒弃了PBR的方案,因此,与现有技术相比,本申请的技术方案大幅度减小了计算资源的消耗;另一方面,采用平滑阶梯函数对叠加光效对应的第三光效参数进行处理,得到目标光效参数,以使水体面模型的边缘变硬,能够形成线状的风格化高光,更加真实地反映真实场景下水体面的高光效果。
请参阅附图6,是本申请实施例提供的一种渲染水体面的装置,该装置可以包括模型创建模块601、第一获取模块602、第三获取模块603、光效叠加模块604、平滑模块605和映射模块606,详述如下:
模型创建模块601,用于创建水体面模型;
第一获取模块602,用于获取水体面模型于高光下对应的第一光效参数;
第三获取模块603,用于获取水体面模型于模拟点光源下对应的第二光效参数;
光效叠加模块604,用于将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效;
平滑模块605,用于采用平滑阶梯函数对叠加光效对应的第三光效参数进行处理,得到目标光效参数;
映射模块606,用于基于目标光效参数对水体面模型进行渲染,以得到高光水体面模型。
可选地,上述附图6示例的装置中,模型创建模块601可包括目标像素点获取单元、目标像素点颜色确定单元和渲染单元,其中:。
目标像素点获取单元,用于获取水体面模型的漫反射贴图和法线贴图中待处理的目标像素点;
目标像素点颜色确定单元,用于根据预贴图和目标像素点对应的法线方向参数,确定目标像素点的颜色,其中,预贴图用于表示曲率与色带之间的对应关系,法线方向参数用于表示目标像素点在世界空间坐标系下的法线方向;
渲染单元,用于采用由目标像素点的颜色确定的目标像素点的渲染色对目标像素点进行渲染,以得到水体面模型。
可选地,上述目标像素点颜色确定单元具体用于根据明部颜色参数、暗部颜色参数、水体面模型明部和暗部范围参数、明暗交界线位置参数、法线方向参数和光源方向参数,确定目标像素点的颜色,其中,光源方向参数用于表示在渲染水体面模型时采用的预设光源的光源方向,明部颜色参数用于表示水体面模型明部范围上的第一颜色,暗部颜色参数用于表示水体面模型暗部范围上的第二颜色,第一颜色的亮度高于第二颜色的亮度,明暗交界线位置参数用于表示水体面模型的明部和暗部交界线位置。
可选地,上述附图6示例的装置中,第一获取模块602可包括高光分量计算单元和相乘单元,其中:
高光分量计算单元,用于根据光照方向、视线向量和水体面模型顶点的法向量,采用phong光照模型计算水体面模型中高光分量spec;
相乘单元,用于将水体面模型中高光分量spec与预设高光强度specularStrength和光照颜色lightColor相乘后,得到水体面模型于高光下对应的第一光效参数。
可选地,上述附图6示例的装置中,第一获取模块602可包括高光分量计算单元和调整单元,其中:
高光分量计算单元,用于根据光照方向、视线向量和水体面模型顶点的法向量,采用phong光照模型计算水体面模型中高光分量spec;
调整单元,用于使用光照贴图G通道与顶点颜色的G通道的乘积对水体面模型中高光分量spec进行相对于标准值的调整,根据调整之后的高光分量确定水体面模型于高光下对应的第一光效参数。
可选地,上述附图6示例的装置中,第三获取模块603可包括修改单元、第一点光源处理单元和第二点光源处理单元,其中:
修改单元,用于对Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)进行修改,所述Cspecular为反射后的光照强度,所述Clight为光源光照强度,所述Mspecular为材质反射系数,所述向量n为法线方向单位向量,所述向量l为取反的射线的单位向量;
第一点光源处理单元,用于在上下左右前后六个方向各引出一条射线以检测相交,当检测到射线接触水体面模型时获取相交点位置,在所述相交点位置生成模拟点光源,按照Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)得到模拟点光源的光照强度;
第二点光源处理单元,用于根据射线的单位向量与法线方向单位向量,得到反射光线方向,从反射光线方向引出一条反射射线,再次生成模拟点光源,其中,模拟点光源至相交点之间的距离作为水体面模型于模拟点光源下对应的第二光效参数。
可选地,上述附图6示例的装置还可以包括第二获取模块701、透明度调整模块702和叠加模块703,如图7所示本申请另一实施例提供的渲染水体面的装置,其中:
第二获取模块701,用于根据环境贴图或反射贴图获取环境光照射至高光水体面模型后反射时反射光的颜色信息;
透明度调整模块702,用于基于高光水体面模型的透明度、高光水体面模型中高光的R通道值、反射光的颜色信息以及预设透明度调节值,调整高光水体面模型的透明度;
叠加模块703,用于将高光水体面模型的基本颜色、模拟点光源下经预设透明度调节值调整后高光水体面模型的高光效果与经预设透明度调节值调整后反射光的颜色信息相加。
从以上技术方案的描述中可以看出,一方面,本申请的技术方案是创建水体面模型,在获取水体面模型于高光下对应的第一光效参数和水体面模型于模拟点光源下对应的第二光效参数后,再将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效,由于摒弃了PBR的方案,因此,与现有技术相比,本申请的技术方案大幅度减小了计算资源的消耗;另一方面,采用平滑阶梯函数对叠加光效对应的第三光效参数进行处理,得到目标光效参数,以使水体面模型的边缘变硬,能够形成线状的风格化高光,更加真实地反映真实场景下水体面的高光效果。
图8是本申请一实施例提供的计算机设备的结构示意图。如图8所示,该实施例的计算机设备8主要包括:处理器80、存储器81以及存储在存储器81中并可在处理器80上运行的计算机程序82,例如渲染水体面的方法的程序。处理器80执行计算机程序82时实现上述渲染水体面的方法实施例中的步骤,例如图1所示的步骤S101至S106。或者,处理器80执行计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图6所示模型创建模块601、第一获取模块602、第三获取模块603、光效叠加模块604、平滑模块605和映射模块606的功能。
示例性地,渲染水体面的方法的计算机程序82主要包括:创建水体面模型;获取水体面模型于高光下对应的第一光效参数;获取水体面模型于模拟点光源下对应的第二光效参数;将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效;采用平滑阶梯函数对叠加光效对应的第三光效参数进行处理,得到目标光效参数;基于目标光效参数对水体面模型进行渲染,以得到高光水体面模型。计算机程序82可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器81中,并由处理器80执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序82在计算机设备8中的执行过程。例如,计算机程序82可以被分割成模型创建模块601、第一获取模块602、第三获取模块603、光效叠加模块604、平滑模块605和映射模块606(虚拟装置中的模块)的功能,各模块具体功能如下:模型创建模块601,用于创建水体面模型;第一获取模块602,用于获取水体面模型于高光下对应的第一光效参数;第三获取模块603,用于获取水体面模型于模拟点光源下对应的第二光效参数;光效叠加模块604,用于将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效;平滑模块605,用于采用平滑阶梯函数对叠加光效对应的第三光效参数进行处理,得到目标光效参数;映射模块606,用于基于目标光效参数对水体面模型进行渲染,以得到高光水体面模型。
计算机设备8可包括但不仅限于处理器80、存储器81。本领域技术人员可以理解,图8仅仅是计算机设备8的示例,并不构成对计算机设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算计算机设备还可以包括输入输出计算机设备、网络接入计算机设备、总线等。
所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器81可以是计算机设备8的内部存储单元,例如计算机设备8的硬盘或内存。存储器81也可以是计算机设备8的外部存储计算机设备,例如计算机设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器81还可以既包括计算机设备8的内部存储单元也包括外部存储计算机设备。存储器81用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即,将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非临时性计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,渲染水体面的方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,创建水体面模型;获取水体面模型于高光下对应的第一光效参数;获取水体面模型于模拟点光源下对应的第二光效参数;将第一光效参数对应的光效和第二光效参数对应的光效进行叠加,得到叠加光效;采用平滑阶梯函数对叠加光效对应的第三光效参数进行处理,得到目标光效参数;基于目标光效参数对水体面模型进行渲染,以得到高光水体面模型。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。非临时性计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,非临时性计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非临时性计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种渲染水体面的方法,其特征在于,所述方法包括:
创建水体面模型;
获取所述水体面模型于高光下对应的第一光效参数,所述第一光效参数基于所述水体面模型中高光分量与预设高光强度和光照颜色相乘得到;
获取所述水体面模型于模拟点光源下对应的第二光效参数,包括:对Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)进行修改,所述Cspecular为反射后的光照强度,所述Clight为光源光照强度,所述Mspecular为材质反射系数,所述n为法线方向单位向量,所述l为取反的射线的单位向量;在上下左右前后六个方向各引出一条射线以检测相交,当检测到射线接触所述水体面模型时获取相交点位置,在所述相交点位置生成模拟点光源,按照所述Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)得到所述模拟点光源的光照强度;根据射线的单位向量与法线方向单位向量,得到反射光线方向,从所述反射光线方向引出一条反射射线,再次生成所述模拟点光源,所述模拟点光源至所述相交点之间的距离作为所述水体面模型于模拟点光源下对应的第二光效参数;
将所述第一光效参数对应的光效和所述第二光效参数对应的光效进行叠加,得到叠加光效;
利用平滑阶梯函数对所述叠加光效对应的第三光效参数进行处理,得到目标光效参数;
基于所述目标光效参数对所述水体面模型进行渲染,以得到高光水体面模型。
2.如权利要求1所述渲染水体面的方法,其特征在于,所述创建水体面模型,包括:
获取所述水体面模型的漫反射贴图和法线贴图中待处理的目标像素点;
根据预贴图和所述目标像素点对应的法线方向参数,确定所述目标像素点的颜色,所述预贴图用于表示曲率与色带之间的对应关系,所述法线方向参数用于表示所述目标像素点在世界空间坐标系下的法线方向;
采用由所述目标像素点的颜色确定的目标像素点的渲染色对所述目标像素点进行渲染,以得到所述水体面模型。
3.如权利要求2所述渲染水体面的方法,其特征在于,所述根据预贴图和所述目标像素点对应的法线方向参数,确定所述目标像素点的颜色,包括:
根据明部颜色参数、暗部颜色参数、所述水体面模型明部和暗部范围参数、明暗交界线位置参数、所述法线方向参数和光源方向参数,确定所述目标像素点的颜色,所述光源方向参数用于表示在渲染所述水体面模型时采用的预设光源的光源方向,所述明部颜色参数用于表示所述水体面模型明部范围上的第一颜色,所述暗部颜色参数用于表示所述水体面模型暗部范围上的第二颜色,所述第一颜色的亮度高于所述第二颜色的亮度,所述明暗交界线位置参数用于表示所述水体面模型的明部和暗部交界线位置。
4.如权利要求1所述渲染水体面的方法,其特征在于,所述获取所述水体面模型于高光下对应的第一光效参数,包括:
根据光照方向、视线向量和所述水体面模型顶点的法向量,采用phong光照模型计算所述水体面模型中高光分量spec;
将所述水体面模型中高光分量spec与预设高光强度specularStrength和光照颜色lightColor相乘后,得到所述水体面模型于高光下对应的第一光效参数。
5.如权利要求1所述渲染水体面的方法,其特征在于,所述获取所述水体面模型于高光下对应的第一光效参数,包括:
根据光照方向、视线向量和所述水体面模型顶点的法向量,采用phong光照模型计算所述水体面模型中高光分量spec;
使用光照贴图G通道与顶点颜色的G通道的乘积对所述水体面模型中高光分量spec进行相对于标准值的调整,根据所述调整之后的高光分量确定所述水体面模型于高光下对应的第一光效参数。
6.如权利要求1所述渲染水体面的方法,其特征在于,所述将所述第一光效参数对应的光效和所述第二光效参数对应的光效进行叠加,得到叠加光效,包括:
将所述第一光效参数与所述第二光效参数相乘,以使所述模拟点光源对所述水体面模型的高光部分形成遮罩。
7.如权利要求1所述渲染水体面的方法,其特征在于,所述基于所述目标光效参数对所述水体面模型进行渲染,以得到高光水体面模型之后,所述方法还包括:
根据环境贴图或反射贴图,获取环境光照射至所述高光水体面模型后反射时反射光的颜色信息;
基于所述高光水体面模型的透明度、所述高光水体面模型中高光的R通道值、所述反射光的颜色信息以及预设透明度调节值,调整所述高光水体面模型的透明度;
将所述高光水体面模型的基本颜色、所述模拟点光源下经所述预设透明度调节值调整后所述高光水体面模型的高光效果与经所述预设透明度调节值调整后反射光的颜色信息相加。
8.一种渲染水体面的装置,其特征在于,所述装置包括:
模型创建模块,用于创建水体面模型;
第一获取模块,用于获取所述水体面模型于高光下对应的第一光效参数,所述第一光效参数基于所述水体面模型中高光分量与预设高光强度和光照颜色相乘得到;
第三获取模块,用于获取所述水体面模型于模拟点光源下对应的第二光效参数,包括:对Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)进行修改,所述Cspecular为反射后的光照强度,所述Clight为光源光照强度,所述Mspecular为材质反射系数,所述n为法线方向单位向量,所述l为取反的射线的单位向量;在上下左右前后六个方向各引出一条射线以检测相交,当检测到射线接触所述水体面模型时获取相交点位置,在所述相交点位置生成模拟点光源,按照所述Blinn-phong光照模型Cspecular=(Clight·Mspecular)max(0,n·l)得到所述模拟点光源的光照强度;根据射线的单位向量与法线方向单位向量,得到反射光线方向,从所述反射光线方向引出一条反射射线,再次生成所述模拟点光源,所述模拟点光源至所述相交点之间的距离作为所述水体面模型于模拟点光源下对应的第二光效参数;
光效叠加模块,用于将所述第一光效参数对应的光效和所述第二光效参数对应的光效进行叠加,得到叠加光效;
平滑模块,用于采用平滑阶梯函数对所述叠加光效对应的第三光效参数进行处理,得到目标光效参数;
映射模块,用于基于所述目标光效参数对所述水体面模型进行渲染,以得到高光水体面模型。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任意一项所述渲染水体面的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任意一项所述渲染水体面的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110247001.6A CN112819941B (zh) | 2021-03-05 | 2021-03-05 | 渲染水体面的方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110247001.6A CN112819941B (zh) | 2021-03-05 | 2021-03-05 | 渲染水体面的方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112819941A CN112819941A (zh) | 2021-05-18 |
CN112819941B true CN112819941B (zh) | 2023-09-12 |
Family
ID=75862966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110247001.6A Active CN112819941B (zh) | 2021-03-05 | 2021-03-05 | 渲染水体面的方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112819941B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113345066B (zh) * | 2021-05-26 | 2022-07-22 | 网易(杭州)网络有限公司 | 渲染海浪的方法、装置、设备和计算机可读存储介质 |
CN113450443B (zh) * | 2021-07-08 | 2023-03-24 | 网易(杭州)网络有限公司 | 海面模型的渲染方法和装置 |
CN113836705B (zh) * | 2021-09-06 | 2025-01-21 | 网易(杭州)网络有限公司 | 光照数据的处理方法、装置、存储介质和电子装置 |
CN114022608A (zh) * | 2021-10-18 | 2022-02-08 | 广州三七极耀网络科技有限公司 | 一种草渲染方法、系统及电子设备、存储介质 |
CN114307132A (zh) * | 2021-12-15 | 2022-04-12 | 上海完美时空软件有限公司 | 一种植物模型的生成方法及装置、电子设备和存储介质 |
CN114419232A (zh) * | 2021-12-29 | 2022-04-29 | 北京像素软件科技股份有限公司 | 公告牌内树木光照效果的处理方法、装置及计算机设备 |
CN114581592A (zh) * | 2022-02-21 | 2022-06-03 | 北京大甜绵白糖科技有限公司 | 高光渲染方法、装置、计算机设备及存储介质 |
CN115082608B (zh) * | 2022-05-26 | 2024-08-30 | 网易(杭州)网络有限公司 | 虚拟角色服装渲染方法、装置、电子设备和存储介质 |
CN115861520B (zh) * | 2023-02-02 | 2023-04-28 | 深圳思谋信息科技有限公司 | 高光检测方法、装置、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1079045A (ja) * | 1996-07-23 | 1998-03-24 | Internatl Business Mach Corp <Ibm> | レンダリング方法及び装置、並びに輝度値平滑化方法及び装置 |
US6259454B1 (en) * | 1998-08-11 | 2001-07-10 | S3 Graphics Co., Ltd. | Method and apparatus for interpolative, adaptive illumination in 3D graphics |
CN104954710A (zh) * | 2014-03-27 | 2015-09-30 | 日立麦克赛尔株式会社 | 影像处理装置和使用它的投影仪装置 |
CN105447906A (zh) * | 2015-11-12 | 2016-03-30 | 浙江大学 | 基于图像和模型计算光照参数进行重光照渲染的方法 |
CN106204714A (zh) * | 2016-08-01 | 2016-12-07 | 华东师范大学 | 基于Phong模型的视频流体光照计算方法 |
CN107886562A (zh) * | 2017-12-05 | 2018-04-06 | 北京像素软件科技股份有限公司 | 水面渲染方法、装置及可读存储介质 |
CN111429558A (zh) * | 2020-03-02 | 2020-07-17 | 武汉大学 | 实时模拟动态水体缩略模型的方法及系统 |
KR102173546B1 (ko) * | 2020-04-28 | 2020-11-03 | 주식회사 라이언게임즈 | 게임 객체 렌더링 방법 및 장치 |
-
2021
- 2021-03-05 CN CN202110247001.6A patent/CN112819941B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1079045A (ja) * | 1996-07-23 | 1998-03-24 | Internatl Business Mach Corp <Ibm> | レンダリング方法及び装置、並びに輝度値平滑化方法及び装置 |
US6259454B1 (en) * | 1998-08-11 | 2001-07-10 | S3 Graphics Co., Ltd. | Method and apparatus for interpolative, adaptive illumination in 3D graphics |
CN104954710A (zh) * | 2014-03-27 | 2015-09-30 | 日立麦克赛尔株式会社 | 影像处理装置和使用它的投影仪装置 |
CN105447906A (zh) * | 2015-11-12 | 2016-03-30 | 浙江大学 | 基于图像和模型计算光照参数进行重光照渲染的方法 |
CN106204714A (zh) * | 2016-08-01 | 2016-12-07 | 华东师范大学 | 基于Phong模型的视频流体光照计算方法 |
CN107886562A (zh) * | 2017-12-05 | 2018-04-06 | 北京像素软件科技股份有限公司 | 水面渲染方法、装置及可读存储介质 |
CN111429558A (zh) * | 2020-03-02 | 2020-07-17 | 武汉大学 | 实时模拟动态水体缩略模型的方法及系统 |
KR102173546B1 (ko) * | 2020-04-28 | 2020-11-03 | 주식회사 라이언게임즈 | 게임 객체 렌더링 방법 및 장치 |
Non-Patent Citations (1)
Title |
---|
王渊.《基于真实数据的逼真水面生成及动画研究》.《中国优秀硕士学位论文全文库》.2021,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN112819941A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112819941B (zh) | 渲染水体面的方法、装置、设备和计算机可读存储介质 | |
US11257286B2 (en) | Method for rendering of simulating illumination and terminal | |
US11694392B2 (en) | Environment synthesis for lighting an object | |
CN112200900B (zh) | 一种体积云渲染方法、装置、电子设备及存储介质 | |
US8531457B2 (en) | Apparatus and method for finding visible points in a cloud point | |
US7889913B2 (en) | Automatic compositing of 3D objects in a still frame or series of frames | |
JP4276178B2 (ja) | 皮膚又は類似物をデジタル式にレンダリングする方法 | |
US7583264B2 (en) | Apparatus and program for image generation | |
CN107644453B (zh) | 一种基于物理着色的渲染方法及系统 | |
KR101885090B1 (ko) | 영상 처리 장치, 조명 처리 장치 및 그 방법 | |
CN110033509B (zh) | 一种基于漫反射梯度偏振光构建三维人脸法线的方法 | |
CN112446943A (zh) | 图像渲染的方法、装置及计算机可读存储介质 | |
US20230368459A1 (en) | Systems and methods for rendering virtual objects using editable light-source parameter estimation | |
CN114494570A (zh) | 三维模型的渲染方法和装置、存储介质及计算机设备 | |
CN114155338B (zh) | 图像渲染方法、装置及电子设备 | |
CN116758208A (zh) | 全局光照渲染方法、装置、存储介质及电子设备 | |
CN116091684B (zh) | 基于WebGL的图像渲染方法、装置、设备及存储介质 | |
KR102291162B1 (ko) | 인공 지능 학습용 가상 데이터 생성 장치 및 방법 | |
CN117671125A (zh) | 光照渲染方法、装置、设备及存储介质 | |
CN115063645B (zh) | 模型训练方法、贴图确定方法、装置、设备 | |
US11436794B2 (en) | Image processing method, apparatus and device | |
CN112819929B (zh) | 渲染水面方法及装置、电子设备、存储介质 | |
CN116137051A (zh) | 水面渲染方法、装置、设备及存储介质 | |
MacDonald | Visual realism in digital heritage | |
CN118674853B (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 |