【Unity Shaders】模版测试之彩色 + 灰度处理,不影响物体前后顺序 免费下载

18 篇文章 1 订阅

近期有小伙伴提了一个需求,选中物体是彩色显示,非选中物体灰色显示,物体排序正常,所以实现了一个简单的需求,先上图

 推一个公众号啊,欢迎大家关注,我会定期更新内容,小伙伴们也可以提个工作中的需求,近量帮助大家!!!

微信号:ITComputerGraph

关注公众号《IT木子李

 

 这里应用了相机的图像处理和模版测试,需要两个相机,一个相机渲染场景,一个相机渲染要选中的物体

场景相机需要做灰度处理,提取图片亮度信息有固定公式,我们采样图像,然后提取亮度再输出就可以了

同时支持亮度对比度调节

float		_Brightness;
float		_Contrast;
fixed4 frag(v2f i) : SV_Target
{
	float4	renderTex		=	tex2D(_MainTex, i.uv);
	fixed	luminance		=	0.2125 * renderTex.r + 0.7154 * renderTex.g + 0.0721 * renderTex.b;
			luminance		*=	_Brightness;
	float	avgColor		=	0.5;
	float	finalColor		=	lerp(0.5, luminance, _Contrast);
	return fixed4(finalColor, finalColor, finalColor, 1);
}

 接下来是两个物体的shader部分,我们的方块是要彩色显示的,球要灰色处理,但球还在方块的前面,所以球不需要输出颜色信息,这样我们给一个用当前颜色,模版值设为2

Stencil{
	Ref 2
	Comp Always
	Pass Replace
}

 再看方块shader,球以外没有被挡住的部分要正常渲染,挡住的扔掉,所以模版值也设为2,只要不等于2的,我们就认没有挡住

Stencil{
	Ref 2
	Comp NotEqual
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linda012518

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值