深度应用之扫描效果

深度的应用非常的重要,比如景深效果,扫描效果,还有防护罩效果,都有用到它。利用深度我们能做出需要有意思的效果出来。而且让人感觉贼厉害。今天我给大家带来一个深度应用,扫描效果。先看下效果图:

如图所示,绿色的就是扫描的效果,我们通过按键,然后让扫描仪开始扫描。从近到远进行,一闪而逝。效果还是很不错的。那么我们应该怎么做出这个效果呢?

首先,既然用到了深度,那么很明显我们就需要得到深度相关的信息了。那么在这个unity版本中,我们要拿到深度图的话,首先就要让摄像机提供场景的深度信息,很简单,就一句代码就行了:Camera.main.depthTextureMode = DepthTextureMode.Depth;然后我们需要用它,就在Shader里面直接拿就够了:sampler2D _CameraDepthTexture;这样就拿到了,然后我们就能使用它了,我们要得到某个像素的深度值的话,就需要使用宏float depth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv_depth);然后由于深度值不是线性的,我们要让它变成线性的,就需要用float linear01Depth = Linear01Depth(depth);把它变为线性的。然后就可以用了。最后就是如何扫描,那么这就需要对比当前像素的的深度,让当前像素点的深度和扫描仪此时深度进行对比。然后就能得到一个值。然后就是对符合条件的进行扫描操作。代码如下:

这里需要注意一个点,就是深度相关的基本都是和屏幕后处理有关的,所有我们需要用到OnRenderImage这个函数。然后我们通过时间来改变扫描的长度,这样的话,效果就能实现了。代码里有注释,一般能看懂,实在看不懂的可以找我拿Demo。好了,本次分享就到这里了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值