Unity项目Lost Crypt分析-1
URP通用渲染管线和ShaderGraph
Unity官方发布了2D Sample工程Lost Crypt,地址见https://blogs.unity3d.com/2019/12/18/download-our-new-2d-sample-project-lost-crypt/
在这个项目中汇集了许多最新的2D游戏制作技术,在分析这个项目的过程中,我将把点滴记录下来。这篇先从Universal Render Pipeline和Shader Graph开始
渲染管线
参考:https://docs.unity3d.com/2019.3/Documentation/Manual/render-pipelines.html
渲染管线用于对屏幕内容进行一系列操作,比如剔除(剔除遮挡的物体之类的),渲染,后期处理。
各种渲染管线的性能不同。
移动端推荐Universal RP,高性能高画质的推荐HDRP。
URP和Shader Graph安装
需要在Package Manager中安装,也可以直接安装Universal RP(安装轻量管线和高清管线也是可以的,看官方说法,Universal RP是LWRP的演进,不过不明白为什么PackageManager中 Universal RP 和LWRP是并存的?),ShaderGraph会作为依赖项被安装。
image.png
然后需要创建RenderPipeline Asset,并配置给Project Settings中的Graphics
参考:https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@7.1/manual/configuring-universalrp-for-use.html
然后,就可以使用ShaderGrapgh创建Shader了。
从天空看起
天空使用材质ShaderGraph_Background_Unlit,纹理图使用一张星空图。通过调整Fog的透明度,就可以实现白天和黑夜的转换。
TuneFog.gif
这个Shader的逻辑就是首先Texture和Tint颜色相乘,然后与Fog的颜色做Lerp,用Fog的Alpha通道做T来控制Lerp的力度。
Sky-Background对象上还有个VisibleOnlyDuringNight的脚本,控制只有在夜晚模式的时候,Render被启用。所以这个对象其实在白天状态下,是不被Render的,那背景其实应该是灰色的才对,但是它看起来背景依然是蓝色。如下图的对比:
image.png
这是因为主相机配置的蓝色的底色。如果我们把VisibleOnlyDuringNight禁用,并且调整主相机的底色,就可以看到差别:
image.png