图形渲染的预处理方法及系统与流程

文档序号:16253921发布日期:2018-12-12 00:16阅读:333来源:国知局
图形渲染的预处理方法及系统与流程

本公开本涉及渲染处理技术领域,更具体地,涉及一种图形渲染的预处理方法及系统。

背景技术

现有3d次世代手机游戏的场景图形渲染的预处理,常规做法是基于实时光照来在客户端进行渲染,通过diffuse(漫反射)、specular(高光)、normal(法线)三种贴图采样渲染实现,用来还原真实的模型细节、光影以及材质质感表现。客户端实时渲染的目的是尽量展现逼真的效果。

法线细节、高光质感以及基于高光下的环境反射效果是次世代图形渲染的预处理的重要特征,画面效果远远优于传统场景烘培制作效果。另一方面,目前的技术方案离不开实时光照,通常游戏场景中至少会保留一盏实时灯光,否则,所有次世代效果将丢失。

由上可见,实时灯光会产生巨大的客户端性能损耗,因为所需要渲染的环境每帧都会发生改变,所以每帧都需要计算阴影、光照及环境光遮挡等信息,这一过程需要占用客户端的大量硬件资源。较多游戏因为性能压力放弃了次世代游戏的研发,用传统手绘漫反射贴图通过场景光照烘培方案制作,放弃了华丽的光影效果。

鉴于上述问题,离线渲染技术应运而生。它利用预先生成好的数据,当客户端渲染所指定的环境和模型时,不需要实时渲染着色流程,而是动态加载那些预处理数据,并显示出来。

下面,对现有技术中的用于非实时光照渲染的离线预处理方法进行举例说明。

现有的一种采用简单贴图烘培方式进行离线渲染的方法包括以下步骤:

1、diffuse贴图绘制,贴图包含r、g、b三种通道,控制3d物体的颜色信息;

2、建立灯光,制作出游戏最终需要呈现出的灯光效果;

3、为模型建立第二套uv;

4、烘培lightmap(光照贴图),将之前建立好的灯光效果(阴影,颜色)做成lightmap贴图。

在上述方法中,场景烘培在材质渲染上只用到了diffuse通道采样,最终渲染效果与绘制在diffuse贴图上的细节、质感一样。光影通过烘培的方式叠加在模型上。利用lightmap烘培的方式避免了客户端进行实时光照的性能损耗,提高了客户端的处理效率,但模型细节丢失,光影质感不会随环境,角度的变化而改变,牺牲了游戏的表现效果。

作为比对,对现有技术中的用于实时光照渲染的离线预处理方法进行举例说明。

现有的一种用于实时光照渲染的离线预处理方法包括以下步骤:

1、diffuse贴图绘制,贴图包含r、g、b三种通道,控制3d物体的颜色信息

2、specular贴图绘制,贴图包含r、g、b三种通道,控制3d物体的高光信息

3、normal贴图绘制,贴图包含r、g、b三种通道,控制3d物体的法线信息

4、创建light灯光信息;

5、创建reflection反射信息,创建reflection反射贴图。

上述方案将用于实时渲染的大量计算工作(光影变化的实时运算)留给了客户端,尽管能够呈现真实世界中的细节、质感、光影效果,但对客户端机能的要求过高,不利于保证客户体验。



技术实现要素:

考虑到现有技术的上述问题,发明人做出了本发明,其通过在服务端对漫反射贴图进行优化,以便融入更多光影信息,提高光影效果,同时不增加客户端渲染的计算负担。

根据本发明的实施例,提供了一种图形渲染的预处理方法,包括如下步骤:步骤1、进行模型物体的法线贴图绘制;步骤2、绘制场景的固定环境反射模拟贴图;步骤3、建立灯光环境信息和模型物体的uv纹理信息,并根据灯光信息和uv纹理信息进行烘焙,得到光照贴图;步骤4、绘制模型物体的漫反射贴图,其包含r、g、b、a四个通道;步骤5、在所述漫反射贴图中融入菲涅尔信息和光泽度信息,形成最终的漫反射采样数据;步骤6、根据最终的漫反射采样数据和步骤1中的法线贴图,生成材质球,并将所述材质球和所述光照贴图输出作为客户端的渲染资源。

本发明的有益效果主要在于:在保留法线细节、质感光影效果的同时,通过算法和逻辑的优化,与上述简单贴图烘培方式中的客户端性能消耗相同,即,解决了对优质画面效果的追求,同时又做到最低的客户端性能消耗。即,性能消耗做到了和手绘烘培方案下的性能消耗,又达到了图组二中次世代实时灯光下的图形效果,即,drawcall占用率低,不用做多次渲染,机能损耗低,贴图数量比实时灯光方案少,整体资源占用量减少。

附图说明

图1为示出根据本发明的图形渲染的预处理模型的概念示意图;

图2为根据本发明的实施例的图形渲染的预处理方法的总体流程示意图;

图3为根据本发明的实施例的图形渲染的预处理方法的部分流程示意图;

图4为根据本发明的实施例的图形渲染的预处理系统的功能模块示意图;

图5为根据本发明实施例的安装了应用程序的系统的运行环境的示意图。

具体实施方式

下面,结合附图对技术方案的实施作进一步的详细描述。

本领域的技术人员能够理解,尽管以下的说明涉及到有关本发明的实施例的很多技术细节,但这仅为用来说明本发明的原理的示例、而不意味着任何限制。本发明能够适用于不同于以下例举的技术细节之外的场合,只要它们不背离本发明的原理和精神即可。

另外,为了避免使本说明书的描述限于冗繁,在本说明书中的描述中,可能对可在现有技术资料中获得的部分技术细节进行了省略、简化、变通等处理,这对于本领域的技术人员来说是可以理解的,并且这不会影响本说明书的公开充分性。

下文中,将描述用于进行本发明的实施例。注意,将以下面的次序给出描述:1、发明构思的概要(图1);2、图形渲染的预处理方法(图2和3);3、图形渲染的预处理系统(图4);4、根据本发明的实施例的安装了应用程序的系统(图5)。

1、发明构思的概要

首先,举例说明用来实现本发明的工作环境,即,软件运行环境,如下:

操作系统:windows、macos等

渲染软件:unity

图1为示出根据本发明的实施例的离线渲染预处理方法的原理示意图;

如图1所示,本发明通过在漫反射(diffuse)通道采样中,创建两个菲涅尔(fresnel)贴图,对两个菲涅尔贴图进行范围(range)和强度(level)控制,之后与diffuse贴图做相加运算。

同时,对模型的自身法线信息的world坐标转换为view坐标,将坐标的多维数组拆分输出r、g通道组合的二维数组,作为uv信息输出到环境反射模拟贴图采样通道中,简称gloss(光泽度),并用得到的gloss的多维数组与diffuse中a通道的一维数组数据做相乘运算。

最后通过colordodge的方式将两组多维数组叠加,生成更新后的漫反射贴图。

下面,结合实施例来说明上述发明构思的实现。

2、图形渲染的预处理方法

图2为根据本发明的实施例的图形渲染的预处理方法的总体流程示意图。

本发明的实施例提供了一种图形渲染的预处理方法,包括以下步骤:

步骤s100、进行模型物体的法线贴图绘制;

例如,法线贴图包含r、g、b三种通道,控制3d物体的法线信息,因为游戏模型的自身面数低,自身模型的法线信息有限,所以制作了更多细节的法线贴图,该贴图的法线信息最后将叠加到模型自身的法线信息上,使模型获得更多细节,

所述法线贴图将用作步骤s600中的材质球的输入,如下所述;

步骤s200、渲染场景的固定环境反射模拟贴图,例如,通过球形纹理(spheremapping)。

区别于cubmap,所述环境反射模拟贴图是一个多维数组;

环境反射模拟贴图将用作生成光泽度模型的输入,如下所述;

步骤s300、建立灯光环境信息和模型的uv纹理信息,并根据灯光信息和uv纹理信息进行烘焙,得到光照贴图(lightmap);

其中,灯光环境信息将作为所述烘培时的采样依据,烘培的光照贴图将生成在uv纹理上,与模型的材质叠加产生光影效果;

步骤s400、绘制漫反射(diffuse)贴图,其包含r、g、b、a四个通道,r、g、b控制3d物体的颜色信息,a通道控制环境反射区域;

需要说明的是,上述步骤s100至s400是独立完成的步骤,在执行上并无先后次序的限制。

步骤s500、在所述漫反射贴图中融入菲涅尔信息和光泽度信息,形成最终的漫反射采样数据;

步骤s600、根据最终的漫反射采样数据和步骤s100中的法线贴图,生成材质球,并将所述材质球和所述光照贴图输出作为客户端的渲染资源。

图3为根据本发明的实施例的图形渲染的预处理方法的部分流程示意图。

如图3所示,所述步骤s500可包括:

步骤s510、在unity中创建互反的两个菲涅尔模型(一维数组形式)of和ff,其中,对两个菲涅尔模型of和ff进行范围和强度限制,

对于上述范围和强度限制的实现,如下面的代码所示,

通过对两个菲涅尔模型of和ff进行上述范围和强度限制,

其中,可直接通过unity软件创建菲涅尔模型,其效果为一层从模型边缘向中心的黑白渐变的二维数组,

步骤s520、将进行了范围和强度控制的菲涅尔模型of、ff相加,生成更新后的菲涅尔模型,之后再与步骤s400的漫反射贴图的r、g、b通道的多维数据进行相加,

步骤s530、在unity中创建一个法线节点,如下面的代码所示,

o.normaldir=unityobjecttoworldnormal

其中,法线节点包含r、g、b通道数据;

步骤s540、将坐标系从世界坐标(world)转换为视角坐标(view);

步骤s550、使用componentmask工具将法线节点的r、g通道数据(模型的法线数据)输出为作为uv使用的二维数据,并将所述二维数据乘以0.5(取整),

其中,r、g通道、系数0.5为可选的优化示例,也可直接采用法线节点的原始数据。

步骤s560、将在步骤s550中得到的数据作为用于生成光泽度模型(glossmap)的uv采样输入,将所述步骤s200中生成的环境反射模拟贴图作为用于生成光泽度模型的rgb颜色采样数据输入,生成光泽度模型;

步骤s570、将光泽度模型与步骤s400生成的漫反射贴图的a通道相乘;

步骤s580、将步骤s570相乘后的结果与步骤s520相加后的结果进行叠加,生成最终的漫反射采样数据,

在步骤s580中,建立混合节点(blend节点),采用colordodge(颜色减淡)方式进行上述叠加。

上述过程的部分代码实现如下所示。

float4_node_1354_var=

tex2d(_node_1354,transform_tex(i.uv0,_node_1354));

float3finalcolor=

(_node_1354_var.rgb+((_of_level*pow(1.0-max(0,dot(normaldirection,

viewdirection)),_of_range))+((1.0-pow(1.0-max(0,dot(normaldirection,

viewdirection)),_ff_range))*_ff_level)));

fixed4finalrgba=fixed4(finalcolor,1);

unity_apply_fog(i.fogcoord,finalrgba);

returnfinalrgba;

根据本发明的实施例,上述方案在保留法线细节、质感光影效果的同时,通过算法和逻辑的优化,与现有技术的手绘烘培贴图方案中的性能消耗相同。

在客户端渲染的过程中,drawcall运算量由batches和setpass体现,传统手绘烘培贴图下,程序监控drawcall消耗平均在6左右。在客户端实时光照渲染下,drawcall消耗平均在30左右。

相比之下,根据本发明的上述技术方案,客户端渲染的drawcall消耗平均在5左右,对于大批量的场景物件添加的情况,这种消耗的节省效果还将提升。

3、图形渲染的预处理系统

根据本发明的实施例,还提供了一种图形渲染的预处理系统,用于执行本发明的实施例所述方法的各个步骤。

图4为根据本发明的实施例的图形渲染的预处理系统的功能模块示意图。如该图所示,所述图形渲染的预处理系统主要包括贴图生成模块、菲涅尔信息融合模块、光泽度信息融合模块、信息叠加模块、资源输出模块。

其中,所述贴图生成模块用于生成所述法线贴图,所述环境反射模拟贴图,并生成所述光照贴图;

所述菲涅尔信息融合模块用于生成所述菲涅尔模型,并将所述菲涅尔模型与所述漫反射贴图的rgb通道数据相加;

所述光泽度信息融合模块用于生成所述光泽度模型,并将所述光泽度模型与所述漫反射贴图的a通道数据相加;

所述信息叠加模块用于将所述菲涅尔信息融合模块的相加结果和所述光泽度信息融合模块的相加结果进行叠加,将叠加结果输出作为最终的漫反射采样数据;

所述资源输出模块用于根据最终的漫反射采样数据和所述法线贴图,生成材质球,并将所述材质球和所述光照贴图输出作为客户端的渲染资源。

4、根据本发明的实施例的安装了应用程序的系统

参照图5,其示出了根据本发明实施例的安装了应用程序的系统的运行环境。

在本实施例中,所述的安装应用程序的系统安装并运行于电子装置中。所述电子装置可以是桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该电子装置可包括但不限于存储器、处理器及显示器。该图仅示出了具有上述组件的电子装置,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器在一些实施例中可以是所述电子装置的内部存储单元,例如该电子装置的硬盘或内存。所述存储器在另一些实施例中也可以是所述电子装置的外部存储设备,例如所述电子装置上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器还可以既包括所述电子装置的内部存储单元也包括外部存储设备。所述存储器用于存储安装于所述电子装置的应用软件及各类数据,例如所述安装应用程序的系统的程序代码等。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。

所述处理器在一些实施例中可以是中央处理单元(centralprocessingunit,cpu)、微处理器或其他数据处理芯片,用于运行所述存储器中存储的程序代码或处理数据,例如执行所述安装应用程序的系统等。

所述显示器在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器用于显示在所述电子装置中处理的信息以及用于显示可视化的客户界面,例如应用菜单界面、应用图标界面等。所述电子装置的部件通过系统总线相互通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解,上述实施方式中的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件商品的形式体现出来,该计算机软件商品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明本申请各个实施例所述的方法。

也就是说,根据本发明的实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有用于执行根据本发明的实施例的所述方法的程序,所述程序被处理器执行时,执行所述方法的各个步骤。

由上,将理解,为了说明的目的,这里已描述了本发明的具体实施例,但是,可作出各个修改,而不会背离本发明的范围。本领域的技术人员将理解,流程图步骤中所绘出或这里描述的操作和例程可以多种方式变化。更具体地,可重新安排步骤的次序,可并行执行步骤,可省略步骤,可包括其它步骤,可作出例程的各种组合或省略。因而,本发明仅由所附权利要求限制。

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