Shader学习之能量场效果

本文介绍了如何在Unity中创建能量场效果,包括球体半透明、边缘蓝光、相交物体高亮以及形状抖动变化。通过使用UnityWorldSpaceViewDir处理边缘光,利用深度图计算物体相交,并在Shader中应用_CameraDepthTexture。形状抖动通过调整GrabPass的uv实现,详细技术涉及线性深度、纹理采样等。
摘要由CSDN通过智能技术生成

从效果上看,该球体是半透明的,边缘部分泛蓝光,球体表面与其他物体相交的部分会高亮,处在球体内部的其他物体形状抖动变化。

首先,边缘部分泛蓝光,根据观察方向绘制,使用UnityWorldSpaceViewDir;

其次,相交部分高亮,计算场景内物体深度和球体深度差值,相交部分的差值为0,设置相机的depthTextureMode即可生成深度图,在shader中使用_CameraDepthTexture访问深度图,LinearEyeDepth,SAMPLE_DEPTH_TEXTURE_PROJ,UNITY_PROJ_COORD这三个方法和宏的用法我也比较模糊,希望有柳暗花明的一天;

最后,形状抖动变化,变化相机的GrabTexure的uv,使用GrabPass获取GrabTexure。

Shader "chenjd/MyForceField"
{
	Properties
	{
		_Color("Color", Color) = (0, 1, 0, 1)
		_Power("Power", Range(0, 4)) = 1
		_NoiseTexture("NoiseTexture", 2D) = "white" {}
		_DistortStrength("DistortStrength", Range(0,1)) = 0.2
		_DistortTimeFactor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值