You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			92 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
		
		
			
		
	
	
			92 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
| 
								 
											1 year ago
										 
									 | 
							
								Shader "Custom/SquishyDeform" {
							 | 
						||
| 
								 | 
							
									Properties {
							 | 
						||
| 
								 | 
							
										_MainTex ("Albedo (RGB)", 2D) = "white" {}
							 | 
						||
| 
								 | 
							
										_Metallic("Metallic/Smoothness", 2D) = "white" {}
							 | 
						||
| 
								 | 
							
										_Normal("Normal", 2D) = "bump" {}
							 | 
						||
| 
								 | 
							
										_Deform("Deform Factor", Range(0,1)) = 0
							 | 
						||
| 
								 | 
							
										_PinchDeform("Pinch Deform Factor", Range(0,1)) = 0
							 | 
						||
| 
								 | 
							
										_Rough("Deform Roughness", Range(0,1)) = 0.1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										_Goo("Goo Texture", 2D) = "white" {}
							 | 
						||
| 
								 | 
							
										_ColorA ("Goo Color A", Color) = (1,1,1,1)
							 | 
						||
| 
								 | 
							
										_ColorB("Goo Color B", Color) = (1,0,0,1)
							 | 
						||
| 
								 | 
							
										_GooN("Goo Flow", 2D) = "bump" {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										_Flow("Flow Speed", Vector) = (0,1,0,-1)
							 | 
						||
| 
								 | 
							
										_FlowFac("Flow Factor", Range(-1,1)) = 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									SubShader {
							 | 
						||
| 
								 | 
							
										Tags { "RenderType"="Opaque" }
							 | 
						||
| 
								 | 
							
										LOD 200
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										CGPROGRAM
							 | 
						||
| 
								 | 
							
										// Physically based Standard lighting model, and enable shadows on all light types
							 | 
						||
| 
								 | 
							
										#pragma surface surf Standard fullforwardshadows
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										#pragma target 3.0
							 | 
						||
| 
								 | 
							
										#include "Tessellation.cginc"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										struct appdata {
							 | 
						||
| 
								 | 
							
											float4 vertex : POSITION;
							 | 
						||
| 
								 | 
							
											float4 tangent : TANGENT;
							 | 
						||
| 
								 | 
							
											float3 normal : NORMAL;
							 | 
						||
| 
								 | 
							
											float2 texcoord : TEXCOORD0;
							 | 
						||
| 
								 | 
							
										};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										sampler2D _MainTex;
							 | 
						||
| 
								 | 
							
										sampler2D _Metallic;
							 | 
						||
| 
								 | 
							
										sampler2D _Normal;
							 | 
						||
| 
								 | 
							
										sampler2D _Goo;
							 | 
						||
| 
								 | 
							
										sampler2D _GooN;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										struct Input {
							 | 
						||
| 
								 | 
							
											float2 uv_MainTex;
							 | 
						||
| 
								 | 
							
											float2 uv_Goo;
							 | 
						||
| 
								 | 
							
											float2 uv_GooN;
							 | 
						||
| 
								 | 
							
											float4 col : COLOR;
							 | 
						||
| 
								 | 
							
										};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										half _Deform;
							 | 
						||
| 
								 | 
							
										half _PinchDeform;
							 | 
						||
| 
								 | 
							
										half _Rough;
							 | 
						||
| 
								 | 
							
										fixed4 _ColorA;
							 | 
						||
| 
								 | 
							
										fixed4 _ColorB;
							 | 
						||
| 
								 | 
							
										half4 _Flow;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										half _FlowFac;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										void surf (Input IN, inout SurfaceOutputStandard o) {
							 | 
						||
| 
								 | 
							
											// Albedo comes from a texture tinted by color
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											fixed4 goo = _ColorA;
							 | 
						||
| 
								 | 
							
											half t = _Time.r;
							 | 
						||
| 
								 | 
							
											float2 goon = UnpackNormal(tex2D(_GooN, IN.uv_GooN + float2(t*_Flow.x, _Time.r * _Flow.y)));
							 | 
						||
| 
								 | 
							
											half gool = tex2D(_Goo, IN.uv_Goo + float2(t*_Flow.z, t* _Flow.w) + goon * _FlowFac);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											goo = lerp(goo, _ColorB, gool);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
							 | 
						||
| 
								 | 
							
											half def = lerp(saturate(_Deform)* saturate(pow(IN.col.r, 0.4)),1, saturate(_PinchDeform)* saturate(pow(IN.col.g, 0.4))) ;
							 | 
						||
| 
								 | 
							
											o.Albedo = lerp(c.rgb,goo,def);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											o.Normal = UnpackNormal(tex2D(_Normal, IN.uv_MainTex));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											fixed4 ms = tex2D(_Metallic, IN.uv_MainTex);
							 | 
						||
| 
								 | 
							
											o.Metallic = ms.r;
							 | 
						||
| 
								 | 
							
											o.Smoothness = lerp(ms.a, 1-_Rough, def);
							 | 
						||
| 
								 | 
							
											o.Alpha = c.a;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										ENDCG
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									FallBack "Diffuse"
							 | 
						||
| 
								 | 
							
								}
							 |