本帖最后由 InsanelyGreat 于 2021-10-23 16:51 编辑
很高兴在这里和大家分享基础知识。 作为一名底层Unity特效仔,经常需要做一些练习来提升自己,于是我们不可避免的与着色器(Shader)打交道。在Unity中,使用着色器生成材质(Material)并且在其中使用不同的贴图做出特殊效果是必须掌握的技能。许多同学选择自定义Shader用以做出不同的效果来提升自己,在这个过程中经常会问到例如“为什么插件用不了,全粉”“为什么我连出来的shader在一个能用而在另外一个不能用”等等这种问题。本篇文章意在解决这些问题,为我们的创作之路减少一些障碍。
1.渲染管线的问题 1.1什么是渲染管线 渲染管线(Rendering Pipeline)其实就是GPU渲染流程,当然作为特效我们不需要理解其中的具体流程。 Unity在2018版本之后推出了可编辑渲染管线并且在这个基础上推出了俩个模板,通用渲染管线-URP-UniversalRenderPilenline(改名前为轻量级渲染管线-LWRP-LightweightRenderPilenline)和高清渲染管线-HDRP-HighDefinitionRenderPileline。加上之前内置渲染管线-BulitInRenderPipeline我们做练习就有三个选择。
实际上URP和HDRP都统称为SRP 在这里需要郑重声明 千万不要随意更改渲染管线!!
在这三个渲染管线中,我们所做的shader并不能同时兼容,这也是为什么经常会出现在这个项目能正常使用,而在另外一个项目“全粉”的问题。 那么我们应该如何确认我们的渲染管线呢?
1.2如何确认和选择渲染管线 如果是创建项目,在创建面板的左侧有选择模板的选项。3D对应着内置渲染管线,下面也有URP(LWRP-2018预览版本)与HDRP的选项。在这里选择好便是对应模板的项目
2018,URP改名前还叫LWRP
2019,就改名了
如果是已打开的项目, 在左上角Edit->ProjectSetting->Graphics确认你项目目前使用的渲染管线。图示为URP,HDRP为DefaultHDRPAsset ,如果这里为None,则为BulitIn
图为URP的配置图
2.材质编辑器的问题 2.1材质编辑器的兼容性问题 选择不同的渲染管线对熟知的几个连连看材质编辑器有很严重的兼容性问题,下图表格写出了兼容与否
做的挺烂的,应该看得懂吧?
2.2材质编辑器的其他问题 在这里还有几个小问题需要单独进行说明 ShdaerForge(以下简称SF)对不同大版本的Unity也有兼容性问题,所以你不仅只能在3D项目的默认渲染管线中使用SF,还要对导入的SF包进行甄别,使用与你大版本号相同的SF包才能正常使用。例如我是用Unity2018.4.36创建或者打开的项目,如果我需要使用SF则要导入SF2018版本的插件包。SF已经不再更新与维护,每次Unity的大版本更新需要其他的大佬升级版本获得新的插件包才能正常使用。
Amplify Shader Editor(以下简称ASE)在这其中是兼容性最好的,插件本身对各个版本都能使用,对不同管线也能有比较好的支持而且使用体验比较好,是我最喜欢的一款插件。但是要注意,如果你的ASE版本较低,对高版本的URP/HDRP支持可能会出现问题。ASE插件正版售价80刀(今年进行了一波涨价,什么时候再半价啊我还没上车淦),在不同渲染管线中shader模板是不一样的,在不同管线的项目中导入插件并且切换正确的模板重新链接主节点进行重新编译,大部分情况下便可完成兼容问题(对特效的unlit来说)。 不同管线下请使用对应的模板 如果是URP请选择ShaderType中Universal下的模板进行制作。如果是HDRP请选择HD下的模板进行制作。默认渲染管线的ASE不会出现上述的Universal和HD的选项,所以不用担心这一点。
ShaderGraph(以下简称SG)是Unity官方推出的一款插件,本身是与SRP一起推出所以只支持URP和HDRP。由于是官方支持,在你创建URP和HDRP项目时候便会自带SG,所以无需配置而且在新管线中兼容性比较好。请不要再自己下载插件并且自己配置了!关于SG无法使用的大部分问题都是由于新手创建了默认管线项目并且自行在PackageManager中下载配置SG包和管线包导致的!
最后是弟弟我对于这三个插件选择上的问题 如果你是新手并且想学使用连连看制作shader,我建议从SG或者SF上手,这两个插件的教程比较多而且较为完善,是入坑的好选择。当你有了一些基础知识后可以选择ASE,因为ASE是真的好用并且还有一些示例包帮助我们学习一些特殊效果。 |
全部评论4