利用分格的方法制作更多有趣的特效:像素化和popup mask

不管是绘制halftone图形,还是制作TriangularBillboard,都离不开一个环节,那就是格子的划分。

在格子的基础上,还可以发展出许多有趣的效果,最常见的就是像素化。

关于格子划分的问题,观看上一章:绘制halftone动画,实现星之卡比新星同盟切屏效果

首先增加两个property,用以控制在横向和纵向分格的数量。

	Properties {
		_MainTex ("Main Texture", 2D) = "white" {}
		_Progress ("Progress", Range(0,1)) = 1.0
  	
  		_SegmentX("Segment x", Float )=5
		_SegmentY("Segment y", Float )=5
	}

之后,在frag中,计算当前uv坐标所属的格子的中心位置,方法很简单,与前几章中使用的大同小异。对于将格子数量转换为每个格子在uv中所占的长度的计算,放在vert活着直接在脚本中算好传进来也都是可以的。

		fixed4 frag(v2f i) : SV_Target {					
					float2 _Diameter=fixed2(1/ceil(_SegmentX),1/ceil(_SegmentY));
					float2 center = float2(_Diameter.x*floor(i.uvORI.x/_Diameter.x), _Diameter.y*floor(i.uvORI.y/_Diameter.y));
					center+=_Diameter/2;
					return tex2D(_MainTex, center);
			}

在计算出中心位置之后,直接返回中心的颜色,我们就可以得到一张对比强烈的像素图了。

如果需要颜色变化更柔和一点,同时采样中心点周围的几个坐标的颜色,并且按照你喜欢的方式为周围坐标的颜色加上权重即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值