// material constants const float3 ambientMaterial= float3(0.5, 0.5, 0.5); const float3 diffuseMaterial = float3(1.0, 1.0, 1.0); const float3 specularMaterial = float3(0.3, 0.3, 0.3); //------------------------------------------ // a fényerőt számító fv. // l = light vector, r = reciprok négyzet radius: 1.0/(r*r) //------------------------------------------ float SQR(float x) { return x*x; } float Attenuation(float3 Light) { return 10.0 / dot(Light, Light); } //----------------------------------------------------------------------------- // Illumination function used in shading: all input vectors are normalized //----------------------------------------------------------------------------- float4 Illumination(float3 Light, float3 Normal, float3 View, float2 TexCoord, float Attenuation) { // Blinn lighting float3 Half = normalize(Light + View); float Diffuse = dot(Normal, Light); float Specular = dot(Normal, Half); float4 Lighting = lit(Diffuse, Specular, 16); float4 Color= tex2D(ColorMapSampler, TexCoord); return float4( Lighting.x * ambientMaterial * Color + (Lighting.y * diffuseMaterial * Color + Lighting.z * specularMaterial) * Attenuation, 1); }