lit
Keywords: lit, NVIDIA, NVIDIA Cg Toolkit, Cg Toolkit, Shader, Shader Programming, GPU Shader Programming, GPU Program

> ## Name

> lit - computes lighting coefficients for ambient, diffuse, and specular lighting contributions

> ## Synopsis

>     float4 lit(float NdotL, float NdotH, float m);

>     half4 lit(half NdotL, half NdotH, half m);

>     fixed4 lit(fixed NdotL, fixed NdotH, fixed m);

> ## Parameters

> NdotL
>   The dot product of a normalized surface normal and a normalized light vector.
> NdotH
>   The dot product of a normalized surface normal and a normalized half-angle vector (for Blinn-style specular) where the half-angle vector is the sum of the normalized view vector and normalized light vector. Alternatively, the dot product of a normlized light vector and a normalized view vector reflected by a normalized surface normal could be used (for Phong-style specular).
> m
>   A specular exponent, typically described as a measure of shininess. The larger the exponent, the shinier the specular highlight, the smaller the exponent, the duller the specular highlight.

> ## Description

> The lit function is a helper function useful to compute lighting coefficients for ambient, diffuse, and specular lighting contributions. The function efficiently maps to a native instruction for most GPUs.

> lit returns a 4-component vector arranged as follows:

> x
>   The ambient coefficient that is always 1.0.
> y
>   The diffuse coefficient that is zero if NdotL is less than zero, and NdotL otherwise.
> z
>   The specular coefficient that is zero if either NdotL or NdotH are less than zero, and otherwise NdotH raised to the power m.
> w
>   Always 1.0.

> ## Reference Implementation

> lit accepting <float> parameters could be implemented this way:

>     float4 lit(float NdotL, float NdotH, float m)
>     {
>       float specular = (NdotL > 0) ? pow(max(0.0, NdotH), m);
>       return float4(1.0, max(0.0, NdotL), specular, 1.0);
>     }

> ## Profile Support

> lit is supported in all profiles.

> ## See Also

> dot, max, normalize, pow