UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

75 lines (72 loc) 2.01 kB
var lightDeclarationPS = ` #if defined(LIGHT{i}) uniform light{i}_color: vec3f; #if LIGHT{i}TYPE == DIRECTIONAL uniform light{i}_direction: vec3f; #else #define LIT_CODE_LIGHTS_POINT uniform light{i}_position: vec3f; uniform light{i}_radius: f32; #if LIGHT{i}TYPE == SPOT #define LIT_CODE_LIGHTS_SPOT uniform light{i}_direction: vec3f; uniform light{i}_innerConeAngle: f32; uniform light{i}_outerConeAngle: f32; #endif #endif #if LIGHT{i}SHAPE != PUNCTUAL #define LIT_CODE_FALLOFF_SQUARED #if LIGHT{i}TYPE == DIRECTIONAL uniform light{i}_position: vec3f; #endif uniform light{i}_halfWidth: vec3f; uniform light{i}_halfHeight: vec3f; #else #if LIGHT{i}FALLOFF == LINEAR #define LIT_CODE_FALLOFF_LINEAR #endif #if LIGHT{i}FALLOFF == INVERSESQUARED #define LIT_CODE_FALLOFF_SQUARED #endif #endif #if defined(LIGHT{i}CASTSHADOW) uniform light{i}_shadowMatrix: mat4x4f; uniform light{i}_shadowIntensity: f32; uniform light{i}_shadowParams: vec4f; #if LIGHT{i}SHADOWTYPE == PCSS_32F uniform light{i}_shadowSearchArea: f32; uniform light{i}_cameraParams: vec4f; #if LIGHT{i}TYPE == DIRECTIONAL uniform light{i}_softShadowParams: vec4f; #endif #endif #if LIGHT{i}TYPE == DIRECTIONAL uniform light{i}_shadowMatrixPalette: array<mat4x4f, 4>; uniform light{i}_shadowCascadeDistances: vec4f; uniform light{i}_shadowCascadeCount: i32; uniform light{i}_shadowCascadeBlend: f32; #endif #if LIGHT{i}TYPE == OMNI NOT SUPPORTED #else #if defined(LIGHT{i}SHADOW_PCF) var light{i}_shadowMap: texture_depth_2d; var light{i}_shadowMapSampler: sampler_comparison; #else var light{i}_shadowMap: texture_2d<f32>; var light{i}_shadowMapSampler: sampler; #endif #endif #endif #if defined(LIGHT{i}COOKIE) #define LIT_CODE_COOKIE #if LIGHT{i}TYPE == OMNI NOT SUPPORTED #endif #if LIGHT{i}TYPE == SPOT NOT SUPPORTED #endif #endif #endif `; export { lightDeclarationPS as default };