Advertisement
Guest User

pivot rotation thing

a guest
Sep 29th, 2019
626
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.09 KB | None | 0 0
  1.             v2f vert (appdata v)
  2.             {
  3.                 v2f o;        
  4.                
  5.                 o.normal = UnityObjectToWorldNormal(v.normal);
  6.                
  7.                 o.uv2 = v.uv2;        
  8.                 o.uv0 = v.uv0;
  9.                 o.pivot = float3(-v.uv0.x, v.uv1.y, -v.uv0.y);
  10.                 o.oPos = v.pos.xyz;
  11.                
  12.                 float3 linePoint = o.pivot - _Point;
  13.                 float3 dirPoint = normalize(linePoint);
  14.                 float3 angle = normalize(cross(dirPoint, float3(0,1,0)));
  15.                
  16.                 v.pos.xyz = mul(AngleAxis3x3(_Rot * 3.141592, angle), v.pos - o.pivot);
  17.                 v.pos.xyz += o.pivot;
  18.                
  19.                 float influence = 1 - saturate(sdBox(linePoint, 1) * 0.5);
  20.                 influence = 1 - saturate(sdTorus(linePoint, float2(3, 1)) * 0.5);
  21.                 v.pos.y -= influence * _Intensity;
  22.                 v.pos.xyz = lerp(o.oPos.xyz, v.pos.xyz, influence);
  23.                
  24.                 o.pos = UnityObjectToClipPos(v.pos);
  25.                 return o;
  26.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement