一种多功能着色器及引擎渲染方法技术

技术编号:22566413 阅读:52 留言:0更新日期:2019-11-16 12:36
本发明专利技术公开了一种多功能着色器及引擎渲染方法,所述着色器包括混合设置模块、深度写入模块、面剔除设置模块、基础纹理模块、边缘光模块、溶解模块和流动模块;待渲染文件在各个模块中执行相应的操作,实现对待渲染文件的渲染操作。优点是:所述着色器将参数变成选择化,降低配置使用难度,通过关键字编译和实时参数的控制,可以实现768种不同组合,充分满足制作人员的日常需求;所述着色器将可变渲染选项参数化,通过界面脚本的展示,可以直接点击配置不同的参数,减少了学习成本;使用较少的文件和变体提供丰富的效果支持,减少人力资源的使用及培训成本,减少维护成本,便于统一管理。

A multi-functional shader and engine rendering method

The invention discloses a multi-functional shader and engine rendering method, the shader includes a mixed setting module, a depth writing module, a surface rejection setting module, a basic texture module, an edge light module, a dissolution module and a flow module; the file to be rendered performs corresponding operations in each module to realize the rendering operation of the file to be rendered. The advantages are: the shader turns parameters into selection, reduces the difficulty of configuration and use, and can realize 768 different combinations through keyword compilation and real-time parameter control, fully meeting the daily needs of producers; the shader parameterizes variable rendering options, and can directly click to configure different parameters through the display of interface script, reducing the learning cost; Use fewer documents and variants to provide rich effect support, reduce the use of human resources and training costs, reduce maintenance costs, and facilitate unified management.

【技术实现步骤摘要】
一种多功能着色器及引擎渲染方法
本专利技术涉及适用于unity引擎的渲染领域,尤其涉及一种多功能着色器及引擎渲染方法。
技术介绍
Unity引擎中存在大量的着色器和着色器编辑器,但是其工具上手难度大,编写难度高,效果多的情况下会导致文量增大难以管理,工作沟通不及时使得同效果冗余文件过多,进而影响打包编译时间;而单独配备人员进行文件管理与编写,浪费多余人力。
技术实现思路
本专利技术的目的在于提供一种多功能着色器及引擎渲染方法,从而解决现有技术中存在的前述问题。为了实现上述目的,本专利技术采用的技术方案如下:一种多功能着色器,所述着色器适用于unity引擎的渲染部分;所述着色器包括,渲染单元;所述渲染单元内设置有用于控制渲染逻辑的shader文件;脚本单元;所述脚本单元内设置有用于展示着色器操作界面的editor脚本;所述着色器操作界面用于接收指令并依据所述指令修改所述shader文件以更改渲染逻辑,还用于实时反馈所述指令的执行结果。优选的,所述渲染单元包括,混合设置模块;所述混合设置模块用于控制待渲染文件的本次渲染结果与缓存的混合方式;深度写入模块;所述深度写入模块用于判断待渲染文件的本次渲染是否需要写入深度,并在待渲染文件需要写入深度时,对待渲染文件执行写入深度处理;面剔除设置模块;所述面剔除设置模块用于确定待渲染文件在本次渲染中的需要被渲染的具体面;基础纹理模块;所述基础纹理模块内设置有纹理样式,所述基础纹理模块用于根据设定的纹理样式对待渲染文件进行纹理样式的处理;边缘光模块;所述边缘光模块内存储有边缘光颜色与边缘光衰减强弱值,所述边缘光模块用于判断待渲染文件是否需要使用边缘光效果,并在待渲染文件需要使用边缘光效果时,根据设置的边缘光颜色和边缘光衰减强弱值,对待渲染文件进行边缘光效果处理;溶解模块;所述溶解模块内存储有溶解使用的uv索引、溶解的边缘色、溶解用的贴图、溶解的透明阈值和溶解流动的倍速,所述溶解模块用于判断待渲染文件是否需要进行溶解处理,并在待渲染文件需要使用溶解处理时,根据设置的溶解使用的uv索引、溶解的边缘色、溶解用的贴图、溶解的透明阈值和溶解流动的倍速,对待渲染文件进行溶解处理;流动模块;所述流动模块内存储有纹理的流动扰动贴图、纹理流动的倍速、纹理扰动的强度、纹理流动的方向、纹理流动的速度以及纹理整体二层流动uv的缩放权重,所述流动模块用于根据设置的纹理的流动扰动贴图、纹理流动的倍速、纹理扰动的强度、纹理流动的方向、纹理流动的速度以及纹理整体二层流动uv的缩放权重,对待渲染文件进行纹理效果的处理;顶点扰动模块;所述顶点扰动模块内设置有扰动强度和偏移强弱;所述顶点扰动模块用于根据设定的扰动强度和偏移强弱,控制所述待渲染文件中顶点在法线方向上的位置偏移。优选的,所述混合设置模块内设置有三种混合模式,分别为alphablend、additiveblend以及custom;alphablend和additiveblend为界面预制的模式,custom可以完全自定义121种不同的混合模式。本专利技术的目的还在于提供一种引擎渲染方法,所述引擎安装在计算机内,所述引擎包括至少一个如上述任一所述的着色器,包括如下步骤,S1、所述着色器接收待渲染文件;所述脚本单元将所述着色器的操作界面进行展示;S2、所述混合设置模块接收所述待渲染文件,并对所述待渲染文件进行混合渲染混合设置;S3、所述深度写入模块接收经步骤S2处理后的待渲染文件,并判断该待渲染文件是否需要写入深度,若是,则对该待渲染文件进行写入深度处理,并执行步骤S4;若否,则直接执行步骤S4;S4、所述面剔除设置模块接收经所述步骤S3处理后的待渲染文件,并确定该所述待渲染文件中需要渲染的面;S5、所述顶点扰动模块接收经步骤S4处理后的待渲染文件,并对该待渲染文件中的顶点进行扰动偏移;S6、所述流动模块接收经步骤S5处理后的待渲染文件,并对该待渲染文件首先进行纹理扰动偏移操作,并设置纹理流动倍速;之后读取基础纹理模块中的纹理样式,对纹理样式进行采样,并根据采样的纹理样式对待渲染文件进行纹理样式处理;S7、所述边缘光模块接收经步骤S6处理后的待渲染文件,并判断该待渲染文件是否需要进行边缘光处理,若是,则对该待渲染文件进行边缘光处理,并执行步骤S8;若否,则直接执行步骤S8;S8、所述溶解模块接收经步骤S7处理后的待渲染文件,并判断该待渲染文件是够需要进行溶解处理,若是,则对该待渲染文件进行溶解处理,并执行步骤S9;若否,则直接执行步骤S9;S9、将经步骤S8处理后的待渲染文件输出到帧缓存,并经引擎统一整合绘制到所述计算机的显示界面上。优选的,将所述shader文件和所述editor脚本放入所述引擎的目录中,所述引擎会自动编译所述shader文件和所述editor脚本,以获取渲染逻辑,并展示所述着色器的操作界面。本专利技术的有益效果是:1、本专利技术的着色器将参数变成选择化,降低配置使用难度,通过关键字编译和实时参数的控制,可以实现768种不同组合,充分满足制作人员的日常需求。2、本专利技术的着色器在开启11x11的混合组合,则可以提供46464种组合样式;本着色器一个文件可以编译出48种变体,根据关键字的开启与关闭,可以实现渲染逻辑的取舍,从而实现逻辑的优化。3、将可变渲染选项参数化,通过界面脚本的展示,可以直接点击配置不同的参数,减少了学习成本。4、使用较少的文件和变体提供丰富的效果支持,减少人力资源的使用及培训成本,减少维护成本,便于统一管理。5、使用定制化界面,简化参数控制项,使用关键字,通过变体的方式减少shader文件数量,使用配置方式多种属性可直接配置化,减少shader文件数量。附图说明图1是本专利技术实施例中所述着色器的运行原理示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不用于限定本专利技术。实施例一一种多功能着色器,所述着色器适用于unity引擎的渲染部分;所述着色器包括,渲染单元;所述渲染单元内设置有用于控制渲染逻辑的shader文件;脚本单元;所述脚本单元内设置有用于展示着色器操作界面的editor脚本;所述着色器操作界面用于接收指令并依据所述指令修改所述shader文件以更改渲染逻辑,还用于实时反馈所述指令的执行结果。本实施例中,所述渲染单元包括,混合设置模块;所述混合设置模块用于控制待渲染文件的本次渲染结果与缓存的混合方式;深度写入模块;所述深度写入模块用于判断待渲染文件的本次渲染是否需要写入深度,并在待渲染文件需要写入深度时,对待渲染文件执行写入深度处理;面剔除设置模块;所述面剔除设置模块用于确定待渲染文件在本次渲染中的需要被渲本文档来自技高网...

【技术保护点】
1.一种多功能着色器,其特征在于:所述着色器适用于unity引擎的渲染部分;所述着色器包括,/n渲染单元;所述渲染单元内设置有用于控制渲染逻辑的shader文件;/n脚本单元;所述脚本单元内设置有用于展示着色器操作界面的editor脚本;/n所述着色器操作界面用于接收指令并依据所述指令修改所述shader文件以更改渲染逻辑,还用于实时反馈所述指令的执行结果。/n

【技术特征摘要】
1.一种多功能着色器,其特征在于:所述着色器适用于unity引擎的渲染部分;所述着色器包括,
渲染单元;所述渲染单元内设置有用于控制渲染逻辑的shader文件;
脚本单元;所述脚本单元内设置有用于展示着色器操作界面的editor脚本;
所述着色器操作界面用于接收指令并依据所述指令修改所述shader文件以更改渲染逻辑,还用于实时反馈所述指令的执行结果。


2.根据权利要求1所述的多功能着色器,其特征在于:所述着色器将渲染逻辑中的渲染选项参数化,并由脚本单元展示;通过在操作界面中选择不同渲染选项中的参数,以自定义所述着色器的渲染结果。


3.根据权利要求1所述的多功能着色器,其特征在于:所述渲染单元包括,
混合设置模块;所述混合设置模块用于控制待渲染文件的本次渲染结果与缓存的混合方式;
深度写入模块;所述深度写入模块用于判断待渲染文件的本次渲染是否需要写入深度,并在待渲染文件需要写入深度时,对待渲染文件执行写入深度处理;
面剔除设置模块;所述面剔除设置模块用于确定待渲染文件在本次渲染中的需要被渲染的具体面;
基础纹理模块;所述基础纹理模块内设置有纹理样式,所述基础纹理模块用于根据设定的纹理样式对待渲染文件进行纹理样式的处理;
边缘光模块;所述边缘光模块内存储有边缘光颜色与边缘光衰减强弱值,所述边缘光模块用于判断待渲染文件是否需要使用边缘光效果,并在待渲染文件需要使用边缘光效果时,根据设置的边缘光颜色和边缘光衰减强弱值,对待渲染文件进行边缘光效果处理;
溶解模块;所述溶解模块内存储有溶解使用的uv索引、溶解的边缘色、溶解用的贴图、溶解的透明阈值和溶解流动的倍速,所述溶解模块用于判断待渲染文件是否需要进行溶解处理,并在待渲染文件需要使用溶解处理时,根据设置的溶解使用的uv索引、溶解的边缘色、溶解用的贴图、溶解的透明阈值和溶解流动的倍速,对待渲染文件进行溶解处理;
流动模块;所述流动模块内存储有纹理的流动扰动贴图、纹理流动的倍速、纹理扰动的强度、纹理流动的方向、纹理流动的速度以及纹理整体二层流动uv的缩放权重,所述流动模块用于根据设置的纹理的流动扰动贴图、纹理流动的倍速、纹理扰动的强度、纹理流动的方向、纹理流动的速度以及纹理整体二层流动uv的缩放权重,对待渲染文件进行纹理效果的处理;
顶点扰动模块;所述顶点扰动模块内设置有扰动强度和...

【专利技术属性】
技术研发人员:生金龙魏丹
申请(专利权)人:北京攸乐科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1