Files
PhysX4.1/physx/samples/sampleframework/media/shaders/fragment/primitives_lighting.cg
2025-11-28 23:13:44 +05:30

24 lines
818 B
Plaintext

#include <globals.cg>
struct FragmentParameters
{
#if !defined(GLSL_COMPILER)
half4 screenSpacePosition : SV_POSITION;
#else
half4 screenSpacePosition : POSITION;
#endif
half3 worldSpacePosition : TEXCOORD1;
half3 worldSpaceNormal : TEXCOORD2;
half4 color : COLOR;
};
half4 fmain(FragmentParameters params) : COLOR0
{
half3 lightColor = (half3)g_lightColor * (half)g_lightIntensity;
half3 diffuseColor = (half)saturate(dot(params.worldSpaceNormal, -g_lightDirection)) * lightColor;
float3 surfToEye = normalize(params.worldSpacePosition - g_eyePosition);
float specularPower = 5.0;
half3 specularColor = (half)pow(saturate(dot(reflect(-g_lightDirection, params.worldSpaceNormal), surfToEye)), specularPower) * lightColor;
return params.color * half4(diffuseColor + specularColor, 1);
}