unity 3d 实现遮挡剔除效果

目录

声明:

1.首先创建Unilt Shader Graph 

2.设置Alpha透明通道

3)添加实心填充效果

4.编辑渲染管线


声明:

本教程学习均来自U3D中文课堂麦扣老师

1.首先创建Unilt Shader Graph 

2021版创建步骤:

右击文件夹->create->Shader Graph->URP->Unilt Shader Graph

2.设置Alpha透明通道

1)在右侧Graph Inspector的Graph Settings中勾选Alpha Clipping以方便设置Alpha透明通道,并在在空白处右击新建Create Node 输入选择Multiply,利用该乘法可以将颜色加入到费尼尔现象当中。

               

2)为Alpha的透明设置颜色输出

在左侧Occlusion Shader点击"+"并选择Color,将"Color"控件拖动至编辑框空白处中,单击该控件,于右侧Graph Inspector中的Node Settings下的Default中设置相应的颜色。

并将对应的控件和输出相连接,如图所示:

3)添加实心填充效果

1)为费尼尔现象再添加一个噪点的效果类似于实心填充,在空白处右键新建在Create Node中输入选择Dither

我们可以在x处左右拖动,观察到可以用参数x的数值在调整实心填充的效果。于是我们可以添加一个变量。

2)在Occlusiton Shader中单击"+"添加Float,添加一个变量,想我们刚刚创建“Color”控件一样,将该控件拖动至编辑框的空白处。单击为它设置数值,并向如下图一样进行关联。

4.编辑渲染管线

回到游戏编辑界面,对渲染管线进行编辑。默认在Pipeline Settings中的Universal Render Pipeline Asset_Renderer

 

在Inspector中单击Add Renderer Feature->Render Objevts(Experimental),在Material中选择刚刚我们创建编辑的"Occlusion"效果,导入到渲染管线中。

这里我勾选深度"Depth",并将深度比例"Depth Test"设置为Greater,意味着更远的深度的效果,比如我们将人物Player移动至物体后可以实现"Occlusion"透明的效果。

 切换至game页面,我们可以发现我们想要的透明剔除效果已经实现了!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部