【Unity Shaders】敖丙 的冰凍爆裂技能 免費下載

在帝都每天擠地鐵上下班,無數地鐵廣告飛來,最近看到一個廣告特效:地鐵車輛由飛裂的碎片變成了一輛完整的車輛,咱也來整一個

 工程下載:關注公衆號《IT木子李》回覆:unity敖丙的冰凍爆裂技能

上代碼+講解

三個主要控制變量:_Height 當前模型被冰凍到的高度,_Alpha 模型漸變到透明的控制,_TAmount 分裂的程度

計算三角面的法線方向,也就是爆裂的方向

float3 v1 = IN[1].vertex - IN[0].vertex;
float3 v2 = IN[2].vertex - IN[0].vertex;

float3 norm = normalize(cross(v1, v2));

 通過冰凍高度變量,來控制是否冰裂,並把頂點信息輸出到fs

if(IN[0].vertex.z > _Height)
{
	for(int i = 0; i< 3; i++) {
		g2f o;
			o.world = IN[i].vertex;
			o.vertex = explode(IN[i].vertex, norm);
			o.vertex = UnityObjectToClipPos(o.vertex);
			o.uv = IN[i].uv;
		triangleStream.Append(o);
	}	
}
else
{
	for(int i = 0; i< 3; i++){
		g2f o;
			o.world = IN[i].vertex;
			o.vertex = UnityObjectToClipPos(IN[i].vertex);
			o.uv = IN[i].uv;
		triangleStream.Append(o);
	}
}

通過高度來採樣不同的貼圖

if(i.world.z > _Height)
{
	col  = tex2D(_IceTex, i.uv);
	col.a = _Alpha;
}
else
{
	col  = tex2D(_MainTex, i.uv);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章