playcanvas
Version:
PlayCanvas WebGL game engine
125 lines (100 loc) • 3.8 kB
JavaScript
// uniforms for a light with index {i}, driven by defines
var lightDeclarationPS = /* wgsl */ `
uniform light{i}_color: vec3f;
uniform light{i}_direction: vec3f;
uniform light{i}_position: vec3f;
uniform light{i}_radius: f32;
uniform light{i}_direction: vec3f;
uniform light{i}_innerConeAngle: f32;
uniform light{i}_outerConeAngle: f32;
// area lights
uniform light{i}_position: vec3f;
uniform light{i}_halfWidth: vec3f;
uniform light{i}_halfHeight: vec3f;
// shadow casting
uniform light{i}_shadowMatrix: mat4x4f;
uniform light{i}_shadowIntensity: f32;
uniform light{i}_shadowParams: vec4f; // width, height, bias, radius
uniform light{i}_shadowSearchArea: f32;
uniform light{i}_cameraParams: vec4f;
uniform light{i}_softShadowParams: vec4f;
// directional (cascaded) shadows
uniform light{i}_shadowMatrixPalette: array<mat4x4f, 4>;
uniform light{i}_shadowCascadeDistances: vec4f;
uniform light{i}_shadowCascadeCount: i32;
uniform light{i}_shadowCascadeBlend: f32;
NOT SUPPORTED
/* #if defined(LIGHT{i}SHADOW_PCF)
uniform samplerCubeShadow light{i}_shadowMap;
#else
uniform samplerCube light{i}_shadowMap;
#endif
*/
var light{i}_shadowMap: texture_depth_2d;
var light{i}_shadowMapSampler: sampler_comparison;
var light{i}_shadowMap: texture_2d<f32>;
var light{i}_shadowMapSampler: sampler;
// cookie
NOT SUPPORTED
/*
uniform samplerCube light{i}_cookie;
uniform float light{i}_cookieIntensity;
#if !defined(LIGHT{i}CASTSHADOW)
uniform mat4 light{i}_shadowMatrix;
#endif
*/
NOT SUPPORTED
/* uniform sampler2D light{i}_cookie;
uniform float light{i}_cookieIntensity;
#if !defined(LIGHT{i}CASTSHADOW)
uniform mat4 light{i}_shadowMatrix;
#endif
#if defined(LIGHT{i}COOKIE_TRANSFORM)
uniform vec4 light{i}_cookieMatrix;
uniform vec2 light{i}_cookieOffset;
#endif
*/
`;
export { lightDeclarationPS as default };