0
点赞
收藏
分享

微信扫一扫

Unity3D实战【九】Shader Graph 遮挡剔除

夹胡碰 2022-04-25 阅读 57
unity游戏

一、在Materials文件下创建Shader Graph文件夹

  • 然后右键creaet->shader->URP->Unlit Shader Graph(Occlusion Shader)
  • 基于shader创建Material-Occlusion:点击刚刚创建的Shader,右键Create->Material(Occlusion)

二、双击OcclusionShader打开窗口

  • 勾选Alpha Clip在这里插入图片描述
  • 添加新Node->Fresnel Effect:光圈效果,(替代人物原有的shader让player被遮挡后可以被看到)
  • 更改颜色,在Inspector窗口后期可以修改:在左上角+Color变量,可在右边Node Setting中进行调整,将color拖拽出来
  • 让color和Fresnel发生乘法的效果,可以将颜色加到其中:
    Fresnel out添加Multiply(A4)——Color连接B(4)——Out(4)连接Fragment(Base Color(3))在这里插入图片描述
  • Fresnel有噪点的效果
    creatNode(Dither)- 为其添加Float变量(Dither) - 输出到Alpha - 设置Float的值即可看出效果
  • 设置阈值来控制Alpha
    添加Float变量(AlphaThreshold)连接alpha threshold
    在这里插入图片描述
  • 左上角save Asset保存

三、Pipeline Setting 实现人物被遮挡时应用上面设置的材质

  • 点击Pipeline Setting文件夹里的UniversalRenderPipelineAsset_Renderer
  • inspector下点击 Add Renderer Feature -> Render Object
  • 如图所示修改设置在这里插入图片描述

支线

树木遮挡了鼠标射线解决方法
1、忽略射线:把所有树的Layer设置为Ignore Raycast
2、关闭树木的meshCollier

举报

相关推荐

0 条评论