unity 模型渐变消失_(Unity3D Shader)景深渐变材质球

这篇博客介绍了如何使用Unity的Shader语言CG来创建一个景深渐变效果。Shader代码中定义了两个参数,分别表示景深渐变的开始和结束距离,并通过计算物体与相机的距离来实现渐变效果。在fragment阶段,通过约束和饱和度操作将距离信息转化为颜色输出,从而达到调整景深的目的。
摘要由CSDN通过智能技术生成

Shader "CRLuo/DepthRamp"

{

properties

{

_N("景深渐变开始距离",range(0,100)) = 0

_R("景深渐变结束距离",range(0,100)) = 20

}

SubShader

{

Pass

{

CGPROGRAM

#pragma vertex vert

#pragma fragment frag

#include "unitycg.cginc"

#pragma target 3.0

float _N;

float _R;

struct v2f

{

float4 pos:SV_POSITION;

float4 wordPos:TEXCOORD0;

};

v2f vert (appdata_base v)

{

v2f o;

//模型空间转换到裁剪空间

o.pos = UnityObjectToClipPos(v.vertex);

//模型空间转换为世界空间

o.wordPos = mul(unity_ObjectToWorld,v.vertex);

return o;

};

fixed4 frag (v2f IN) : COLOR

{

//摄像机到物体点的距离

float D = length(IN.wordPos.xyz - _WorldSpaceCameraPos.xyz);

//反转距离,约束到小于1

D = (_R - D+_N)/ _R;

//约束到1~0范围内

D = saturate(D);

//输出颜色数据

return float4(D, D, D, 1);

};

ENDCG

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值