| const int MAX_LIGHTS = 8; |
| const int TYPE_POINT = 0; |
| const int TYPE_DIRECTIONAL = 1; |
| const int TYPE_SPOT = 2; |
| struct Light { |
| int type; |
| FP vec3 position; |
| FP vec3 color; |
| FP float intensity; |
| FP vec3 direction; |
| FP float constantAttenuation; |
| FP float linearAttenuation; |
| FP float quadraticAttenuation; |
| FP float cutOffAngle; |
| }; |
| uniform Light lights[MAX_LIGHTS]; |
| uniform int lightCount; |
| |
| // Pre-convolved environment maps |
| struct EnvironmentLight { |
| highp samplerCube irradiance; // For diffuse contribution |
| highp samplerCube specular; // For specular contribution |
| }; |
| uniform EnvironmentLight envLight; |
| uniform int envLightCount; |