@luma.gl/shaders 0.0.0-stage → 10.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +38 -0
- package/README.md +25 -2
- package/dist/dist.dev.js +19686 -0
- package/dist/dist.min.js +12180 -0
- package/dist/glsl.cjs +33 -0
- package/dist/glsl.cjs.map +6 -0
- package/dist/glsl.d.ts +6 -0
- package/dist/glsl.d.ts.map +1 -0
- package/dist/glsl.js +7 -0
- package/dist/glsl.js.map +1 -0
- package/dist/index.cjs +243 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +91 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/color/normalize-byte-colors.cjs +50 -0
- package/dist/lib/color/normalize-byte-colors.d.ts +23 -0
- package/dist/lib/color/normalize-byte-colors.d.ts.map +1 -0
- package/dist/lib/color/normalize-byte-colors.js +42 -0
- package/dist/lib/color/normalize-byte-colors.js.map +1 -0
- package/dist/lib/filters/prop-types.cjs +90 -0
- package/dist/lib/filters/prop-types.d.ts +44 -0
- package/dist/lib/filters/prop-types.d.ts.map +1 -0
- package/dist/lib/filters/prop-types.js +96 -0
- package/dist/lib/filters/prop-types.js.map +1 -0
- package/dist/lib/glsl-shader-assembler.cjs +50 -0
- package/dist/lib/glsl-shader-assembler.d.ts +19 -0
- package/dist/lib/glsl-shader-assembler.d.ts.map +1 -0
- package/dist/lib/glsl-shader-assembler.js +29 -0
- package/dist/lib/glsl-shader-assembler.js.map +1 -0
- package/dist/lib/glsl-utils/get-shader-info.cjs +52 -0
- package/dist/lib/glsl-utils/get-shader-info.d.ts +9 -0
- package/dist/lib/glsl-utils/get-shader-info.d.ts.map +1 -0
- package/dist/lib/glsl-utils/get-shader-info.js +33 -0
- package/dist/lib/glsl-utils/get-shader-info.js.map +1 -0
- package/dist/lib/glsl-utils/shader-utils.cjs +126 -0
- package/dist/lib/glsl-utils/shader-utils.d.ts +23 -0
- package/dist/lib/glsl-utils/shader-utils.d.ts.map +1 -0
- package/dist/lib/glsl-utils/shader-utils.js +92 -0
- package/dist/lib/glsl-utils/shader-utils.js.map +1 -0
- package/dist/lib/preprocessor/preprocessor.cjs +107 -0
- package/dist/lib/preprocessor/preprocessor.d.ts +15 -0
- package/dist/lib/preprocessor/preprocessor.d.ts.map +1 -0
- package/dist/lib/preprocessor/preprocessor.js +99 -0
- package/dist/lib/preprocessor/preprocessor.js.map +1 -0
- package/dist/lib/shader-assembler-base.cjs +133 -0
- package/dist/lib/shader-assembler-base.d.ts +52 -0
- package/dist/lib/shader-assembler-base.d.ts.map +1 -0
- package/dist/lib/shader-assembler-base.js +128 -0
- package/dist/lib/shader-assembler-base.js.map +1 -0
- package/dist/lib/shader-assembler.cjs +33 -0
- package/dist/lib/shader-assembler.d.ts +4 -0
- package/dist/lib/shader-assembler.d.ts.map +1 -0
- package/dist/lib/shader-assembler.js +7 -0
- package/dist/lib/shader-assembler.js.map +1 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.cjs +200 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts +69 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts.map +1 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.js +221 -0
- package/dist/lib/shader-assembly/assemble-glsl-shaders.js.map +1 -0
- package/dist/lib/shader-assembly/assemble-shaders.cjs +42 -0
- package/dist/lib/shader-assembly/assemble-shaders.d.ts +10 -0
- package/dist/lib/shader-assembly/assemble-shaders.d.ts.map +1 -0
- package/dist/lib/shader-assembly/assemble-shaders.js +10 -0
- package/dist/lib/shader-assembly/assemble-shaders.js.map +1 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.cjs +501 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts +71 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts.map +1 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.js +473 -0
- package/dist/lib/shader-assembly/assemble-wgsl-shaders.js.map +1 -0
- package/dist/lib/shader-assembly/platform-defines.cjs +79 -0
- package/dist/lib/shader-assembly/platform-defines.d.ts +4 -0
- package/dist/lib/shader-assembly/platform-defines.d.ts.map +1 -0
- package/dist/lib/shader-assembly/platform-defines.js +52 -0
- package/dist/lib/shader-assembly/platform-defines.js.map +1 -0
- package/dist/lib/shader-assembly/platform-info.cjs +15 -0
- package/dist/lib/shader-assembly/platform-info.d.ts +20 -0
- package/dist/lib/shader-assembly/platform-info.d.ts.map +1 -0
- package/dist/lib/shader-assembly/platform-info.js +5 -0
- package/dist/lib/shader-assembly/platform-info.js.map +1 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.cjs +96 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.d.ts +16 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.js +79 -0
- package/dist/lib/shader-assembly/shader-assembly-shared.js.map +1 -0
- package/dist/lib/shader-assembly/shader-assembly-types.cjs +15 -0
- package/dist/lib/shader-assembly/shader-assembly-types.d.ts +128 -0
- package/dist/lib/shader-assembly/shader-assembly-types.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-assembly-types.js +5 -0
- package/dist/lib/shader-assembly/shader-assembly-types.js.map +1 -0
- package/dist/lib/shader-assembly/shader-hooks.cjs +103 -0
- package/dist/lib/shader-assembly/shader-hooks.d.ts +45 -0
- package/dist/lib/shader-assembly/shader-hooks.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-hooks.js +84 -0
- package/dist/lib/shader-assembly/shader-hooks.js.map +1 -0
- package/dist/lib/shader-assembly/shader-injections.cjs +180 -0
- package/dist/lib/shader-assembly/shader-injections.d.ts +34 -0
- package/dist/lib/shader-assembly/shader-injections.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-injections.js +183 -0
- package/dist/lib/shader-assembly/shader-injections.js.map +1 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.cjs +417 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.d.ts +15 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.js +412 -0
- package/dist/lib/shader-assembly/shader-plugin-varyings.js.map +1 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.cjs +254 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.d.ts +12 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.d.ts.map +1 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.js +237 -0
- package/dist/lib/shader-assembly/shader-plugin-vertex-inputs.js.map +1 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.cjs +166 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.d.ts +37 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.d.ts.map +1 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.js +144 -0
- package/dist/lib/shader-assembly/wgsl-binding-debug.js.map +1 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.cjs +184 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.d.ts +19 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.d.ts.map +1 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.js +151 -0
- package/dist/lib/shader-assembly/wgsl-binding-scan.js.map +1 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.cjs +502 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.d.ts +14 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.d.ts.map +1 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.js +498 -0
- package/dist/lib/shader-assembly/wgsl-interface-scan.js.map +1 -0
- package/dist/lib/shader-generator/generate-shader.cjs +36 -0
- package/dist/lib/shader-generator/generate-shader.d.ts +8 -0
- package/dist/lib/shader-generator/generate-shader.d.ts.map +1 -0
- package/dist/lib/shader-generator/generate-shader.js +15 -0
- package/dist/lib/shader-generator/generate-shader.js.map +1 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.cjs +94 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.d.ts +7 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.d.ts.map +1 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.js +79 -0
- package/dist/lib/shader-generator/glsl/generate-glsl.js.map +1 -0
- package/dist/lib/shader-generator/utils/capitalize.cjs +29 -0
- package/dist/lib/shader-generator/utils/capitalize.d.ts +7 -0
- package/dist/lib/shader-generator/utils/capitalize.d.ts.map +1 -0
- package/dist/lib/shader-generator/utils/capitalize.js +12 -0
- package/dist/lib/shader-generator/utils/capitalize.js.map +1 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.cjs +46 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.d.ts +7 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.d.ts.map +1 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.js +23 -0
- package/dist/lib/shader-generator/wgsl/generate-wgsl.js.map +1 -0
- package/dist/lib/shader-module/composite-shader-pass.cjs +15 -0
- package/dist/lib/shader-module/composite-shader-pass.d.ts +41 -0
- package/dist/lib/shader-module/composite-shader-pass.d.ts.map +1 -0
- package/dist/lib/shader-module/composite-shader-pass.js +5 -0
- package/dist/lib/shader-module/composite-shader-pass.js.map +1 -0
- package/dist/lib/shader-module/shader-module-dependencies.cjs +83 -0
- package/dist/lib/shader-module/shader-module-dependencies.d.ts +39 -0
- package/dist/lib/shader-module/shader-module-dependencies.d.ts.map +1 -0
- package/dist/lib/shader-module/shader-module-dependencies.js +103 -0
- package/dist/lib/shader-module/shader-module-dependencies.js.map +1 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.cjs +224 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.d.ts +91 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.d.ts.map +1 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.js +253 -0
- package/dist/lib/shader-module/shader-module-uniform-layout.js.map +1 -0
- package/dist/lib/shader-module/shader-module.cjs +105 -0
- package/dist/lib/shader-module/shader-module.d.ts +98 -0
- package/dist/lib/shader-module/shader-module.d.ts.map +1 -0
- package/dist/lib/shader-module/shader-module.js +104 -0
- package/dist/lib/shader-module/shader-module.js.map +1 -0
- package/dist/lib/shader-module/shader-pass.cjs +15 -0
- package/dist/lib/shader-module/shader-pass.d.ts +48 -0
- package/dist/lib/shader-module/shader-pass.d.ts.map +1 -0
- package/dist/lib/shader-module/shader-pass.js +5 -0
- package/dist/lib/shader-module/shader-pass.js.map +1 -0
- package/dist/lib/shader-plugin.cjs +117 -0
- package/dist/lib/shader-plugin.d.ts +68 -0
- package/dist/lib/shader-plugin.d.ts.map +1 -0
- package/dist/lib/shader-plugin.js +98 -0
- package/dist/lib/shader-plugin.js.map +1 -0
- package/dist/lib/shader-transpiler/shader-transpiler.cjs +15 -0
- package/dist/lib/shader-transpiler/shader-transpiler.d.ts +27 -0
- package/dist/lib/shader-transpiler/shader-transpiler.d.ts.map +1 -0
- package/dist/lib/shader-transpiler/shader-transpiler.js +5 -0
- package/dist/lib/shader-transpiler/shader-transpiler.js.map +1 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.cjs +71 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.d.ts +9 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.d.ts.map +1 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.js +69 -0
- package/dist/lib/shader-transpiler/transpile-glsl-shader.js.map +1 -0
- package/dist/lib/utils/assert.cjs +34 -0
- package/dist/lib/utils/assert.d.ts +2 -0
- package/dist/lib/utils/assert.d.ts.map +1 -0
- package/dist/lib/utils/assert.js +13 -0
- package/dist/lib/utils/assert.js.map +1 -0
- package/dist/lib/utils/uniform-types.cjs +15 -0
- package/dist/lib/utils/uniform-types.d.ts +18 -0
- package/dist/lib/utils/uniform-types.d.ts.map +1 -0
- package/dist/lib/utils/uniform-types.js +5 -0
- package/dist/lib/utils/uniform-types.js.map +1 -0
- package/dist/lib/wgsl-shader-assembler.cjs +99 -0
- package/dist/lib/wgsl-shader-assembler.d.ts +34 -0
- package/dist/lib/wgsl-shader-assembler.d.ts.map +1 -0
- package/dist/lib/wgsl-shader-assembler.js +84 -0
- package/dist/lib/wgsl-shader-assembler.js.map +1 -0
- package/dist/module-injectors.cjs +59 -0
- package/dist/module-injectors.d.ts +3 -0
- package/dist/module-injectors.d.ts.map +1 -0
- package/dist/module-injectors.js +31 -0
- package/dist/module-injectors.js.map +1 -0
- package/dist/modules/color/float-colors.cjs +275 -0
- package/dist/modules/color/float-colors.d.ts +132 -0
- package/dist/modules/color/float-colors.d.ts.map +1 -0
- package/dist/modules/color/float-colors.js +248 -0
- package/dist/modules/color/float-colors.js.map +1 -0
- package/dist/modules/engine/clip/clip.cjs +152 -0
- package/dist/modules/engine/clip/clip.d.ts +12 -0
- package/dist/modules/engine/clip/clip.d.ts.map +1 -0
- package/dist/modules/engine/clip/clip.js +129 -0
- package/dist/modules/engine/clip/clip.js.map +1 -0
- package/dist/modules/engine/filter/filter.cjs +111 -0
- package/dist/modules/engine/filter/filter.d.ts +12 -0
- package/dist/modules/engine/filter/filter.d.ts.map +1 -0
- package/dist/modules/engine/filter/filter.js +88 -0
- package/dist/modules/engine/filter/filter.js.map +1 -0
- package/dist/modules/engine/geometry/geometry.cjs +63 -0
- package/dist/modules/engine/geometry/geometry.d.ts +9 -0
- package/dist/modules/engine/geometry/geometry.d.ts.map +1 -0
- package/dist/modules/engine/geometry/geometry.js +42 -0
- package/dist/modules/engine/geometry/geometry.js.map +1 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.cjs +255 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.d.ts +34 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.d.ts.map +1 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.js +228 -0
- package/dist/modules/engine/gpu-animation/gpu-animation.js.map +1 -0
- package/dist/modules/engine/picking/picking.cjs +210 -0
- package/dist/modules/engine/picking/picking.d.ts +77 -0
- package/dist/modules/engine/picking/picking.d.ts.map +1 -0
- package/dist/modules/engine/picking/picking.js +198 -0
- package/dist/modules/engine/picking/picking.js.map +1 -0
- package/dist/modules/engine/project/project.cjs +138 -0
- package/dist/modules/engine/project/project.d.ts +39 -0
- package/dist/modules/engine/project/project.d.ts.map +1 -0
- package/dist/modules/engine/project/project.js +129 -0
- package/dist/modules/engine/project/project.js.map +1 -0
- package/dist/modules/engine/skin/skin.cjs +212 -0
- package/dist/modules/engine/skin/skin.d.ts +52 -0
- package/dist/modules/engine/skin/skin.d.ts.map +1 -0
- package/dist/modules/engine/skin/skin.js +179 -0
- package/dist/modules/engine/skin/skin.js.map +1 -0
- package/dist/modules/engine/transform/transform.cjs +72 -0
- package/dist/modules/engine/transform/transform.d.ts +6 -0
- package/dist/modules/engine/transform/transform.d.ts.map +1 -0
- package/dist/modules/engine/transform/transform.js +49 -0
- package/dist/modules/engine/transform/transform.js.map +1 -0
- package/dist/modules/geometry/path-dash/path-dash.cjs +93 -0
- package/dist/modules/geometry/path-dash/path-dash.d.ts +10 -0
- package/dist/modules/geometry/path-dash/path-dash.d.ts.map +1 -0
- package/dist/modules/geometry/path-dash/path-dash.js +66 -0
- package/dist/modules/geometry/path-dash/path-dash.js.map +1 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.cjs +117 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.d.ts +3 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.d.ts.map +1 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.js +87 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill-shaders.js.map +1 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.cjs +64 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.d.ts +14 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.d.ts.map +1 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.js +43 -0
- package/dist/modules/geometry/pattern-fill/pattern-fill.js.map +1 -0
- package/dist/modules/geometry/point-glow/point-glow.cjs +104 -0
- package/dist/modules/geometry/point-glow/point-glow.d.ts +11 -0
- package/dist/modules/geometry/point-glow/point-glow.d.ts.map +1 -0
- package/dist/modules/geometry/point-glow/point-glow.js +77 -0
- package/dist/modules/geometry/point-glow/point-glow.js.map +1 -0
- package/dist/modules/geometry/precipitation/precipitation.cjs +122 -0
- package/dist/modules/geometry/precipitation/precipitation.d.ts +40 -0
- package/dist/modules/geometry/precipitation/precipitation.d.ts.map +1 -0
- package/dist/modules/geometry/precipitation/precipitation.js +95 -0
- package/dist/modules/geometry/precipitation/precipitation.js.map +1 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.cjs +158 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.d.ts +60 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.d.ts.map +1 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.js +137 -0
- package/dist/modules/geometry/sketch-stroke/sketch-stroke.js.map +1 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.cjs +2304 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.d.ts +3 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.d.ts.map +1 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.js +2283 -0
- package/dist/modules/geospatial/dggs/dggs-wgsl.js.map +1 -0
- package/dist/modules/geospatial/dggs/dggs.cjs +31 -0
- package/dist/modules/geospatial/dggs/dggs.d.ts +6 -0
- package/dist/modules/geospatial/dggs/dggs.d.ts.map +1 -0
- package/dist/modules/geospatial/dggs/dggs.js +10 -0
- package/dist/modules/geospatial/dggs/dggs.js.map +1 -0
- package/dist/modules/lighting/area-lighting/area-light-types.cjs +68 -0
- package/dist/modules/lighting/area-lighting/area-light-types.d.ts +34 -0
- package/dist/modules/lighting/area-lighting/area-light-types.d.ts.map +1 -0
- package/dist/modules/lighting/area-lighting/area-light-types.js +40 -0
- package/dist/modules/lighting/area-lighting/area-light-types.js.map +1 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.cjs +101 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.d.ts +3 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.d.ts.map +1 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.js +71 -0
- package/dist/modules/lighting/area-lighting/area-lighting-shaders.js.map +1 -0
- package/dist/modules/lighting/area-lighting/area-lighting.cjs +62 -0
- package/dist/modules/lighting/area-lighting/area-lighting.d.ts +89 -0
- package/dist/modules/lighting/area-lighting/area-lighting.d.ts.map +1 -0
- package/dist/modules/lighting/area-lighting/area-lighting.js +41 -0
- package/dist/modules/lighting/area-lighting/area-lighting.js.map +1 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.cjs +192 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.d.ts +3 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.d.ts.map +1 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.js +162 -0
- package/dist/modules/lighting/area-lighting/ltc-shaders.js.map +1 -0
- package/dist/modules/lighting/atmosphere/atmosphere.cjs +253 -0
- package/dist/modules/lighting/atmosphere/atmosphere.d.ts +45 -0
- package/dist/modules/lighting/atmosphere/atmosphere.d.ts.map +1 -0
- package/dist/modules/lighting/atmosphere/atmosphere.js +228 -0
- package/dist/modules/lighting/atmosphere/atmosphere.js.map +1 -0
- package/dist/modules/lighting/clouds/clouds.cjs +216 -0
- package/dist/modules/lighting/clouds/clouds.d.ts +58 -0
- package/dist/modules/lighting/clouds/clouds.d.ts.map +1 -0
- package/dist/modules/lighting/clouds/clouds.js +192 -0
- package/dist/modules/lighting/clouds/clouds.js.map +1 -0
- package/dist/modules/lighting/firefly/firefly.cjs +74 -0
- package/dist/modules/lighting/firefly/firefly.d.ts +36 -0
- package/dist/modules/lighting/firefly/firefly.d.ts.map +1 -0
- package/dist/modules/lighting/firefly/firefly.js +53 -0
- package/dist/modules/lighting/firefly/firefly.js.map +1 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.cjs +143 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.d.ts +53 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.d.ts.map +1 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.js +119 -0
- package/dist/modules/lighting/globe-clouds/globe-clouds.js.map +1 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.cjs +61 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.d.ts +12 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.d.ts.map +1 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.js +40 -0
- package/dist/modules/lighting/gouraud-material/gouraud-material.js.map +1 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.cjs +139 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.d.ts +14 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.d.ts.map +1 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.js +114 -0
- package/dist/modules/lighting/height-fog/height-fog-functions.js.map +1 -0
- package/dist/modules/lighting/height-fog/height-fog.cjs +104 -0
- package/dist/modules/lighting/height-fog/height-fog.d.ts +60 -0
- package/dist/modules/lighting/height-fog/height-fog.d.ts.map +1 -0
- package/dist/modules/lighting/height-fog/height-fog.js +77 -0
- package/dist/modules/lighting/height-fog/height-fog.js.map +1 -0
- package/dist/modules/lighting/ibl/ibl.cjs +63 -0
- package/dist/modules/lighting/ibl/ibl.d.ts +25 -0
- package/dist/modules/lighting/ibl/ibl.d.ts.map +1 -0
- package/dist/modules/lighting/ibl/ibl.js +33 -0
- package/dist/modules/lighting/ibl/ibl.js.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-material.cjs +54 -0
- package/dist/modules/lighting/lambert-material/lambert-material.d.ts +10 -0
- package/dist/modules/lighting/lambert-material/lambert-material.d.ts.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-material.js +33 -0
- package/dist/modules/lighting/lambert-material/lambert-material.js.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.cjs +88 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.d.ts +3 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.js +60 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-glsl.js.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.cjs +97 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.d.ts +2 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.js +73 -0
- package/dist/modules/lighting/lambert-material/lambert-shaders-wgsl.js.map +1 -0
- package/dist/modules/lighting/lights/lighting-glsl.cjs +116 -0
- package/dist/modules/lighting/lights/lighting-glsl.d.ts +2 -0
- package/dist/modules/lighting/lights/lighting-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/lights/lighting-glsl.js +92 -0
- package/dist/modules/lighting/lights/lighting-glsl.js.map +1 -0
- package/dist/modules/lighting/lights/lighting-wgsl.cjs +115 -0
- package/dist/modules/lighting/lights/lighting-wgsl.d.ts +2 -0
- package/dist/modules/lighting/lights/lighting-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/lights/lighting-wgsl.js +91 -0
- package/dist/modules/lighting/lights/lighting-wgsl.js.map +1 -0
- package/dist/modules/lighting/lights/lighting.cjs +210 -0
- package/dist/modules/lighting/lights/lighting.d.ts +163 -0
- package/dist/modules/lighting/lights/lighting.d.ts.map +1 -0
- package/dist/modules/lighting/lights/lighting.js +208 -0
- package/dist/modules/lighting/lights/lighting.js.map +1 -0
- package/dist/modules/lighting/no-material/dirlight.cjs +112 -0
- package/dist/modules/lighting/no-material/dirlight.d.ts +33 -0
- package/dist/modules/lighting/no-material/dirlight.d.ts.map +1 -0
- package/dist/modules/lighting/no-material/dirlight.js +86 -0
- package/dist/modules/lighting/no-material/dirlight.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.cjs +1767 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts +3 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.js +1745 -0
- package/dist/modules/lighting/pbr-material/pbr-material-glsl.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.cjs +2062 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts +3 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.js +2040 -0
- package/dist/modules/lighting/pbr-material/pbr-material-wgsl.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material.cjs +315 -0
- package/dist/modules/lighting/pbr-material/pbr-material.d.ts +516 -0
- package/dist/modules/lighting/pbr-material/pbr-material.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-material.js +292 -0
- package/dist/modules/lighting/pbr-material/pbr-material.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.cjs +63 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.d.ts +10 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.js +37 -0
- package/dist/modules/lighting/pbr-material/pbr-projection.js.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.cjs +109 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.d.ts +52 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.d.ts.map +1 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.js +83 -0
- package/dist/modules/lighting/pbr-material/pbr-scene.js.map +1 -0
- package/dist/modules/lighting/phong-material/phong-material.cjs +61 -0
- package/dist/modules/lighting/phong-material/phong-material.d.ts +13 -0
- package/dist/modules/lighting/phong-material/phong-material.d.ts.map +1 -0
- package/dist/modules/lighting/phong-material/phong-material.js +40 -0
- package/dist/modules/lighting/phong-material/phong-material.js.map +1 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.cjs +100 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.d.ts +3 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.js +72 -0
- package/dist/modules/lighting/phong-material/phong-shaders-glsl.js.map +1 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.cjs +153 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.d.ts +2 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.js +129 -0
- package/dist/modules/lighting/phong-material/phong-shaders-wgsl.js.map +1 -0
- package/dist/modules/lighting/surface-weather/surface-weather.cjs +199 -0
- package/dist/modules/lighting/surface-weather/surface-weather.d.ts +54 -0
- package/dist/modules/lighting/surface-weather/surface-weather.d.ts.map +1 -0
- package/dist/modules/lighting/surface-weather/surface-weather.js +175 -0
- package/dist/modules/lighting/surface-weather/surface-weather.js.map +1 -0
- package/dist/modules/lighting/water-material/river-water-material.cjs +56 -0
- package/dist/modules/lighting/water-material/river-water-material.d.ts +21 -0
- package/dist/modules/lighting/water-material/river-water-material.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/river-water-material.js +36 -0
- package/dist/modules/lighting/water-material/river-water-material.js.map +1 -0
- package/dist/modules/lighting/water-material/river-water-shaders.cjs +261 -0
- package/dist/modules/lighting/water-material/river-water-shaders.d.ts +3 -0
- package/dist/modules/lighting/water-material/river-water-shaders.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/river-water-shaders.js +233 -0
- package/dist/modules/lighting/water-material/river-water-shaders.js.map +1 -0
- package/dist/modules/lighting/water-material/water-material.cjs +188 -0
- package/dist/modules/lighting/water-material/water-material.d.ts +28 -0
- package/dist/modules/lighting/water-material/water-material.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/water-material.js +179 -0
- package/dist/modules/lighting/water-material/water-material.js.map +1 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.cjs +260 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.d.ts +3 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.js +232 -0
- package/dist/modules/lighting/water-material/water-shaders-glsl.js.map +1 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.cjs +254 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.d.ts +2 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.d.ts.map +1 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.js +230 -0
- package/dist/modules/lighting/water-material/water-shaders-wgsl.js.map +1 -0
- package/dist/modules/math/fp16/fp16-utils.cjs +112 -0
- package/dist/modules/math/fp16/fp16-utils.d.ts +13 -0
- package/dist/modules/math/fp16/fp16-utils.d.ts.map +1 -0
- package/dist/modules/math/fp16/fp16-utils.js +118 -0
- package/dist/modules/math/fp16/fp16-utils.js.map +1 -0
- package/dist/modules/math/fp32/fp32.cjs +310 -0
- package/dist/modules/math/fp32/fp32.d.ts +9 -0
- package/dist/modules/math/fp32/fp32.d.ts.map +1 -0
- package/dist/modules/math/fp32/fp32.js +288 -0
- package/dist/modules/math/fp32/fp32.js.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.cjs +229 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.d.ts +2 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.js +205 -0
- package/dist/modules/math/fp64/fp64-arithmetic-glsl.js.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.cjs +144 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.d.ts +10 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.js +128 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.js.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.cjs +583 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.d.ts +11 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.js +563 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl-integer.js.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.cjs +946 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.d.ts +3 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.js +923 -0
- package/dist/modules/math/fp64/fp64-arithmetic-wgsl.js.map +1 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.cjs +699 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.d.ts +2 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.js +675 -0
- package/dist/modules/math/fp64/fp64-functions-glsl.js.map +1 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.cjs +180 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.d.ts +3 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.js +157 -0
- package/dist/modules/math/fp64/fp64-functions-wgsl.js.map +1 -0
- package/dist/modules/math/fp64/fp64-utils.cjs +50 -0
- package/dist/modules/math/fp64/fp64-utils.d.ts +22 -0
- package/dist/modules/math/fp64/fp64-utils.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64-utils.js +42 -0
- package/dist/modules/math/fp64/fp64-utils.js.map +1 -0
- package/dist/modules/math/fp64/fp64.cjs +68 -0
- package/dist/modules/math/fp64/fp64.d.ts +24 -0
- package/dist/modules/math/fp64/fp64.d.ts.map +1 -0
- package/dist/modules/math/fp64/fp64.js +46 -0
- package/dist/modules/math/fp64/fp64.js.map +1 -0
- package/dist/modules/math/random/random.cjs +46 -0
- package/dist/modules/math/random/random.d.ts +7 -0
- package/dist/modules/math/random/random.d.ts.map +1 -0
- package/dist/modules/math/random/random.js +21 -0
- package/dist/modules/math/random/random.js.map +1 -0
- package/dist/modules/math/value-noise/value-noise.cjs +95 -0
- package/dist/modules/math/value-noise/value-noise.d.ts +7 -0
- package/dist/modules/math/value-noise/value-noise.d.ts.map +1 -0
- package/dist/modules/math/value-noise/value-noise.js +68 -0
- package/dist/modules/math/value-noise/value-noise.js.map +1 -0
- package/dist/modules/volume/volume-raymarch.cjs +107 -0
- package/dist/modules/volume/volume-raymarch.d.ts +6 -0
- package/dist/modules/volume/volume-raymarch.d.ts.map +1 -0
- package/dist/modules/volume/volume-raymarch.js +84 -0
- package/dist/modules/volume/volume-raymarch.js.map +1 -0
- package/dist/types/align-to.cjs +38 -0
- package/dist/types/align-to.d.ts +3 -0
- package/dist/types/align-to.d.ts.map +1 -0
- package/dist/types/align-to.js +13 -0
- package/dist/types/align-to.js.map +1 -0
- package/dist/types/primitive-data-types.cjs +15 -0
- package/dist/types/primitive-data-types.d.ts +7 -0
- package/dist/types/primitive-data-types.d.ts.map +1 -0
- package/dist/types/primitive-data-types.js +5 -0
- package/dist/types/primitive-data-types.js.map +1 -0
- package/dist/types/sampler-props.cjs +15 -0
- package/dist/types/sampler-props.d.ts +26 -0
- package/dist/types/sampler-props.d.ts.map +1 -0
- package/dist/types/sampler-props.js +5 -0
- package/dist/types/sampler-props.js.map +1 -0
- package/dist/types/shader-block-layout.cjs +184 -0
- package/dist/types/shader-block-layout.d.ts +72 -0
- package/dist/types/shader-block-layout.d.ts.map +1 -0
- package/dist/types/shader-block-layout.js +209 -0
- package/dist/types/shader-block-layout.js.map +1 -0
- package/dist/types/shader-layout.cjs +15 -0
- package/dist/types/shader-layout.d.ts +178 -0
- package/dist/types/shader-layout.d.ts.map +1 -0
- package/dist/types/shader-layout.js +5 -0
- package/dist/types/shader-layout.js.map +1 -0
- package/dist/types/shader-type-decoder.cjs +240 -0
- package/dist/types/shader-type-decoder.d.ts +41 -0
- package/dist/types/shader-type-decoder.d.ts.map +1 -0
- package/dist/types/shader-type-decoder.js +210 -0
- package/dist/types/shader-type-decoder.js.map +1 -0
- package/dist/types/shader-types.cjs +15 -0
- package/dist/types/shader-types.d.ts +101 -0
- package/dist/types/shader-types.d.ts.map +1 -0
- package/dist/types/shader-types.js +30 -0
- package/dist/types/shader-types.js.map +1 -0
- package/dist/types/texture-formats.cjs +15 -0
- package/dist/types/texture-formats.d.ts +24 -0
- package/dist/types/texture-formats.d.ts.map +1 -0
- package/dist/types/texture-formats.js +5 -0
- package/dist/types/texture-formats.js.map +1 -0
- package/dist/types.cjs +42 -0
- package/dist/types.cjs.map +6 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -0
- package/dist/wgsl.cjs +39 -0
- package/dist/wgsl.cjs.map +6 -0
- package/dist/wgsl.d.ts +8 -0
- package/dist/wgsl.d.ts.map +1 -0
- package/dist/wgsl.js +9 -0
- package/dist/wgsl.js.map +1 -0
- package/package.json +65 -4
- package/src/glsl.ts +13 -0
- package/src/index.ts +259 -0
- package/src/lib/color/normalize-byte-colors.ts +57 -0
- package/src/lib/filters/prop-types.ts +150 -0
- package/src/lib/glsl-shader-assembler.ts +39 -0
- package/src/lib/glsl-utils/get-shader-info.ts +42 -0
- package/src/lib/glsl-utils/shader-utils.ts +110 -0
- package/src/lib/preprocessor/preprocessor.ts +132 -0
- package/src/lib/shader-assembler-base.ts +170 -0
- package/src/lib/shader-assembler.ts +7 -0
- package/src/lib/shader-assembly/assemble-glsl-shaders.ts +305 -0
- package/src/lib/shader-assembly/assemble-shaders.ts +13 -0
- package/src/lib/shader-assembly/assemble-wgsl-shaders.ts +801 -0
- package/src/lib/shader-assembly/platform-defines.ts +58 -0
- package/src/lib/shader-assembly/platform-info.ts +23 -0
- package/src/lib/shader-assembly/shader-assembly-shared.ts +95 -0
- package/src/lib/shader-assembly/shader-assembly-types.ts +142 -0
- package/src/lib/shader-assembly/shader-hooks.ts +141 -0
- package/src/lib/shader-assembly/shader-injections.ts +250 -0
- package/src/lib/shader-assembly/shader-plugin-varyings.ts +524 -0
- package/src/lib/shader-assembly/shader-plugin-vertex-inputs.ts +279 -0
- package/src/lib/shader-assembly/wgsl-binding-debug.ts +227 -0
- package/src/lib/shader-assembly/wgsl-binding-scan.ts +228 -0
- package/src/lib/shader-assembly/wgsl-interface-scan.ts +676 -0
- package/src/lib/shader-generator/generate-shader.ts +27 -0
- package/src/lib/shader-generator/glsl/generate-glsl.ts +101 -0
- package/src/lib/shader-generator/utils/capitalize.ts +12 -0
- package/src/lib/shader-generator/wgsl/generate-wgsl.ts +40 -0
- package/src/lib/shader-module/composite-shader-pass.ts +47 -0
- package/src/lib/shader-module/shader-module-dependencies.ts +128 -0
- package/src/lib/shader-module/shader-module-uniform-layout.ts +420 -0
- package/src/lib/shader-module/shader-module.ts +244 -0
- package/src/lib/shader-module/shader-pass.ts +69 -0
- package/src/lib/shader-plugin.ts +214 -0
- package/src/lib/shader-transpiler/shader-transpiler.ts +34 -0
- package/src/lib/shader-transpiler/transpile-glsl-shader.ts +78 -0
- package/src/lib/utils/assert.ts +13 -0
- package/src/lib/utils/uniform-types.ts +89 -0
- package/src/lib/wgsl-shader-assembler.ts +122 -0
- package/src/module-injectors.ts +32 -0
- package/src/modules/color/float-colors.ts +334 -0
- package/src/modules/engine/clip/clip.ts +149 -0
- package/src/modules/engine/filter/filter.ts +107 -0
- package/src/modules/engine/geometry/geometry.ts +45 -0
- package/src/modules/engine/gpu-animation/gpu-animation.ts +244 -0
- package/src/modules/engine/picking/README.md +88 -0
- package/src/modules/engine/picking/picking.ts +252 -0
- package/src/modules/engine/project/project.ts +166 -0
- package/src/modules/engine/skin/skin.ts +233 -0
- package/src/modules/engine/transform/transform.ts +50 -0
- package/src/modules/geometry/path-dash/path-dash.ts +68 -0
- package/src/modules/geometry/pattern-fill/pattern-fill-shaders.ts +88 -0
- package/src/modules/geometry/pattern-fill/pattern-fill.ts +54 -0
- package/src/modules/geometry/point-glow/point-glow.ts +87 -0
- package/src/modules/geometry/precipitation/README.md +19 -0
- package/src/modules/geometry/precipitation/precipitation.ts +108 -0
- package/src/modules/geometry/sketch-stroke/sketch-stroke.ts +160 -0
- package/src/modules/geospatial/dggs/dggs-wgsl.ts +2284 -0
- package/src/modules/geospatial/dggs/dggs.ts +12 -0
- package/src/modules/lighting/area-lighting/area-light-types.ts +71 -0
- package/src/modules/lighting/area-lighting/area-lighting-shaders.ts +72 -0
- package/src/modules/lighting/area-lighting/area-lighting.ts +63 -0
- package/src/modules/lighting/area-lighting/ltc-shaders.ts +163 -0
- package/src/modules/lighting/atmosphere/README.md +25 -0
- package/src/modules/lighting/atmosphere/atmosphere.ts +246 -0
- package/src/modules/lighting/clouds/README.md +24 -0
- package/src/modules/lighting/clouds/clouds.ts +216 -0
- package/src/modules/lighting/firefly/firefly.ts +64 -0
- package/src/modules/lighting/globe-clouds/globe-clouds.ts +124 -0
- package/src/modules/lighting/gouraud-material/gouraud-material.ts +55 -0
- package/src/modules/lighting/height-fog/README.md +36 -0
- package/src/modules/lighting/height-fog/height-fog-functions.ts +116 -0
- package/src/modules/lighting/height-fog/height-fog.ts +96 -0
- package/src/modules/lighting/ibl/ibl.ts +43 -0
- package/src/modules/lighting/lambert-material/lambert-material.ts +42 -0
- package/src/modules/lighting/lambert-material/lambert-shaders-glsl.ts +61 -0
- package/src/modules/lighting/lambert-material/lambert-shaders-wgsl.ts +73 -0
- package/src/modules/lighting/lights/lighting-glsl.ts +92 -0
- package/src/modules/lighting/lights/lighting-wgsl.ts +91 -0
- package/src/modules/lighting/lights/lighting.ts +385 -0
- package/src/modules/lighting/no-material/dirlight.ts +101 -0
- package/src/modules/lighting/pbr-material/pbr-material-glsl.ts +1748 -0
- package/src/modules/lighting/pbr-material/pbr-material-wgsl.ts +2043 -0
- package/src/modules/lighting/pbr-material/pbr-material.ts +517 -0
- package/src/modules/lighting/pbr-material/pbr-projection.ts +50 -0
- package/src/modules/lighting/pbr-material/pbr-scene.ts +112 -0
- package/src/modules/lighting/phong-material/phong-material.ts +53 -0
- package/src/modules/lighting/phong-material/phong-shaders-glsl.ts +73 -0
- package/src/modules/lighting/phong-material/phong-shaders-wgsl.ts +129 -0
- package/src/modules/lighting/surface-weather/README.md +28 -0
- package/src/modules/lighting/surface-weather/surface-weather.ts +198 -0
- package/src/modules/lighting/water-material/river-water-material.ts +58 -0
- package/src/modules/lighting/water-material/river-water-shaders.ts +234 -0
- package/src/modules/lighting/water-material/water-material.ts +234 -0
- package/src/modules/lighting/water-material/water-shaders-glsl.ts +233 -0
- package/src/modules/lighting/water-material/water-shaders-wgsl.ts +230 -0
- package/src/modules/math/fp16/fp16-utils.ts +156 -0
- package/src/modules/math/fp32/fp32.ts +291 -0
- package/src/modules/math/fp64/fp64-arithmetic-glsl.ts +205 -0
- package/src/modules/math/fp64/fp64-arithmetic-wgsl-hybrid.ts +129 -0
- package/src/modules/math/fp64/fp64-arithmetic-wgsl-integer.ts +564 -0
- package/src/modules/math/fp64/fp64-arithmetic-wgsl.ts +924 -0
- package/src/modules/math/fp64/fp64-functions-glsl.ts +675 -0
- package/src/modules/math/fp64/fp64-functions-wgsl.ts +157 -0
- package/src/modules/math/fp64/fp64-utils.ts +46 -0
- package/src/modules/math/fp64/fp64.ts +64 -0
- package/src/modules/math/random/random.ts +25 -0
- package/src/modules/math/value-noise/value-noise.ts +70 -0
- package/src/modules/volume/volume-raymarch.ts +87 -0
- package/src/types/align-to.ts +13 -0
- package/src/types/primitive-data-types.ts +10 -0
- package/src/types/sampler-props.ts +39 -0
- package/src/types/shader-block-layout.ts +340 -0
- package/src/types/shader-layout.ts +208 -0
- package/src/types/shader-type-decoder.ts +285 -0
- package/src/types/shader-types.ts +207 -0
- package/src/types/texture-formats.ts +155 -0
- package/src/types.ts +48 -0
- package/src/wgsl.ts +23 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var lighting_wgsl_exports = {};
|
|
19
|
+
__export(lighting_wgsl_exports, {
|
|
20
|
+
lightingUniformsWGSL: () => lightingUniformsWGSL
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(lighting_wgsl_exports);
|
|
23
|
+
const lightingUniformsWGSL = (
|
|
24
|
+
/* wgsl */
|
|
25
|
+
`// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
|
|
26
|
+
const MAX_LIGHTS: i32 = 5;
|
|
27
|
+
|
|
28
|
+
struct AmbientLight {
|
|
29
|
+
color: vec3<f32>,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
struct PointLight {
|
|
33
|
+
color: vec3<f32>,
|
|
34
|
+
position: vec3<f32>,
|
|
35
|
+
attenuation: vec3<f32>, // 2nd order x:Constant-y:Linear-z:Exponential
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
struct SpotLight {
|
|
39
|
+
color: vec3<f32>,
|
|
40
|
+
position: vec3<f32>,
|
|
41
|
+
direction: vec3<f32>,
|
|
42
|
+
attenuation: vec3<f32>,
|
|
43
|
+
coneCos: vec2<f32>,
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
struct DirectionalLight {
|
|
47
|
+
color: vec3<f32>,
|
|
48
|
+
direction: vec3<f32>,
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
struct UniformLight {
|
|
52
|
+
color: vec3<f32>,
|
|
53
|
+
position: vec3<f32>,
|
|
54
|
+
direction: vec3<f32>,
|
|
55
|
+
attenuation: vec3<f32>,
|
|
56
|
+
coneCos: vec2<f32>,
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
struct AreaLightUniform {
|
|
60
|
+
color: vec3f, position: vec3f, halfAxisX: vec3f, halfAxisY: vec3f, normal: vec3f, disk: i32,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
struct lightingUniforms {
|
|
64
|
+
enabled: i32,
|
|
65
|
+
directionalLightCount: i32,
|
|
66
|
+
pointLightCount: i32,
|
|
67
|
+
spotLightCount: i32,
|
|
68
|
+
ambientColor: vec3<f32>,
|
|
69
|
+
lights: array<UniformLight, 5>,
|
|
70
|
+
areaLightCount: i32,
|
|
71
|
+
areaLights: array<AreaLightUniform, 4>,
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
@group(2) @binding(auto) var<uniform> lighting : lightingUniforms;
|
|
75
|
+
|
|
76
|
+
fn lighting_getPointLight(index: i32) -> PointLight {
|
|
77
|
+
let light = lighting.lights[index];
|
|
78
|
+
return PointLight(light.color, light.position, light.attenuation);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
fn lighting_getSpotLight(index: i32) -> SpotLight {
|
|
82
|
+
let light = lighting.lights[lighting.pointLightCount + index];
|
|
83
|
+
return SpotLight(light.color, light.position, light.direction, light.attenuation, light.coneCos);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
fn lighting_getDirectionalLight(index: i32) -> DirectionalLight {
|
|
87
|
+
let light = lighting.lights[lighting.pointLightCount + lighting.spotLightCount + index];
|
|
88
|
+
return DirectionalLight(light.color, light.direction);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
fn getPointLightAttenuation(pointLight: PointLight, distance: f32) -> f32 {
|
|
92
|
+
return pointLight.attenuation.x
|
|
93
|
+
+ pointLight.attenuation.y * distance
|
|
94
|
+
+ pointLight.attenuation.z * distance * distance;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
fn getSpotLightAttenuation(spotLight: SpotLight, positionWorldspace: vec3<f32>) -> f32 {
|
|
98
|
+
let lightDirection = normalize(positionWorldspace - spotLight.position);
|
|
99
|
+
let coneFactor = smoothstep(
|
|
100
|
+
spotLight.coneCos.y,
|
|
101
|
+
spotLight.coneCos.x,
|
|
102
|
+
dot(normalize(spotLight.direction), lightDirection)
|
|
103
|
+
);
|
|
104
|
+
let distanceAttenuation = getPointLightAttenuation(
|
|
105
|
+
PointLight(spotLight.color, spotLight.position, spotLight.attenuation),
|
|
106
|
+
distance(spotLight.position, positionWorldspace)
|
|
107
|
+
);
|
|
108
|
+
return distanceAttenuation / max(coneFactor, 0.0001);
|
|
109
|
+
}
|
|
110
|
+
`
|
|
111
|
+
);
|
|
112
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
113
|
+
0 && (module.exports = {
|
|
114
|
+
lightingUniformsWGSL
|
|
115
|
+
});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const lightingUniformsWGSL = "// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\nconst MAX_LIGHTS: i32 = 5;\n\nstruct AmbientLight {\n color: vec3<f32>,\n};\n\nstruct PointLight {\n color: vec3<f32>,\n position: vec3<f32>,\n attenuation: vec3<f32>, // 2nd order x:Constant-y:Linear-z:Exponential\n};\n\nstruct SpotLight {\n color: vec3<f32>,\n position: vec3<f32>,\n direction: vec3<f32>,\n attenuation: vec3<f32>,\n coneCos: vec2<f32>,\n};\n\nstruct DirectionalLight {\n color: vec3<f32>,\n direction: vec3<f32>,\n};\n\nstruct UniformLight {\n color: vec3<f32>,\n position: vec3<f32>,\n direction: vec3<f32>,\n attenuation: vec3<f32>,\n coneCos: vec2<f32>,\n};\n\nstruct AreaLightUniform {\n color: vec3f, position: vec3f, halfAxisX: vec3f, halfAxisY: vec3f, normal: vec3f, disk: i32,\n};\n\nstruct lightingUniforms {\n enabled: i32,\n directionalLightCount: i32,\n pointLightCount: i32,\n spotLightCount: i32,\n ambientColor: vec3<f32>,\n lights: array<UniformLight, 5>,\n areaLightCount: i32,\n areaLights: array<AreaLightUniform, 4>,\n};\n\n@group(2) @binding(auto) var<uniform> lighting : lightingUniforms;\n\nfn lighting_getPointLight(index: i32) -> PointLight {\n let light = lighting.lights[index];\n return PointLight(light.color, light.position, light.attenuation);\n}\n\nfn lighting_getSpotLight(index: i32) -> SpotLight {\n let light = lighting.lights[lighting.pointLightCount + index];\n return SpotLight(light.color, light.position, light.direction, light.attenuation, light.coneCos);\n}\n\nfn lighting_getDirectionalLight(index: i32) -> DirectionalLight {\n let light = lighting.lights[lighting.pointLightCount + lighting.spotLightCount + index];\n return DirectionalLight(light.color, light.direction);\n}\n\nfn getPointLightAttenuation(pointLight: PointLight, distance: f32) -> f32 {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\nfn getSpotLightAttenuation(spotLight: SpotLight, positionWorldspace: vec3<f32>) -> f32 {\n let lightDirection = normalize(positionWorldspace - spotLight.position);\n let coneFactor = smoothstep(\n spotLight.coneCos.y,\n spotLight.coneCos.x,\n dot(normalize(spotLight.direction), lightDirection)\n );\n let distanceAttenuation = getPointLightAttenuation(\n PointLight(spotLight.color, spotLight.position, spotLight.attenuation),\n distance(spotLight.position, positionWorldspace)\n );\n return distanceAttenuation / max(coneFactor, 0.0001);\n}\n";
|
|
2
|
+
//# sourceMappingURL=lighting-wgsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lighting-wgsl.d.ts","sourceRoot":"","sources":["../../../../src/modules/lighting/lights/lighting-wgsl.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,qiFAsFhC,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
export const lightingUniformsWGSL = /* wgsl */ `\
|
|
5
|
+
// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
|
|
6
|
+
const MAX_LIGHTS: i32 = 5;
|
|
7
|
+
|
|
8
|
+
struct AmbientLight {
|
|
9
|
+
color: vec3<f32>,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
struct PointLight {
|
|
13
|
+
color: vec3<f32>,
|
|
14
|
+
position: vec3<f32>,
|
|
15
|
+
attenuation: vec3<f32>, // 2nd order x:Constant-y:Linear-z:Exponential
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
struct SpotLight {
|
|
19
|
+
color: vec3<f32>,
|
|
20
|
+
position: vec3<f32>,
|
|
21
|
+
direction: vec3<f32>,
|
|
22
|
+
attenuation: vec3<f32>,
|
|
23
|
+
coneCos: vec2<f32>,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
struct DirectionalLight {
|
|
27
|
+
color: vec3<f32>,
|
|
28
|
+
direction: vec3<f32>,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
struct UniformLight {
|
|
32
|
+
color: vec3<f32>,
|
|
33
|
+
position: vec3<f32>,
|
|
34
|
+
direction: vec3<f32>,
|
|
35
|
+
attenuation: vec3<f32>,
|
|
36
|
+
coneCos: vec2<f32>,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
struct AreaLightUniform {
|
|
40
|
+
color: vec3f, position: vec3f, halfAxisX: vec3f, halfAxisY: vec3f, normal: vec3f, disk: i32,
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
struct lightingUniforms {
|
|
44
|
+
enabled: i32,
|
|
45
|
+
directionalLightCount: i32,
|
|
46
|
+
pointLightCount: i32,
|
|
47
|
+
spotLightCount: i32,
|
|
48
|
+
ambientColor: vec3<f32>,
|
|
49
|
+
lights: array<UniformLight, 5>,
|
|
50
|
+
areaLightCount: i32,
|
|
51
|
+
areaLights: array<AreaLightUniform, 4>,
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
@group(2) @binding(auto) var<uniform> lighting : lightingUniforms;
|
|
55
|
+
|
|
56
|
+
fn lighting_getPointLight(index: i32) -> PointLight {
|
|
57
|
+
let light = lighting.lights[index];
|
|
58
|
+
return PointLight(light.color, light.position, light.attenuation);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
fn lighting_getSpotLight(index: i32) -> SpotLight {
|
|
62
|
+
let light = lighting.lights[lighting.pointLightCount + index];
|
|
63
|
+
return SpotLight(light.color, light.position, light.direction, light.attenuation, light.coneCos);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
fn lighting_getDirectionalLight(index: i32) -> DirectionalLight {
|
|
67
|
+
let light = lighting.lights[lighting.pointLightCount + lighting.spotLightCount + index];
|
|
68
|
+
return DirectionalLight(light.color, light.direction);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
fn getPointLightAttenuation(pointLight: PointLight, distance: f32) -> f32 {
|
|
72
|
+
return pointLight.attenuation.x
|
|
73
|
+
+ pointLight.attenuation.y * distance
|
|
74
|
+
+ pointLight.attenuation.z * distance * distance;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
fn getSpotLightAttenuation(spotLight: SpotLight, positionWorldspace: vec3<f32>) -> f32 {
|
|
78
|
+
let lightDirection = normalize(positionWorldspace - spotLight.position);
|
|
79
|
+
let coneFactor = smoothstep(
|
|
80
|
+
spotLight.coneCos.y,
|
|
81
|
+
spotLight.coneCos.x,
|
|
82
|
+
dot(normalize(spotLight.direction), lightDirection)
|
|
83
|
+
);
|
|
84
|
+
let distanceAttenuation = getPointLightAttenuation(
|
|
85
|
+
PointLight(spotLight.color, spotLight.position, spotLight.attenuation),
|
|
86
|
+
distance(spotLight.position, positionWorldspace)
|
|
87
|
+
);
|
|
88
|
+
return distanceAttenuation / max(coneFactor, 0.0001);
|
|
89
|
+
}
|
|
90
|
+
`;
|
|
91
|
+
//# sourceMappingURL=lighting-wgsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lighting-wgsl.js","sourceRoot":"","sources":["../../../../src/modules/lighting/lights/lighting-wgsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsF9C,CAAC"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var lighting_exports = {};
|
|
19
|
+
__export(lighting_exports, {
|
|
20
|
+
lighting: () => lighting
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(lighting_exports);
|
|
23
|
+
var import_area_light_types = require("../area-lighting/area-light-types.cjs");
|
|
24
|
+
var import_lighting_glsl = require("./lighting-glsl.cjs");
|
|
25
|
+
var import_lighting_wgsl = require("./lighting-wgsl.cjs");
|
|
26
|
+
var import_normalize_byte_colors = require("../../../lib/color/normalize-byte-colors.cjs");
|
|
27
|
+
const MAX_LIGHTS = 5;
|
|
28
|
+
const LIGHT_UNIFORM_TYPE = {
|
|
29
|
+
color: "vec3<f32>",
|
|
30
|
+
position: "vec3<f32>",
|
|
31
|
+
direction: "vec3<f32>",
|
|
32
|
+
attenuation: "vec3<f32>",
|
|
33
|
+
coneCos: "vec2<f32>"
|
|
34
|
+
};
|
|
35
|
+
const lighting = {
|
|
36
|
+
props: {},
|
|
37
|
+
uniforms: {},
|
|
38
|
+
name: "lighting",
|
|
39
|
+
defines: {
|
|
40
|
+
// MAX_LIGHTS
|
|
41
|
+
},
|
|
42
|
+
uniformTypes: {
|
|
43
|
+
enabled: "i32",
|
|
44
|
+
directionalLightCount: "i32",
|
|
45
|
+
pointLightCount: "i32",
|
|
46
|
+
spotLightCount: "i32",
|
|
47
|
+
ambientColor: "vec3<f32>",
|
|
48
|
+
lights: [LIGHT_UNIFORM_TYPE, MAX_LIGHTS],
|
|
49
|
+
areaLightCount: "i32",
|
|
50
|
+
areaLights: [import_area_light_types.AREA_LIGHT_UNIFORM_TYPE, import_area_light_types.MAX_AREA_LIGHTS]
|
|
51
|
+
},
|
|
52
|
+
defaultUniforms: createDefaultLightingUniforms(),
|
|
53
|
+
bindingLayout: [{ name: "lighting", group: 2 }],
|
|
54
|
+
firstBindingSlot: 0,
|
|
55
|
+
source: import_lighting_wgsl.lightingUniformsWGSL,
|
|
56
|
+
vs: import_lighting_glsl.lightingUniformsGLSL,
|
|
57
|
+
fs: import_lighting_glsl.lightingUniformsGLSL,
|
|
58
|
+
getUniforms
|
|
59
|
+
};
|
|
60
|
+
function getUniforms(props, _prevUniforms = {}) {
|
|
61
|
+
props = props ? { ...props } : props;
|
|
62
|
+
const areaLights = ((props == null ? void 0 : props.lights) || []).filter((light) => light.type === "rect" || light.type === "disk");
|
|
63
|
+
if (!props) {
|
|
64
|
+
return createDefaultLightingUniforms();
|
|
65
|
+
}
|
|
66
|
+
if (props.lights) {
|
|
67
|
+
props = { ...props, ...extractLightTypes(props.lights), lights: void 0 };
|
|
68
|
+
}
|
|
69
|
+
const { useByteColors, ambientLight, pointLights, spotLights, directionalLights } = props || {};
|
|
70
|
+
const hasLights = ambientLight || pointLights && pointLights.length > 0 || spotLights && spotLights.length > 0 || directionalLights && directionalLights.length > 0;
|
|
71
|
+
if (!hasLights && areaLights.length === 0) {
|
|
72
|
+
return {
|
|
73
|
+
...createDefaultLightingUniforms(),
|
|
74
|
+
enabled: 0
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
const uniforms = {
|
|
78
|
+
...createDefaultLightingUniforms(),
|
|
79
|
+
...getLightSourceUniforms({
|
|
80
|
+
useByteColors,
|
|
81
|
+
ambientLight,
|
|
82
|
+
pointLights,
|
|
83
|
+
spotLights,
|
|
84
|
+
directionalLights
|
|
85
|
+
})
|
|
86
|
+
};
|
|
87
|
+
uniforms.areaLightCount = Math.min(areaLights.length, import_area_light_types.MAX_AREA_LIGHTS);
|
|
88
|
+
uniforms.areaLights = (0, import_area_light_types.packAreaLights)(areaLights, (0, import_normalize_byte_colors.resolveUseByteColors)(props.useByteColors, true));
|
|
89
|
+
if (props.enabled !== void 0) {
|
|
90
|
+
uniforms.enabled = props.enabled ? 1 : 0;
|
|
91
|
+
}
|
|
92
|
+
return uniforms;
|
|
93
|
+
}
|
|
94
|
+
function getLightSourceUniforms({ useByteColors, ambientLight, pointLights = [], spotLights = [], directionalLights = [] }) {
|
|
95
|
+
const lights = createDefaultLightUniforms();
|
|
96
|
+
let currentLight = 0;
|
|
97
|
+
let pointLightCount = 0;
|
|
98
|
+
let spotLightCount = 0;
|
|
99
|
+
let directionalLightCount = 0;
|
|
100
|
+
for (const pointLight of pointLights) {
|
|
101
|
+
if (currentLight >= MAX_LIGHTS) {
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
lights[currentLight] = {
|
|
105
|
+
...lights[currentLight],
|
|
106
|
+
color: convertColor(pointLight, useByteColors),
|
|
107
|
+
position: pointLight.position,
|
|
108
|
+
attenuation: pointLight.attenuation || [1, 0, 0]
|
|
109
|
+
};
|
|
110
|
+
currentLight++;
|
|
111
|
+
pointLightCount++;
|
|
112
|
+
}
|
|
113
|
+
for (const spotLight of spotLights) {
|
|
114
|
+
if (currentLight >= MAX_LIGHTS) {
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
lights[currentLight] = {
|
|
118
|
+
...lights[currentLight],
|
|
119
|
+
color: convertColor(spotLight, useByteColors),
|
|
120
|
+
position: spotLight.position,
|
|
121
|
+
direction: spotLight.direction,
|
|
122
|
+
attenuation: spotLight.attenuation || [1, 0, 0],
|
|
123
|
+
coneCos: getSpotConeCos(spotLight)
|
|
124
|
+
};
|
|
125
|
+
currentLight++;
|
|
126
|
+
spotLightCount++;
|
|
127
|
+
}
|
|
128
|
+
for (const directionalLight of directionalLights) {
|
|
129
|
+
if (currentLight >= MAX_LIGHTS) {
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
lights[currentLight] = {
|
|
133
|
+
...lights[currentLight],
|
|
134
|
+
color: convertColor(directionalLight, useByteColors),
|
|
135
|
+
direction: directionalLight.direction
|
|
136
|
+
};
|
|
137
|
+
currentLight++;
|
|
138
|
+
directionalLightCount++;
|
|
139
|
+
}
|
|
140
|
+
if (pointLights.length + spotLights.length + directionalLights.length > MAX_LIGHTS) {
|
|
141
|
+
console.warn(`MAX_LIGHTS exceeded, truncating to ${MAX_LIGHTS}`);
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
ambientColor: convertColor(ambientLight, useByteColors),
|
|
145
|
+
directionalLightCount,
|
|
146
|
+
pointLightCount,
|
|
147
|
+
spotLightCount,
|
|
148
|
+
lights
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
function extractLightTypes(lights) {
|
|
152
|
+
var _a, _b, _c;
|
|
153
|
+
const lightSources = { pointLights: [], spotLights: [], directionalLights: [] };
|
|
154
|
+
for (const light of lights || []) {
|
|
155
|
+
switch (light.type) {
|
|
156
|
+
case "ambient":
|
|
157
|
+
lightSources.ambientLight = light;
|
|
158
|
+
break;
|
|
159
|
+
case "directional":
|
|
160
|
+
(_a = lightSources.directionalLights) == null ? void 0 : _a.push(light);
|
|
161
|
+
break;
|
|
162
|
+
case "point":
|
|
163
|
+
(_b = lightSources.pointLights) == null ? void 0 : _b.push(light);
|
|
164
|
+
break;
|
|
165
|
+
case "spot":
|
|
166
|
+
(_c = lightSources.spotLights) == null ? void 0 : _c.push(light);
|
|
167
|
+
break;
|
|
168
|
+
default:
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return lightSources;
|
|
172
|
+
}
|
|
173
|
+
function convertColor(colorDef = {}, useByteColors) {
|
|
174
|
+
const { color = [0, 0, 0], intensity = 1 } = colorDef;
|
|
175
|
+
const normalizedColor = (0, import_normalize_byte_colors.normalizeByteColor3)(color, (0, import_normalize_byte_colors.resolveUseByteColors)(useByteColors, true));
|
|
176
|
+
return normalizedColor.map((component) => component * intensity);
|
|
177
|
+
}
|
|
178
|
+
function createDefaultLightingUniforms() {
|
|
179
|
+
return {
|
|
180
|
+
enabled: 1,
|
|
181
|
+
directionalLightCount: 0,
|
|
182
|
+
pointLightCount: 0,
|
|
183
|
+
spotLightCount: 0,
|
|
184
|
+
ambientColor: [0.1, 0.1, 0.1],
|
|
185
|
+
lights: createDefaultLightUniforms(),
|
|
186
|
+
areaLightCount: 0,
|
|
187
|
+
areaLights: (0, import_area_light_types.packAreaLights)([])
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function createDefaultLightUniforms() {
|
|
191
|
+
return Array.from({ length: MAX_LIGHTS }, () => createDefaultLightUniform());
|
|
192
|
+
}
|
|
193
|
+
function createDefaultLightUniform() {
|
|
194
|
+
return {
|
|
195
|
+
color: [1, 1, 1],
|
|
196
|
+
position: [1, 1, 2],
|
|
197
|
+
direction: [1, 1, 1],
|
|
198
|
+
attenuation: [1, 0, 0],
|
|
199
|
+
coneCos: [1, 0]
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
function getSpotConeCos(spotLight) {
|
|
203
|
+
const innerConeAngle = spotLight.innerConeAngle ?? 0;
|
|
204
|
+
const outerConeAngle = spotLight.outerConeAngle ?? Math.PI / 4;
|
|
205
|
+
return [Math.cos(innerConeAngle), Math.cos(outerConeAngle)];
|
|
206
|
+
}
|
|
207
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
208
|
+
0 && (module.exports = {
|
|
209
|
+
lighting
|
|
210
|
+
});
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { type AreaLight, type AreaLightUniform } from "../area-lighting/area-light-types.js";
|
|
2
|
+
import type { NumberArray2, NumberArray3 } from '@math.gl/core';
|
|
3
|
+
/** Supported light source descriptions accepted by the lighting shader module. */
|
|
4
|
+
export type Light = AmbientLight | PointLight | SpotLight | DirectionalLight | AreaLight;
|
|
5
|
+
/** Ambient light contribution shared across the entire scene. */
|
|
6
|
+
export type AmbientLight = {
|
|
7
|
+
/** Discriminator used to identify ambient lights in `lights: Light[]`. */
|
|
8
|
+
type: 'ambient';
|
|
9
|
+
/** RGB light color in the existing `0..255` convention used by luma.gl materials. */
|
|
10
|
+
color?: Readonly<NumberArray3>;
|
|
11
|
+
/** Scalar intensity multiplier applied to the light color. */
|
|
12
|
+
intensity?: number;
|
|
13
|
+
};
|
|
14
|
+
/** Omnidirectional point light emitted from a world-space position. */
|
|
15
|
+
export type PointLight = {
|
|
16
|
+
/** Discriminator used to identify point lights in `lights: Light[]`. */
|
|
17
|
+
type: 'point';
|
|
18
|
+
/** World-space light position. */
|
|
19
|
+
position: Readonly<NumberArray3>;
|
|
20
|
+
/** RGB light color in the existing `0..255` convention used by luma.gl materials. */
|
|
21
|
+
color?: Readonly<NumberArray3>;
|
|
22
|
+
/** Scalar intensity multiplier applied to the light color. */
|
|
23
|
+
intensity?: number;
|
|
24
|
+
/** Constant, linear, and quadratic attenuation coefficients. */
|
|
25
|
+
attenuation?: Readonly<NumberArray3>;
|
|
26
|
+
};
|
|
27
|
+
/** Directional light defined only by its incoming world-space direction. */
|
|
28
|
+
export type DirectionalLight = {
|
|
29
|
+
/** Discriminator used to identify directional lights in `lights: Light[]`. */
|
|
30
|
+
type: 'directional';
|
|
31
|
+
/** World-space light direction. */
|
|
32
|
+
direction: Readonly<NumberArray3>;
|
|
33
|
+
/** RGB light color in the existing `0..255` convention used by luma.gl materials. */
|
|
34
|
+
color?: Readonly<NumberArray3>;
|
|
35
|
+
/** Scalar intensity multiplier applied to the light color. */
|
|
36
|
+
intensity?: number;
|
|
37
|
+
};
|
|
38
|
+
/** Cone-shaped light emitted from a position and focused along a direction. */
|
|
39
|
+
export type SpotLight = {
|
|
40
|
+
/** Discriminator used to identify spot lights in `lights: Light[]`. */
|
|
41
|
+
type: 'spot';
|
|
42
|
+
/** World-space light position. */
|
|
43
|
+
position: Readonly<NumberArray3>;
|
|
44
|
+
/** World-space light direction. */
|
|
45
|
+
direction: Readonly<NumberArray3>;
|
|
46
|
+
/** RGB light color in the existing `0..255` convention used by luma.gl materials. */
|
|
47
|
+
color?: Readonly<NumberArray3>;
|
|
48
|
+
/** Scalar intensity multiplier applied to the light color. */
|
|
49
|
+
intensity?: number;
|
|
50
|
+
/** Constant, linear, and quadratic attenuation coefficients. */
|
|
51
|
+
attenuation?: Readonly<NumberArray3>;
|
|
52
|
+
/** Inner spotlight cone angle in radians. */
|
|
53
|
+
innerConeAngle?: number;
|
|
54
|
+
/** Outer spotlight cone angle in radians. */
|
|
55
|
+
outerConeAngle?: number;
|
|
56
|
+
};
|
|
57
|
+
/** Public JavaScript props accepted by the `lighting` shader module. */
|
|
58
|
+
export type LightingProps = {
|
|
59
|
+
/** Enables or disables lighting calculations for the module. */
|
|
60
|
+
enabled?: boolean;
|
|
61
|
+
/** When true, light colors are interpreted as byte-style 0-255 values. */
|
|
62
|
+
useByteColors?: boolean;
|
|
63
|
+
/** Preferred API for supplying mixed ambient, point, spot, directional, rectangle, and disk lights. */
|
|
64
|
+
lights?: Light[];
|
|
65
|
+
/**
|
|
66
|
+
* Legacy ambient-light prop.
|
|
67
|
+
* @deprecated Use `lights` with `{type: 'ambient', ...}` entries instead.
|
|
68
|
+
*/
|
|
69
|
+
ambientLight?: AmbientLight;
|
|
70
|
+
/**
|
|
71
|
+
* Legacy point-light prop.
|
|
72
|
+
* @deprecated Use `lights` with `{type: 'point', ...}` entries instead.
|
|
73
|
+
*/
|
|
74
|
+
pointLights?: PointLight[];
|
|
75
|
+
/**
|
|
76
|
+
* Legacy spot-light prop.
|
|
77
|
+
* @deprecated Use `lights` with `{type: 'spot', ...}` entries instead.
|
|
78
|
+
*/
|
|
79
|
+
spotLights?: SpotLight[];
|
|
80
|
+
/**
|
|
81
|
+
* Legacy directional-light prop.
|
|
82
|
+
* @deprecated Use `lights` with `{type: 'directional', ...}` entries instead.
|
|
83
|
+
*/
|
|
84
|
+
directionalLights?: DirectionalLight[];
|
|
85
|
+
};
|
|
86
|
+
/** Packed per-light data written into the module's fixed-size uniform array. */
|
|
87
|
+
export type LightingLightUniform = {
|
|
88
|
+
/** Light color converted to normalized shader-space RGB. */
|
|
89
|
+
color: Readonly<NumberArray3>;
|
|
90
|
+
/** World-space light position or a default placeholder for non-positional lights. */
|
|
91
|
+
position: Readonly<NumberArray3>;
|
|
92
|
+
/** World-space light direction or a default placeholder for positional lights. */
|
|
93
|
+
direction: Readonly<NumberArray3>;
|
|
94
|
+
/** Constant, linear, and quadratic attenuation coefficients. */
|
|
95
|
+
attenuation: Readonly<NumberArray3>;
|
|
96
|
+
/** Cosines of the inner and outer spotlight cone angles. */
|
|
97
|
+
coneCos: Readonly<NumberArray2>;
|
|
98
|
+
};
|
|
99
|
+
/** Fully normalized uniform values produced by the `lighting` shader module. */
|
|
100
|
+
export type LightingUniforms = {
|
|
101
|
+
/** `1` when lighting is enabled, otherwise `0`. */
|
|
102
|
+
enabled: number;
|
|
103
|
+
/** Number of packed directional lights in the `lights` array. */
|
|
104
|
+
directionalLightCount: number;
|
|
105
|
+
/** Number of packed point lights in the `lights` array. */
|
|
106
|
+
pointLightCount: number;
|
|
107
|
+
/** Number of packed spot lights in the `lights` array. */
|
|
108
|
+
spotLightCount: number;
|
|
109
|
+
/** Accumulated ambient color converted to normalized shader-space RGB. */
|
|
110
|
+
ambientColor: Readonly<NumberArray3>;
|
|
111
|
+
/** Packed trailing array of non-ambient light structs. */
|
|
112
|
+
lights: ReadonlyArray<LightingLightUniform>;
|
|
113
|
+
areaLightCount: number;
|
|
114
|
+
areaLights: readonly AreaLightUniform[];
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Portable lighting shader module shared by the Phong, Gouraud, and PBR material modules.
|
|
118
|
+
*
|
|
119
|
+
* The public JavaScript API accepts `lights: Light[]`, while the uniform buffer packs
|
|
120
|
+
* non-ambient lights into a fixed-size trailing array for portability across WebGL2 and WebGPU.
|
|
121
|
+
*/
|
|
122
|
+
export declare const lighting: {
|
|
123
|
+
readonly props: LightingProps;
|
|
124
|
+
readonly uniforms: LightingUniforms;
|
|
125
|
+
readonly name: "lighting";
|
|
126
|
+
readonly defines: {};
|
|
127
|
+
readonly uniformTypes: {
|
|
128
|
+
readonly enabled: "i32";
|
|
129
|
+
readonly directionalLightCount: "i32";
|
|
130
|
+
readonly pointLightCount: "i32";
|
|
131
|
+
readonly spotLightCount: "i32";
|
|
132
|
+
readonly ambientColor: "vec3<f32>";
|
|
133
|
+
readonly lights: readonly [{
|
|
134
|
+
readonly color: "vec3<f32>";
|
|
135
|
+
readonly position: "vec3<f32>";
|
|
136
|
+
readonly direction: "vec3<f32>";
|
|
137
|
+
readonly attenuation: "vec3<f32>";
|
|
138
|
+
readonly coneCos: "vec2<f32>";
|
|
139
|
+
}, 5];
|
|
140
|
+
readonly areaLightCount: "i32";
|
|
141
|
+
readonly areaLights: readonly [{
|
|
142
|
+
readonly color: "vec3<f32>";
|
|
143
|
+
readonly position: "vec3<f32>";
|
|
144
|
+
readonly halfAxisX: "vec3<f32>";
|
|
145
|
+
readonly halfAxisY: "vec3<f32>";
|
|
146
|
+
readonly normal: "vec3<f32>";
|
|
147
|
+
readonly disk: "i32";
|
|
148
|
+
}, 4];
|
|
149
|
+
};
|
|
150
|
+
readonly defaultUniforms: LightingUniforms;
|
|
151
|
+
readonly bindingLayout: readonly [{
|
|
152
|
+
readonly name: "lighting";
|
|
153
|
+
readonly group: 2;
|
|
154
|
+
}];
|
|
155
|
+
readonly firstBindingSlot: 0;
|
|
156
|
+
readonly source: "// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\nconst MAX_LIGHTS: i32 = 5;\n\nstruct AmbientLight {\n color: vec3<f32>,\n};\n\nstruct PointLight {\n color: vec3<f32>,\n position: vec3<f32>,\n attenuation: vec3<f32>, // 2nd order x:Constant-y:Linear-z:Exponential\n};\n\nstruct SpotLight {\n color: vec3<f32>,\n position: vec3<f32>,\n direction: vec3<f32>,\n attenuation: vec3<f32>,\n coneCos: vec2<f32>,\n};\n\nstruct DirectionalLight {\n color: vec3<f32>,\n direction: vec3<f32>,\n};\n\nstruct UniformLight {\n color: vec3<f32>,\n position: vec3<f32>,\n direction: vec3<f32>,\n attenuation: vec3<f32>,\n coneCos: vec2<f32>,\n};\n\nstruct AreaLightUniform {\n color: vec3f, position: vec3f, halfAxisX: vec3f, halfAxisY: vec3f, normal: vec3f, disk: i32,\n};\n\nstruct lightingUniforms {\n enabled: i32,\n directionalLightCount: i32,\n pointLightCount: i32,\n spotLightCount: i32,\n ambientColor: vec3<f32>,\n lights: array<UniformLight, 5>,\n areaLightCount: i32,\n areaLights: array<AreaLightUniform, 4>,\n};\n\n@group(2) @binding(auto) var<uniform> lighting : lightingUniforms;\n\nfn lighting_getPointLight(index: i32) -> PointLight {\n let light = lighting.lights[index];\n return PointLight(light.color, light.position, light.attenuation);\n}\n\nfn lighting_getSpotLight(index: i32) -> SpotLight {\n let light = lighting.lights[lighting.pointLightCount + index];\n return SpotLight(light.color, light.position, light.direction, light.attenuation, light.coneCos);\n}\n\nfn lighting_getDirectionalLight(index: i32) -> DirectionalLight {\n let light = lighting.lights[lighting.pointLightCount + lighting.spotLightCount + index];\n return DirectionalLight(light.color, light.direction);\n}\n\nfn getPointLightAttenuation(pointLight: PointLight, distance: f32) -> f32 {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\nfn getSpotLightAttenuation(spotLight: SpotLight, positionWorldspace: vec3<f32>) -> f32 {\n let lightDirection = normalize(positionWorldspace - spotLight.position);\n let coneFactor = smoothstep(\n spotLight.coneCos.y,\n spotLight.coneCos.x,\n dot(normalize(spotLight.direction), lightDirection)\n );\n let distanceAttenuation = getPointLightAttenuation(\n PointLight(spotLight.color, spotLight.position, spotLight.attenuation),\n distance(spotLight.position, positionWorldspace)\n );\n return distanceAttenuation / max(coneFactor, 0.0001);\n}\n";
|
|
157
|
+
readonly vs: "precision highp int;\n\n// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\nstruct AmbientLight {\n vec3 color;\n};\n\nstruct PointLight {\n vec3 color;\n vec3 position;\n vec3 attenuation; // 2nd order x:Constant-y:Linear-z:Exponential\n};\n\nstruct SpotLight {\n vec3 color;\n vec3 position;\n vec3 direction;\n vec3 attenuation;\n vec2 coneCos;\n};\n\nstruct DirectionalLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct UniformLight {\n vec3 color;\n vec3 position;\n vec3 direction;\n vec3 attenuation;\n vec2 coneCos;\n};\n\nstruct AreaLightUniform {\n vec3 color; vec3 position; vec3 halfAxisX; vec3 halfAxisY; vec3 normal; int disk;\n};\n\nlayout(std140) uniform lightingUniforms {\n int enabled;\n int directionalLightCount;\n int pointLightCount;\n int spotLightCount;\n vec3 ambientColor;\n UniformLight lights[5];\n int areaLightCount;\n AreaLightUniform areaLights[4];\n} lighting;\n\nPointLight lighting_getPointLight(int index) {\n UniformLight light = lighting.lights[index];\n return PointLight(light.color, light.position, light.attenuation);\n}\n\nSpotLight lighting_getSpotLight(int index) {\n UniformLight light = lighting.lights[lighting.pointLightCount + index];\n return SpotLight(light.color, light.position, light.direction, light.attenuation, light.coneCos);\n}\n\nDirectionalLight lighting_getDirectionalLight(int index) {\n UniformLight light =\n lighting.lights[lighting.pointLightCount + lighting.spotLightCount + index];\n return DirectionalLight(light.color, light.direction);\n}\n\nfloat getPointLightAttenuation(PointLight pointLight, float distance) {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\nfloat getSpotLightAttenuation(SpotLight spotLight, vec3 positionWorldspace) {\n vec3 light_direction = normalize(positionWorldspace - spotLight.position);\n float coneFactor = smoothstep(\n spotLight.coneCos.y,\n spotLight.coneCos.x,\n dot(normalize(spotLight.direction), light_direction)\n );\n float distanceAttenuation = getPointLightAttenuation(\n PointLight(spotLight.color, spotLight.position, spotLight.attenuation),\n distance(spotLight.position, positionWorldspace)\n );\n return distanceAttenuation / max(coneFactor, 0.0001);\n}\n\n// #endif\n";
|
|
158
|
+
readonly fs: "precision highp int;\n\n// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))\nstruct AmbientLight {\n vec3 color;\n};\n\nstruct PointLight {\n vec3 color;\n vec3 position;\n vec3 attenuation; // 2nd order x:Constant-y:Linear-z:Exponential\n};\n\nstruct SpotLight {\n vec3 color;\n vec3 position;\n vec3 direction;\n vec3 attenuation;\n vec2 coneCos;\n};\n\nstruct DirectionalLight {\n vec3 color;\n vec3 direction;\n};\n\nstruct UniformLight {\n vec3 color;\n vec3 position;\n vec3 direction;\n vec3 attenuation;\n vec2 coneCos;\n};\n\nstruct AreaLightUniform {\n vec3 color; vec3 position; vec3 halfAxisX; vec3 halfAxisY; vec3 normal; int disk;\n};\n\nlayout(std140) uniform lightingUniforms {\n int enabled;\n int directionalLightCount;\n int pointLightCount;\n int spotLightCount;\n vec3 ambientColor;\n UniformLight lights[5];\n int areaLightCount;\n AreaLightUniform areaLights[4];\n} lighting;\n\nPointLight lighting_getPointLight(int index) {\n UniformLight light = lighting.lights[index];\n return PointLight(light.color, light.position, light.attenuation);\n}\n\nSpotLight lighting_getSpotLight(int index) {\n UniformLight light = lighting.lights[lighting.pointLightCount + index];\n return SpotLight(light.color, light.position, light.direction, light.attenuation, light.coneCos);\n}\n\nDirectionalLight lighting_getDirectionalLight(int index) {\n UniformLight light =\n lighting.lights[lighting.pointLightCount + lighting.spotLightCount + index];\n return DirectionalLight(light.color, light.direction);\n}\n\nfloat getPointLightAttenuation(PointLight pointLight, float distance) {\n return pointLight.attenuation.x\n + pointLight.attenuation.y * distance\n + pointLight.attenuation.z * distance * distance;\n}\n\nfloat getSpotLightAttenuation(SpotLight spotLight, vec3 positionWorldspace) {\n vec3 light_direction = normalize(positionWorldspace - spotLight.position);\n float coneFactor = smoothstep(\n spotLight.coneCos.y,\n spotLight.coneCos.x,\n dot(normalize(spotLight.direction), light_direction)\n );\n float distanceAttenuation = getPointLightAttenuation(\n PointLight(spotLight.color, spotLight.position, spotLight.attenuation),\n distance(spotLight.position, positionWorldspace)\n );\n return distanceAttenuation / max(coneFactor, 0.0001);\n}\n\n// #endif\n";
|
|
159
|
+
readonly getUniforms: typeof getUniforms;
|
|
160
|
+
};
|
|
161
|
+
declare function getUniforms(props?: LightingProps, _prevUniforms?: Partial<LightingUniforms>): LightingUniforms;
|
|
162
|
+
export {};
|
|
163
|
+
//# sourceMappingURL=lighting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lighting.d.ts","sourceRoot":"","sources":["../../../../src/modules/lighting/lights/lighting.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,gBAAgB,EAItB,6CAA0C;AAI3C,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAM9D,kFAAkF;AAClF,MAAM,MAAM,KAAK,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAC;AAEzF,iEAAiE;AACjE,MAAM,MAAM,YAAY,GAAG;IACzB,0EAA0E;IAC1E,IAAI,EAAE,SAAS,CAAC;IAChB,qFAAqF;IACrF,KAAK,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG;IACvB,wEAAwE;IACxE,IAAI,EAAE,OAAO,CAAC;IACd,kCAAkC;IAClC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjC,qFAAqF;IACrF,KAAK,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;CACtC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8EAA8E;IAC9E,IAAI,EAAE,aAAa,CAAC;IACpB,mCAAmC;IACnC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClC,qFAAqF;IACrF,KAAK,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,SAAS,GAAG;IACtB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjC,mCAAmC;IACnC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClC,qFAAqF;IACrF,KAAK,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,WAAW,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,aAAa,GAAG;IAC1B,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uGAAuG;IACvG,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACxC,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAAG;IACjC,4DAA4D;IAC5D,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC9B,qFAAqF;IACrF,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjC,kFAAkF;IAClF,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAClC,gEAAgE;IAChE,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACpC,4DAA4D;IAC5D,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;CACjC,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,0DAA0D;IAC1D,MAAM,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACzC,CAAC;AAUF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;oBACN,aAAa;uBACV,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BoC,CAAC;AAEvE,iBAAS,WAAW,CAClB,KAAK,CAAC,EAAE,aAAa,EACrB,aAAa,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAC5C,gBAAgB,CAoDlB"}
|