Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uniform vec3 color_value = vec3(1.0,0.1,0.1);
- //uniform sampler2D color_texture;
- MAIN_PASS
- {
- //vec4 albedo = texture(color_texture, uv[0]) * vec4(color_value, 1);
- vec4 albedo = vec4(color_value, 1);
- for (int i = 0; i < scene_lights.sun_lights_count; i++)
- {
- SunLight sun_light = scene_lights.sun_lights[i];
- COLOR += (albedo * vec4(sun_light.color,1)) * max(0, dot(-sun_light.direction, normal));
- }
- for (int i = 0; i < scene_lights.point_lights_count; i++)
- {
- PointLight point = scene_lights.point_lights[i];
- float normalized_distance = distance(position, point.position) / point.radius;
- normalized_distance = clamp(normalized_distance, 0, 1);
- float d = dot(normalize(point.position - position), normal);
- d = clamp(d,0,1);
- COLOR += (albedo * vec4(point.color,1)) * (1.0 - normalized_distance) * d;
- }
- for (int i = 0; i < scene_lights.spot_lights_count; i++)
- {
- SpotLight spot = scene_lights.spot_lights[i];
- float spot_angle = dot(spot.direction, normalize(position - spot.position));
- spot.angle /= 2.0;
- spot_angle = acos(spot_angle);
- float normalized_distance = distance(position, spot.position) / spot.radius;
- normalized_distance = clamp(normalized_distance, 0, 1);
- float d = dot(-spot.direction, normal);
- d = clamp(d,0,1);
- if(spot_angle < spot.angle)
- {
- COLOR += (albedo * vec4(spot.color,1)) * (1.0 - normalized_distance) * d;
- }
- }
- }
Add Comment
Please, Sign In to add comment