float3 binormal = cross(v.normal, v.tangent.xyz) * v.tangent.w;
float3x3 rotation = float3x3(v.tangent.xyz, binormal, v.normal);
o.tangentToWorld = mul((float3x3)unity_ObjectToWorld, transpose(rotation));
float3 worldViewDir = normalize (UnityWorldSpaceViewDir(worldPos));
o.viewDir = worldViewDir;
float3 shade = ShadeSH9(float4(o.normal,1));
shade = max(shade, (unity_AmbientSky + unity_AmbientGround + unity_AmbientEquator) * 0.15); //Don’t go to 0 even if there’s no significant lighting data
o.vertLight.xyz = lerp(1, shade, _LightStr);
//vertlight.w is currently unused