I have tried to make a fast pbr shader using simplified cook-torrance but it still seems slow, Was wondering if anyone knows if there is a faster way? Code (CSharp): Shader "Custom/simple AO " { Properties { _MainTex ("Base (RGB) Rough (A)", 2D) = "grey" {} _BumpMap ("Normalmap", 2D) = "bump" {} } SubShader { Tags { "RenderType"="Opaque" "LightMode"="ForwardBase" "IgnoreProjector"="True" } LOD 400 CGPROGRAM #pragma surface surf Physical exclude_path:prepass novertexlights noforwardadd nolightmap halfasview sampler2D _MainTex; sampler2D _BumpMap; struct Input { float2 uv_MainTex; half nv; float4 ambcolor; }; inline fixed4 LightingPhysical( SurfaceOutput s, half3 lightDir, half3 halfDir, half atten ) { half diff= max(0,dot(s.Normal,lightDir)); half nh = saturate(dot (s.Normal, halfDir)); half lh = saturate(dot (halfDir,lightDir)); half A=s.Alpha; half spec = ((A+1)*exp2(A*nh-A))/(1+(10*(lh*lh*lh))); fixed3 main =(s.Albedo+spec) * _LightColor0.rgb* (diff *atten); fixed4 c; c.rgb =main; c.a = 0; return c; } void surf (Input IN, inout SurfaceOutput o) { fixed4 c = tex2D (_MainTex, IN.uv_MainTex); fixed3 main = c; o.Albedo = main; o.Alpha =1*exp2(8* (c.a)+1) ; o.Normal =UnpackNormal(tex2D(_BumpMap, IN.uv_MainTex)); } ENDCG } FallBack "Mobile/Diffuse" }