| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // Contains common structures for IS
- // Plane
- struct Plane
- {
- vec4 normalOffset;
- };
- // Contains the plane grid
- struct Tilegrid
- {
- Plane planesX[TILES_X_COUNT - 1];
- Plane planesY[TILES_Y_COUNT - 1];
- Plane planesNear[TILES_COUNT];
- Plane planesFar[TILES_COUNT];
- };
- // Representation of a tile
- struct Tile
- {
- uvec4 lightsCount;
- };
- struct PointLightIndices
- {
- uvec4 indices[MAX_POINT_LIGHTS_PER_TILE / 4];
- };
- struct SpotLightIndices
- {
- uvec4 indices[MAX_SPOT_LIGHTS_PER_TILE / 4];
- uvec4 indicesTex[MAX_SPOT_TEX_LIGHTS_PER_TILE / 4];
- };
- // The base of all lights
- struct Light
- {
- vec4 posRadius; // xyz: Light pos in eye space. w: The -1/radius
- vec4 diffuseColorShadowmapId; // xyz: diff color, w: shadowmap tex ID
- vec4 specularColorTexId; // xyz: spec color, w: diffuse tex ID
- };
- // Point light
- #define PointLight Light
- // Spot light
- struct SpotLight
- {
- Light lightBase;
- vec4 lightDir;
- vec4 outerCosInnerCos;
- vec4 extendPoints[4]; // The positions of the 4 camera points
- };
- // Spot light with texture
- struct SpotTexLight
- {
- SpotLight spotLightBase;
- mat4 texProjectionMat;
- };
- // A container of many lights
- struct Lights
- {
- uvec4 count; // x: points, z:
- PointLight pointLights[MAX_POINT_LIGHTS];
- SpotLight spotLights[MAX_SPOT_LIGHTS];
- SpotTexLight spotTexLights[MAX_SPOT_TEX_LIGHTS];
- };
|