Commit 3bff8c88 authored by chili's avatar chili
Browse files

probably a good idea to attenuate the specular as well

parent 9c50145e
...@@ -23,7 +23,7 @@ float4 main( float3 worldPos : Position,float3 n : Normal ) : SV_Target ...@@ -23,7 +23,7 @@ float4 main( float3 worldPos : Position,float3 n : Normal ) : SV_Target
const float3 vToL = lightPos - worldPos; const float3 vToL = lightPos - worldPos;
const float distToL = length( vToL ); const float distToL = length( vToL );
const float3 dirToL = vToL / distToL; const float3 dirToL = vToL / distToL;
// diffuse attenuation // attenuation
const float att = 1.0f / (attConst + attLin * distToL + attQuad * (distToL * distToL)); const float att = 1.0f / (attConst + attLin * distToL + attQuad * (distToL * distToL));
// diffuse intensity // diffuse intensity
const float3 diffuse = diffuseColor * diffuseIntensity * att * max( 0.0f,dot( dirToL,n ) ); const float3 diffuse = diffuseColor * diffuseIntensity * att * max( 0.0f,dot( dirToL,n ) );
...@@ -31,7 +31,7 @@ float4 main( float3 worldPos : Position,float3 n : Normal ) : SV_Target ...@@ -31,7 +31,7 @@ float4 main( float3 worldPos : Position,float3 n : Normal ) : SV_Target
const float3 w = n * dot( vToL,n ); const float3 w = n * dot( vToL,n );
const float3 r = w * 2.0f - vToL; const float3 r = w * 2.0f - vToL;
// calculate specular intensity based on angle between viewing vector and reflection vector, narrow with power function // calculate specular intensity based on angle between viewing vector and reflection vector, narrow with power function
const float3 specular = (diffuseColor * diffuseIntensity) * specularIntensity * pow( max( 0.0f,dot( normalize( -r ),normalize( worldPos ) ) ),specularPower ); const float3 specular = att * (diffuseColor * diffuseIntensity) * specularIntensity * pow( max( 0.0f,dot( normalize( -r ),normalize( worldPos ) ) ),specularPower );
// final color // final color
return float4(saturate( (diffuse + ambient + specular) * materialColor ),1.0f); return float4(saturate( (diffuse + ambient + specular) * materialColor ),1.0f);
} }
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment