Skip to content

SpaRcle Shader Language (SRSL) Handbook

Shader variables Types
  • Trivial types:
    • int, uint, float, bool (int alias)
  • Floating vectors:
    • vec2, vec3, vec4
  • Integer vectors:
    • ivec2, ivec3, ivec4
  • Boolean vectors:
    • bvec2, bvec3, bvec4
  • Matrices:
    • mat2, Mat3, mat4
  • Samplers:
    • sampler1D, sampler2D, sampler3D, samplerCube, sampler1DShadow, sampler2DShadow, sampler2DMS
Default shader uniforms
  • Shared

    • mat4 VIEW_MATRIX
    • mat4 INVERSE_VIEW_MATRIX
    • mat4 PROJECTION_MATRIX
    • mat4 INVERSE_PROJECTION_MATRIX
    • mat4 PROJECTION_NO_FOV_MATRIX
    • mat4 ORTHOGONAL_MATRIX
    • mat4 VIEW_NO_TRANSLATE_MATRIX
    • mat4 LIGHT_SPACE_MATRIX
    • float TIME
    • float CAMERA_FAR
    • float CAMERA_NEAR
    • int RENDER_PASS_TYPE
    • vec2 RESOLUTION
    • vec2 ASPECT
    • mat4[4] CASCADE_LIGHT_SPACE_MATRICES
    • vec4 CASCADE_SPLITS
    • vec3 DIRECTIONAL_LIGHT_DIRECTION
    • vec3 VIEW_POSITION
    • vec3 VIEW_DIRECTION
  • Per Mesh

    • mat4 MODEL_MATRIX
    • mat4 MODEL_NO_SCALE_MATRIX
    • vec2 HALF_SIZE_NEAR_PLANE
    • vec2 SLICED_TEXTURE_BORDER
    • vec2 SLICED_WINDOW_BORDER
    • vec3 LINE_START_POINT
    • vec3 LINE_END_POINT
    • vec4[64] SSAO_SAMPLES
    • vec4 LINE_COLOR
    • vec4 RGBA_VALUE
    • float TEXT_RECT_X
    • float TEXT_RECT_Y
    • float TEXT_RECT_WIDTH
    • float TEXT_RECT_HEIGHT
Fragment shader outputs
  • vec4 COLOR (alias for COLOR_INDEX_0)
  • vec4 COLOR_INDEX_0
  • vec4 COLOR_INDEX_1
  • vec4 COLOR_INDEX_2
  • vec4 COLOR_INDEX_3
  • vec4 COLOR_INDEX_4
  • vec4 COLOR_INDEX_5
  • vec4 COLOR_INDEX_6
  • vec4 COLOR_INDEX_7
Fragment shader inputs
  • Spatial/SpatialCustom:
    • vec3 VERTEX;
    • vec2 UV;
    • vec3 NORMAL;
    • vec3 TANGENT;
    • vec3 BITANGENT;
  • Skinned:
    • vec3 VERTEX;
    • vec2 UV;
    • vec3 NORMAL;
    • vec3 TANGENT;
    • vec3 BITANGENT;
    • uint WEIGHTS_COUNT;
    • vec2[8] WEIGHTS;
Vertex shader inputs
  • Spatial/SpatialCustom:
    • vec3 VERTEX;
    • vec2 UV;
    • vec3 NORMAL;
    • vec3 TANGENT;
    • vec3 BITANGENT;
  • Skinned:
    • vec3 VERTEX;
    • vec2 UV;
    • vec3 NORMAL;
    • vec3 TANGENT;
    • vec3 BITANGENT;
    • uint WEIGHTS_COUNT;
    • vec2[8] WEIGHTS;

In progress...