explosions make light now.
This commit is contained in:
parent
544282dd84
commit
fc2d4c5028
7 changed files with 81 additions and 13 deletions
|
|
@ -10,6 +10,10 @@ uniform vec3 materialColor;
|
|||
uniform int materialKind;
|
||||
uniform int materialSeed;
|
||||
|
||||
uniform int explLightsNum;
|
||||
uniform vec3 explLightsPos[10];
|
||||
uniform float explLightsIntensities[10];
|
||||
|
||||
void main()
|
||||
{
|
||||
vec3 Eye = normalize(-vertex);
|
||||
|
|
@ -27,7 +31,31 @@ void main()
|
|||
vec3 color = materialColor;
|
||||
color = max(vec3(0.0), min(vec3(1.0), color));
|
||||
|
||||
vec3 IDiffuse = vec3(color) * lightColor * max(dot(normal, lightDirection), 0.0);
|
||||
//vec3 light = lightColor * max(dot(normal, lightDirection), 0.0);
|
||||
vec3 light = vec3(0.0);
|
||||
|
||||
int i;
|
||||
for (i=0; i<explLightsNum; i++) {
|
||||
vec3 explLightColor = vec3(1.0, 0.8, 0.3);
|
||||
vec3 diff = vertex - explLightsPos[i];
|
||||
float l = 10.0*length(diff);
|
||||
float dir = max(0.0, -dot(normal, diff));
|
||||
float dp = max(0.0, 1.0-l);
|
||||
|
||||
float intensity = 10.0;
|
||||
if (dp == 0.0) {
|
||||
intensity *= dir;
|
||||
} else {
|
||||
intensity *= dp;
|
||||
}
|
||||
intensity /= 1.0 + 0.5*l*l;
|
||||
|
||||
light += intensity * pow(explLightsIntensities[i], 2.0) * explLightColor;
|
||||
}
|
||||
|
||||
light = max(vec3(0.0), light);
|
||||
|
||||
vec3 IDiffuse = vec3(color) * light;
|
||||
|
||||
// TODO make instensity/exponent as parameter
|
||||
//vec3 ISpecular = lightColor * 5.0 * pow(max(dot(Reflected, Eye), 0.0), 2.0);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
#version 120
|
||||
varying vec3 position;
|
||||
varying vec2 vertex;
|
||||
varying vec3 velocity;
|
||||
varying float decay;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ varying float decay;
|
|||
varying vec3 velocity;
|
||||
varying vec2 vertex;
|
||||
varying float explCenterDist;
|
||||
varying vec3 position;
|
||||
|
||||
uniform float aspectRatio;
|
||||
|
||||
|
|
@ -47,7 +46,6 @@ void main()
|
|||
|
||||
vertex = base.xy;
|
||||
velocity = in_velocity;
|
||||
position = in_position;
|
||||
|
||||
explCenterDist = length(explCenter - offset);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue