public Vector3 ComputeDirectLightContribution() { Vector3 specularColor = MaterialPixelStream.MaterialSpecularVisible; Vector3 fresnel = Fresnel.Compute(specularColor); float visibility = Visibility.Compute(); float normalDistribution = NormalDistribution.Compute(); Vector3 reflected = fresnel * visibility * normalDistribution / 4.0f; return(reflected * LightStream.LightSpecularColorNDotL); }