Unity之ASE实现根据ScreenPosition改变渲染效果

前言

我们知道ScreenPosition节点,代表了屏幕空间的坐标,那么它有哪些用处呢?今天我们就来给大家演示一个效果,如下图所示:我们拉远拉进摄像机的位置,任务的渲染会根据不同距离有一定变化。

ScreenPosition介绍

Screen Position 节点输出当前像素的屏幕位置。根据所选的类型参数,位置值会有不同。
Normalized:位置值在 x 轴和 y 轴的 [0,1] 范围内设置。
Screen:位置值根据实际屏幕尺寸设置。

实现原理

1.虚化效果

我们使用Normalized模式的ScreenPosition,取它的X和Y,然后和自定义Tilling相乘,得到我们想要的密度,贴图可以自定义,主要可以形成如下点状集合即可,最后结果R输出到一个Register Local Var节点[Alpha]上
Unity之ASE实现根据ScreenPosition改变渲染效果_第1张图片

2.远近阈值

记得使用Screen模式的ScreenPosition.取它的W,进行Smootstep,
根据DistanceMin和DistanceMax,我们可以基于它来处理渐变࿰

你可能感兴趣的:(Unity之ASE入门到精通,unity,ASE,Amplify,Shader,ScreenPosition,shader)