@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,180 @@
|
|
|
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 fp64_functions_wgsl_exports = {};
|
|
19
|
+
__export(fp64_functions_wgsl_exports, {
|
|
20
|
+
fp64functionsWGSL: () => fp64functionsWGSL
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(fp64_functions_wgsl_exports);
|
|
23
|
+
const fp64functionsWGSL = (
|
|
24
|
+
/* wgsl */
|
|
25
|
+
`const E_FP64 = vec2f(2.7182817459106445, 8.254840366817007e-8);
|
|
26
|
+
const LOG2_FP64 = vec2f(0.6931471824645996, -1.9046542121259336e-9);
|
|
27
|
+
const PI_FP64 = vec2f(3.1415927410125732, -8.742278012618954e-8);
|
|
28
|
+
const TWO_PI_FP64 = vec2f(6.2831854820251465, -1.7484556025237907e-7);
|
|
29
|
+
const PI_2_FP64 = vec2f(1.5707963705062866, -4.371139006309477e-8);
|
|
30
|
+
const PI_4_FP64 = vec2f(0.7853981852531433, -2.1855695031547384e-8);
|
|
31
|
+
const PI_180_FP64 = vec2f(0.01745329238474369, 1.3519960498364902e-10);
|
|
32
|
+
|
|
33
|
+
// High/low splits of 1/n!, 1/(2n+1)!, and 1/(2n)! respectively.
|
|
34
|
+
const FP64_EXP_COEFFICIENTS = array<vec2f, 17>(
|
|
35
|
+
vec2f(1.0, 0.0),
|
|
36
|
+
vec2f(1.0, 0.0),
|
|
37
|
+
vec2f(0.5, 0.0),
|
|
38
|
+
vec2f(0.1666666716337204, -4.967053879312289e-09),
|
|
39
|
+
vec2f(0.0416666679084301, -1.2417634698280722e-09),
|
|
40
|
+
vec2f(0.008333333767950535, -4.34617203337595e-10),
|
|
41
|
+
vec2f(0.0013888889225199819, -3.3631094437103215e-11),
|
|
42
|
+
vec2f(0.00019841270113829523, -2.725596874933456e-12),
|
|
43
|
+
vec2f(2.4801587642286904e-05, -3.40699609366682e-13),
|
|
44
|
+
vec2f(2.7557318844628753e-06, 3.793571224297229e-14),
|
|
45
|
+
vec2f(2.755731998149713e-07, -7.575112209051195e-15),
|
|
46
|
+
vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),
|
|
47
|
+
vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),
|
|
48
|
+
vec2f(1.6059044372074283e-10, -5.352526511562726e-18),
|
|
49
|
+
vec2f(1.147074536050896e-11, 2.372207689231238e-19),
|
|
50
|
+
vec2f(7.647163609812713e-13, 1.2200710471178288e-20),
|
|
51
|
+
vec2f(4.7794772561329454e-14, 7.62544404448643e-22)
|
|
52
|
+
);
|
|
53
|
+
const FP64_SIN_COEFFICIENTS = array<vec2f, 9>(
|
|
54
|
+
vec2f(1.0, 0.0),
|
|
55
|
+
vec2f(0.1666666716337204, -4.967053879312289e-09),
|
|
56
|
+
vec2f(0.008333333767950535, -4.34617203337595e-10),
|
|
57
|
+
vec2f(0.00019841270113829523, -2.725596874933456e-12),
|
|
58
|
+
vec2f(2.7557318844628753e-06, 3.793571224297229e-14),
|
|
59
|
+
vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),
|
|
60
|
+
vec2f(1.6059044372074283e-10, -5.352526511562726e-18),
|
|
61
|
+
vec2f(7.647163609812713e-13, 1.2200710471178288e-20),
|
|
62
|
+
vec2f(2.8114573589663704e-15, -1.0462084739763658e-22)
|
|
63
|
+
);
|
|
64
|
+
const FP64_COS_COEFFICIENTS = array<vec2f, 9>(
|
|
65
|
+
vec2f(1.0, 0.0),
|
|
66
|
+
vec2f(0.5, 0.0),
|
|
67
|
+
vec2f(0.0416666679084301, -1.2417634698280722e-09),
|
|
68
|
+
vec2f(0.0013888889225199819, -3.3631094437103215e-11),
|
|
69
|
+
vec2f(2.4801587642286904e-05, -3.40699609366682e-13),
|
|
70
|
+
vec2f(2.755731998149713e-07, -7.575112209051195e-15),
|
|
71
|
+
vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),
|
|
72
|
+
vec2f(1.147074536050896e-11, 2.372207689231238e-19),
|
|
73
|
+
vec2f(4.7794772561329454e-14, 7.62544404448643e-22)
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
// Reduce by log(2) before evaluating the exponential. Horner evaluation uses split
|
|
77
|
+
// coefficients to retain low terms without repeatedly expanding double-single division.
|
|
78
|
+
fn exp_fp64(value: vec2f) -> vec2f {
|
|
79
|
+
let a = normalize_fp64(value);
|
|
80
|
+
if (is_nan_fp64(a)) { return a; }
|
|
81
|
+
// WGSL rejects non-finite constant expressions; construct infinity from runtime bits.
|
|
82
|
+
if (a.x > 88.72283905206835) { return vec2f(bitcast<f32>(0x7f800000u | (bitcast<u32>(a.x) & 0x80000000u)), 0.0); }
|
|
83
|
+
if (a.x < -103.9720770839918) { return vec2f(0.0); }
|
|
84
|
+
let exponent = min(127.0, floor(a.x / LOG2_FP64.x + 0.5));
|
|
85
|
+
let remainder = sub_fp64(a, mul_fp64(LOG2_FP64, vec2f(exponent, 0.0)));
|
|
86
|
+
var result = FP64_EXP_COEFFICIENTS[16];
|
|
87
|
+
for (var i = 15; i >= 0; i--) {
|
|
88
|
+
result = sum_fp64(FP64_EXP_COEFFICIENTS[i], mul_fp64(remainder, result));
|
|
89
|
+
}
|
|
90
|
+
return fp64_scale_fp64(result, i32(exponent));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
fn log_fp64(value: vec2f) -> vec2f {
|
|
94
|
+
let a = normalize_fp64(value);
|
|
95
|
+
if (is_nan_fp64(a)) { return a; }
|
|
96
|
+
// Match the GLSL helper's domain: zero and negative inputs return NaN.
|
|
97
|
+
if (sign_fp64(a) <= 0) { return vec2f(fp64_nan(a.x), 0.0); }
|
|
98
|
+
if (!is_finite_fp64(a)) { return a; }
|
|
99
|
+
// Normalize the magnitude before Newton refinement so exp(estimate) cannot overflow
|
|
100
|
+
// for large inputs or underflow for tiny inputs. Bit extraction also handles subnormals.
|
|
101
|
+
let exponent = max(-126, i32((bitcast<u32>(a.x) >> 23u) & 255u) - 127);
|
|
102
|
+
let mantissa = fp64_scale_fp64(a, -exponent);
|
|
103
|
+
var result = vec2f(log(mantissa.x), 0.0);
|
|
104
|
+
// Newton correction, written as (a - exp(x)) / exp(x), preserves tiny log(1 + low).
|
|
105
|
+
// Two iterations remove the error in the native f32 starting estimate.
|
|
106
|
+
for (var i = 0; i < 2; i++) {
|
|
107
|
+
let estimate = exp_fp64(result);
|
|
108
|
+
result = sum_fp64(result, div_fp64(sub_fp64(mantissa, estimate), estimate));
|
|
109
|
+
}
|
|
110
|
+
return sum_fp64(result, mul_fp64(LOG2_FP64, vec2f(f32(exponent), 0.0)));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
struct Fp64SinCos {
|
|
114
|
+
sine: vec2f,
|
|
115
|
+
cosine: vec2f,
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
fn fp64_sincos(value: vec2f) -> Fp64SinCos {
|
|
119
|
+
let a = normalize_fp64(value);
|
|
120
|
+
// The projection use case stays within one turn. Bound conversion to an integer quadrant;
|
|
121
|
+
// this is not a large-argument Payne-Hanek trigonometric range reducer.
|
|
122
|
+
if (!is_finite_fp64(a) || abs(a.x) > 1000000.0) {
|
|
123
|
+
return Fp64SinCos(vec2f(fp64_nan(a.x), 0.0), vec2f(fp64_nan(a.x), 0.0));
|
|
124
|
+
}
|
|
125
|
+
let quadrant = i32(floor(a.x / PI_2_FP64.x + 0.5));
|
|
126
|
+
let remainder = sub_fp64(a, mul_fp64(PI_2_FP64, vec2f(f32(quadrant), 0.0)));
|
|
127
|
+
let negativeSquare = -mul_fp64(remainder, remainder);
|
|
128
|
+
var sinePolynomial = FP64_SIN_COEFFICIENTS[8];
|
|
129
|
+
var cosine = FP64_COS_COEFFICIENTS[8];
|
|
130
|
+
for (var i = 7; i >= 0; i--) {
|
|
131
|
+
sinePolynomial = sum_fp64(FP64_SIN_COEFFICIENTS[i], mul_fp64(negativeSquare, sinePolynomial));
|
|
132
|
+
cosine = sum_fp64(FP64_COS_COEFFICIENTS[i], mul_fp64(negativeSquare, cosine));
|
|
133
|
+
}
|
|
134
|
+
let sine = mul_fp64(remainder, sinePolynomial);
|
|
135
|
+
switch ((quadrant % 4 + 4) % 4) {
|
|
136
|
+
case 0: { return Fp64SinCos(sine, cosine); }
|
|
137
|
+
case 1: { return Fp64SinCos(cosine, -sine); }
|
|
138
|
+
case 2: { return Fp64SinCos(-sine, -cosine); }
|
|
139
|
+
default: { return Fp64SinCos(-cosine, sine); }
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
fn sin_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).sine; }
|
|
144
|
+
fn cos_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).cosine; }
|
|
145
|
+
fn tan_fp64(a: vec2f) -> vec2f {
|
|
146
|
+
let result = fp64_sincos(a);
|
|
147
|
+
return div_fp64(result.sine, result.cosine);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
fn radians_fp64(degree: vec2f) -> vec2f { return mul_fp64(degree, PI_180_FP64); }
|
|
151
|
+
fn mix_fp64(a: vec2f, b: vec2f, x: f32) -> vec2f {
|
|
152
|
+
return sum_fp64(a, mul_fp64(sub_fp64(b, a), vec2f(x, 0.0)));
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// WGSL returns arrays in place of GLSL out parameters. Each vec2f stores [high, low].
|
|
156
|
+
fn vec4_fp64(a: vec4f) -> array<vec2f, 4> {
|
|
157
|
+
return array<vec2f, 4>(vec2f(a.x, 0.0), vec2f(a.y, 0.0), vec2f(a.z, 0.0), vec2f(a.w, 0.0));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
fn vec4_dot_fp64(a: array<vec2f, 4>, b: array<vec2f, 4>) -> vec2f {
|
|
161
|
+
return sum_fp64(
|
|
162
|
+
sum_fp64(mul_fp64(a[0], b[0]), mul_fp64(a[1], b[1])),
|
|
163
|
+
sum_fp64(mul_fp64(a[2], b[2]), mul_fp64(a[3], b[3])));
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Same row-major pair ordering as the GLSL helper: result[i] = dot(matrix[i * 4..], a).
|
|
167
|
+
fn mat4_vec4_mul_fp64(matrix: array<vec2f, 16>, a: array<vec2f, 4>) -> array<vec2f, 4> {
|
|
168
|
+
var result: array<vec2f, 4>;
|
|
169
|
+
for (var i = 0; i < 4; i++) {
|
|
170
|
+
let row = array<vec2f, 4>(matrix[i * 4], matrix[i * 4 + 1], matrix[i * 4 + 2], matrix[i * 4 + 3]);
|
|
171
|
+
result[i] = vec4_dot_fp64(a, row);
|
|
172
|
+
}
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
175
|
+
`
|
|
176
|
+
);
|
|
177
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
178
|
+
0 && (module.exports = {
|
|
179
|
+
fp64functionsWGSL
|
|
180
|
+
});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** WGSL double-single functions used by geographic projection. */
|
|
2
|
+
export declare const fp64functionsWGSL = "const E_FP64 = vec2f(2.7182817459106445, 8.254840366817007e-8);\nconst LOG2_FP64 = vec2f(0.6931471824645996, -1.9046542121259336e-9);\nconst PI_FP64 = vec2f(3.1415927410125732, -8.742278012618954e-8);\nconst TWO_PI_FP64 = vec2f(6.2831854820251465, -1.7484556025237907e-7);\nconst PI_2_FP64 = vec2f(1.5707963705062866, -4.371139006309477e-8);\nconst PI_4_FP64 = vec2f(0.7853981852531433, -2.1855695031547384e-8);\nconst PI_180_FP64 = vec2f(0.01745329238474369, 1.3519960498364902e-10);\n\n// High/low splits of 1/n!, 1/(2n+1)!, and 1/(2n)! respectively.\nconst FP64_EXP_COEFFICIENTS = array<vec2f, 17>(\n vec2f(1.0, 0.0),\n vec2f(1.0, 0.0),\n vec2f(0.5, 0.0),\n vec2f(0.1666666716337204, -4.967053879312289e-09),\n vec2f(0.0416666679084301, -1.2417634698280722e-09),\n vec2f(0.008333333767950535, -4.34617203337595e-10),\n vec2f(0.0013888889225199819, -3.3631094437103215e-11),\n vec2f(0.00019841270113829523, -2.725596874933456e-12),\n vec2f(2.4801587642286904e-05, -3.40699609366682e-13),\n vec2f(2.7557318844628753e-06, 3.793571224297229e-14),\n vec2f(2.755731998149713e-07, -7.575112209051195e-15),\n vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),\n vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),\n vec2f(1.6059044372074283e-10, -5.352526511562726e-18),\n vec2f(1.147074536050896e-11, 2.372207689231238e-19),\n vec2f(7.647163609812713e-13, 1.2200710471178288e-20),\n vec2f(4.7794772561329454e-14, 7.62544404448643e-22)\n);\nconst FP64_SIN_COEFFICIENTS = array<vec2f, 9>(\n vec2f(1.0, 0.0),\n vec2f(0.1666666716337204, -4.967053879312289e-09),\n vec2f(0.008333333767950535, -4.34617203337595e-10),\n vec2f(0.00019841270113829523, -2.725596874933456e-12),\n vec2f(2.7557318844628753e-06, 3.793571224297229e-14),\n vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),\n vec2f(1.6059044372074283e-10, -5.352526511562726e-18),\n vec2f(7.647163609812713e-13, 1.2200710471178288e-20),\n vec2f(2.8114573589663704e-15, -1.0462084739763658e-22)\n);\nconst FP64_COS_COEFFICIENTS = array<vec2f, 9>(\n vec2f(1.0, 0.0),\n vec2f(0.5, 0.0),\n vec2f(0.0416666679084301, -1.2417634698280722e-09),\n vec2f(0.0013888889225199819, -3.3631094437103215e-11),\n vec2f(2.4801587642286904e-05, -3.40699609366682e-13),\n vec2f(2.755731998149713e-07, -7.575112209051195e-15),\n vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),\n vec2f(1.147074536050896e-11, 2.372207689231238e-19),\n vec2f(4.7794772561329454e-14, 7.62544404448643e-22)\n);\n\n// Reduce by log(2) before evaluating the exponential. Horner evaluation uses split\n// coefficients to retain low terms without repeatedly expanding double-single division.\nfn exp_fp64(value: vec2f) -> vec2f {\n let a = normalize_fp64(value);\n if (is_nan_fp64(a)) { return a; }\n // WGSL rejects non-finite constant expressions; construct infinity from runtime bits.\n if (a.x > 88.72283905206835) { return vec2f(bitcast<f32>(0x7f800000u | (bitcast<u32>(a.x) & 0x80000000u)), 0.0); }\n if (a.x < -103.9720770839918) { return vec2f(0.0); }\n let exponent = min(127.0, floor(a.x / LOG2_FP64.x + 0.5));\n let remainder = sub_fp64(a, mul_fp64(LOG2_FP64, vec2f(exponent, 0.0)));\n var result = FP64_EXP_COEFFICIENTS[16];\n for (var i = 15; i >= 0; i--) {\n result = sum_fp64(FP64_EXP_COEFFICIENTS[i], mul_fp64(remainder, result));\n }\n return fp64_scale_fp64(result, i32(exponent));\n}\n\nfn log_fp64(value: vec2f) -> vec2f {\n let a = normalize_fp64(value);\n if (is_nan_fp64(a)) { return a; }\n // Match the GLSL helper's domain: zero and negative inputs return NaN.\n if (sign_fp64(a) <= 0) { return vec2f(fp64_nan(a.x), 0.0); }\n if (!is_finite_fp64(a)) { return a; }\n // Normalize the magnitude before Newton refinement so exp(estimate) cannot overflow\n // for large inputs or underflow for tiny inputs. Bit extraction also handles subnormals.\n let exponent = max(-126, i32((bitcast<u32>(a.x) >> 23u) & 255u) - 127);\n let mantissa = fp64_scale_fp64(a, -exponent);\n var result = vec2f(log(mantissa.x), 0.0);\n // Newton correction, written as (a - exp(x)) / exp(x), preserves tiny log(1 + low).\n // Two iterations remove the error in the native f32 starting estimate.\n for (var i = 0; i < 2; i++) {\n let estimate = exp_fp64(result);\n result = sum_fp64(result, div_fp64(sub_fp64(mantissa, estimate), estimate));\n }\n return sum_fp64(result, mul_fp64(LOG2_FP64, vec2f(f32(exponent), 0.0)));\n}\n\nstruct Fp64SinCos {\n sine: vec2f,\n cosine: vec2f,\n};\n\nfn fp64_sincos(value: vec2f) -> Fp64SinCos {\n let a = normalize_fp64(value);\n // The projection use case stays within one turn. Bound conversion to an integer quadrant;\n // this is not a large-argument Payne-Hanek trigonometric range reducer.\n if (!is_finite_fp64(a) || abs(a.x) > 1000000.0) {\n return Fp64SinCos(vec2f(fp64_nan(a.x), 0.0), vec2f(fp64_nan(a.x), 0.0));\n }\n let quadrant = i32(floor(a.x / PI_2_FP64.x + 0.5));\n let remainder = sub_fp64(a, mul_fp64(PI_2_FP64, vec2f(f32(quadrant), 0.0)));\n let negativeSquare = -mul_fp64(remainder, remainder);\n var sinePolynomial = FP64_SIN_COEFFICIENTS[8];\n var cosine = FP64_COS_COEFFICIENTS[8];\n for (var i = 7; i >= 0; i--) {\n sinePolynomial = sum_fp64(FP64_SIN_COEFFICIENTS[i], mul_fp64(negativeSquare, sinePolynomial));\n cosine = sum_fp64(FP64_COS_COEFFICIENTS[i], mul_fp64(negativeSquare, cosine));\n }\n let sine = mul_fp64(remainder, sinePolynomial);\n switch ((quadrant % 4 + 4) % 4) {\n case 0: { return Fp64SinCos(sine, cosine); }\n case 1: { return Fp64SinCos(cosine, -sine); }\n case 2: { return Fp64SinCos(-sine, -cosine); }\n default: { return Fp64SinCos(-cosine, sine); }\n }\n}\n\nfn sin_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).sine; }\nfn cos_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).cosine; }\nfn tan_fp64(a: vec2f) -> vec2f {\n let result = fp64_sincos(a);\n return div_fp64(result.sine, result.cosine);\n}\n\nfn radians_fp64(degree: vec2f) -> vec2f { return mul_fp64(degree, PI_180_FP64); }\nfn mix_fp64(a: vec2f, b: vec2f, x: f32) -> vec2f {\n return sum_fp64(a, mul_fp64(sub_fp64(b, a), vec2f(x, 0.0)));\n}\n\n// WGSL returns arrays in place of GLSL out parameters. Each vec2f stores [high, low].\nfn vec4_fp64(a: vec4f) -> array<vec2f, 4> {\n return array<vec2f, 4>(vec2f(a.x, 0.0), vec2f(a.y, 0.0), vec2f(a.z, 0.0), vec2f(a.w, 0.0));\n}\n\nfn vec4_dot_fp64(a: array<vec2f, 4>, b: array<vec2f, 4>) -> vec2f {\n return sum_fp64(\n sum_fp64(mul_fp64(a[0], b[0]), mul_fp64(a[1], b[1])),\n sum_fp64(mul_fp64(a[2], b[2]), mul_fp64(a[3], b[3])));\n}\n\n// Same row-major pair ordering as the GLSL helper: result[i] = dot(matrix[i * 4..], a).\nfn mat4_vec4_mul_fp64(matrix: array<vec2f, 16>, a: array<vec2f, 4>) -> array<vec2f, 4> {\n var result: array<vec2f, 4>;\n for (var i = 0; i < 4; i++) {\n let row = array<vec2f, 4>(matrix[i * 4], matrix[i * 4 + 1], matrix[i * 4 + 2], matrix[i * 4 + 3]);\n result[i] = vec4_dot_fp64(a, row);\n }\n return result;\n}\n";
|
|
3
|
+
//# sourceMappingURL=fp64-functions-wgsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp64-functions-wgsl.d.ts","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64-functions-wgsl.ts"],"names":[],"mappings":"AAIA,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,o1NAuJ7B,CAAC"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
/** WGSL double-single functions used by geographic projection. */
|
|
5
|
+
export const fp64functionsWGSL = /* wgsl */ `\
|
|
6
|
+
const E_FP64 = vec2f(2.7182817459106445, 8.254840366817007e-8);
|
|
7
|
+
const LOG2_FP64 = vec2f(0.6931471824645996, -1.9046542121259336e-9);
|
|
8
|
+
const PI_FP64 = vec2f(3.1415927410125732, -8.742278012618954e-8);
|
|
9
|
+
const TWO_PI_FP64 = vec2f(6.2831854820251465, -1.7484556025237907e-7);
|
|
10
|
+
const PI_2_FP64 = vec2f(1.5707963705062866, -4.371139006309477e-8);
|
|
11
|
+
const PI_4_FP64 = vec2f(0.7853981852531433, -2.1855695031547384e-8);
|
|
12
|
+
const PI_180_FP64 = vec2f(0.01745329238474369, 1.3519960498364902e-10);
|
|
13
|
+
|
|
14
|
+
// High/low splits of 1/n!, 1/(2n+1)!, and 1/(2n)! respectively.
|
|
15
|
+
const FP64_EXP_COEFFICIENTS = array<vec2f, 17>(
|
|
16
|
+
vec2f(1.0, 0.0),
|
|
17
|
+
vec2f(1.0, 0.0),
|
|
18
|
+
vec2f(0.5, 0.0),
|
|
19
|
+
vec2f(0.1666666716337204, -4.967053879312289e-09),
|
|
20
|
+
vec2f(0.0416666679084301, -1.2417634698280722e-09),
|
|
21
|
+
vec2f(0.008333333767950535, -4.34617203337595e-10),
|
|
22
|
+
vec2f(0.0013888889225199819, -3.3631094437103215e-11),
|
|
23
|
+
vec2f(0.00019841270113829523, -2.725596874933456e-12),
|
|
24
|
+
vec2f(2.4801587642286904e-05, -3.40699609366682e-13),
|
|
25
|
+
vec2f(2.7557318844628753e-06, 3.793571224297229e-14),
|
|
26
|
+
vec2f(2.755731998149713e-07, -7.575112209051195e-15),
|
|
27
|
+
vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),
|
|
28
|
+
vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),
|
|
29
|
+
vec2f(1.6059044372074283e-10, -5.352526511562726e-18),
|
|
30
|
+
vec2f(1.147074536050896e-11, 2.372207689231238e-19),
|
|
31
|
+
vec2f(7.647163609812713e-13, 1.2200710471178288e-20),
|
|
32
|
+
vec2f(4.7794772561329454e-14, 7.62544404448643e-22)
|
|
33
|
+
);
|
|
34
|
+
const FP64_SIN_COEFFICIENTS = array<vec2f, 9>(
|
|
35
|
+
vec2f(1.0, 0.0),
|
|
36
|
+
vec2f(0.1666666716337204, -4.967053879312289e-09),
|
|
37
|
+
vec2f(0.008333333767950535, -4.34617203337595e-10),
|
|
38
|
+
vec2f(0.00019841270113829523, -2.725596874933456e-12),
|
|
39
|
+
vec2f(2.7557318844628753e-06, 3.793571224297229e-14),
|
|
40
|
+
vec2f(2.5052107943679403e-08, 4.4176230446483665e-16),
|
|
41
|
+
vec2f(1.6059044372074283e-10, -5.352526511562726e-18),
|
|
42
|
+
vec2f(7.647163609812713e-13, 1.2200710471178288e-20),
|
|
43
|
+
vec2f(2.8114573589663704e-15, -1.0462084739763658e-22)
|
|
44
|
+
);
|
|
45
|
+
const FP64_COS_COEFFICIENTS = array<vec2f, 9>(
|
|
46
|
+
vec2f(1.0, 0.0),
|
|
47
|
+
vec2f(0.5, 0.0),
|
|
48
|
+
vec2f(0.0416666679084301, -1.2417634698280722e-09),
|
|
49
|
+
vec2f(0.0013888889225199819, -3.3631094437103215e-11),
|
|
50
|
+
vec2f(2.4801587642286904e-05, -3.40699609366682e-13),
|
|
51
|
+
vec2f(2.755731998149713e-07, -7.575112209051195e-15),
|
|
52
|
+
vec2f(2.0876755879584152e-09, 1.1082839809204342e-16),
|
|
53
|
+
vec2f(1.147074536050896e-11, 2.372207689231238e-19),
|
|
54
|
+
vec2f(4.7794772561329454e-14, 7.62544404448643e-22)
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
// Reduce by log(2) before evaluating the exponential. Horner evaluation uses split
|
|
58
|
+
// coefficients to retain low terms without repeatedly expanding double-single division.
|
|
59
|
+
fn exp_fp64(value: vec2f) -> vec2f {
|
|
60
|
+
let a = normalize_fp64(value);
|
|
61
|
+
if (is_nan_fp64(a)) { return a; }
|
|
62
|
+
// WGSL rejects non-finite constant expressions; construct infinity from runtime bits.
|
|
63
|
+
if (a.x > 88.72283905206835) { return vec2f(bitcast<f32>(0x7f800000u | (bitcast<u32>(a.x) & 0x80000000u)), 0.0); }
|
|
64
|
+
if (a.x < -103.9720770839918) { return vec2f(0.0); }
|
|
65
|
+
let exponent = min(127.0, floor(a.x / LOG2_FP64.x + 0.5));
|
|
66
|
+
let remainder = sub_fp64(a, mul_fp64(LOG2_FP64, vec2f(exponent, 0.0)));
|
|
67
|
+
var result = FP64_EXP_COEFFICIENTS[16];
|
|
68
|
+
for (var i = 15; i >= 0; i--) {
|
|
69
|
+
result = sum_fp64(FP64_EXP_COEFFICIENTS[i], mul_fp64(remainder, result));
|
|
70
|
+
}
|
|
71
|
+
return fp64_scale_fp64(result, i32(exponent));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
fn log_fp64(value: vec2f) -> vec2f {
|
|
75
|
+
let a = normalize_fp64(value);
|
|
76
|
+
if (is_nan_fp64(a)) { return a; }
|
|
77
|
+
// Match the GLSL helper's domain: zero and negative inputs return NaN.
|
|
78
|
+
if (sign_fp64(a) <= 0) { return vec2f(fp64_nan(a.x), 0.0); }
|
|
79
|
+
if (!is_finite_fp64(a)) { return a; }
|
|
80
|
+
// Normalize the magnitude before Newton refinement so exp(estimate) cannot overflow
|
|
81
|
+
// for large inputs or underflow for tiny inputs. Bit extraction also handles subnormals.
|
|
82
|
+
let exponent = max(-126, i32((bitcast<u32>(a.x) >> 23u) & 255u) - 127);
|
|
83
|
+
let mantissa = fp64_scale_fp64(a, -exponent);
|
|
84
|
+
var result = vec2f(log(mantissa.x), 0.0);
|
|
85
|
+
// Newton correction, written as (a - exp(x)) / exp(x), preserves tiny log(1 + low).
|
|
86
|
+
// Two iterations remove the error in the native f32 starting estimate.
|
|
87
|
+
for (var i = 0; i < 2; i++) {
|
|
88
|
+
let estimate = exp_fp64(result);
|
|
89
|
+
result = sum_fp64(result, div_fp64(sub_fp64(mantissa, estimate), estimate));
|
|
90
|
+
}
|
|
91
|
+
return sum_fp64(result, mul_fp64(LOG2_FP64, vec2f(f32(exponent), 0.0)));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
struct Fp64SinCos {
|
|
95
|
+
sine: vec2f,
|
|
96
|
+
cosine: vec2f,
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
fn fp64_sincos(value: vec2f) -> Fp64SinCos {
|
|
100
|
+
let a = normalize_fp64(value);
|
|
101
|
+
// The projection use case stays within one turn. Bound conversion to an integer quadrant;
|
|
102
|
+
// this is not a large-argument Payne-Hanek trigonometric range reducer.
|
|
103
|
+
if (!is_finite_fp64(a) || abs(a.x) > 1000000.0) {
|
|
104
|
+
return Fp64SinCos(vec2f(fp64_nan(a.x), 0.0), vec2f(fp64_nan(a.x), 0.0));
|
|
105
|
+
}
|
|
106
|
+
let quadrant = i32(floor(a.x / PI_2_FP64.x + 0.5));
|
|
107
|
+
let remainder = sub_fp64(a, mul_fp64(PI_2_FP64, vec2f(f32(quadrant), 0.0)));
|
|
108
|
+
let negativeSquare = -mul_fp64(remainder, remainder);
|
|
109
|
+
var sinePolynomial = FP64_SIN_COEFFICIENTS[8];
|
|
110
|
+
var cosine = FP64_COS_COEFFICIENTS[8];
|
|
111
|
+
for (var i = 7; i >= 0; i--) {
|
|
112
|
+
sinePolynomial = sum_fp64(FP64_SIN_COEFFICIENTS[i], mul_fp64(negativeSquare, sinePolynomial));
|
|
113
|
+
cosine = sum_fp64(FP64_COS_COEFFICIENTS[i], mul_fp64(negativeSquare, cosine));
|
|
114
|
+
}
|
|
115
|
+
let sine = mul_fp64(remainder, sinePolynomial);
|
|
116
|
+
switch ((quadrant % 4 + 4) % 4) {
|
|
117
|
+
case 0: { return Fp64SinCos(sine, cosine); }
|
|
118
|
+
case 1: { return Fp64SinCos(cosine, -sine); }
|
|
119
|
+
case 2: { return Fp64SinCos(-sine, -cosine); }
|
|
120
|
+
default: { return Fp64SinCos(-cosine, sine); }
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
fn sin_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).sine; }
|
|
125
|
+
fn cos_fp64(a: vec2f) -> vec2f { return fp64_sincos(a).cosine; }
|
|
126
|
+
fn tan_fp64(a: vec2f) -> vec2f {
|
|
127
|
+
let result = fp64_sincos(a);
|
|
128
|
+
return div_fp64(result.sine, result.cosine);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
fn radians_fp64(degree: vec2f) -> vec2f { return mul_fp64(degree, PI_180_FP64); }
|
|
132
|
+
fn mix_fp64(a: vec2f, b: vec2f, x: f32) -> vec2f {
|
|
133
|
+
return sum_fp64(a, mul_fp64(sub_fp64(b, a), vec2f(x, 0.0)));
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// WGSL returns arrays in place of GLSL out parameters. Each vec2f stores [high, low].
|
|
137
|
+
fn vec4_fp64(a: vec4f) -> array<vec2f, 4> {
|
|
138
|
+
return array<vec2f, 4>(vec2f(a.x, 0.0), vec2f(a.y, 0.0), vec2f(a.z, 0.0), vec2f(a.w, 0.0));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
fn vec4_dot_fp64(a: array<vec2f, 4>, b: array<vec2f, 4>) -> vec2f {
|
|
142
|
+
return sum_fp64(
|
|
143
|
+
sum_fp64(mul_fp64(a[0], b[0]), mul_fp64(a[1], b[1])),
|
|
144
|
+
sum_fp64(mul_fp64(a[2], b[2]), mul_fp64(a[3], b[3])));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Same row-major pair ordering as the GLSL helper: result[i] = dot(matrix[i * 4..], a).
|
|
148
|
+
fn mat4_vec4_mul_fp64(matrix: array<vec2f, 16>, a: array<vec2f, 4>) -> array<vec2f, 4> {
|
|
149
|
+
var result: array<vec2f, 4>;
|
|
150
|
+
for (var i = 0; i < 4; i++) {
|
|
151
|
+
let row = array<vec2f, 4>(matrix[i * 4], matrix[i * 4 + 1], matrix[i * 4 + 2], matrix[i * 4 + 3]);
|
|
152
|
+
result[i] = vec4_dot_fp64(a, row);
|
|
153
|
+
}
|
|
154
|
+
return result;
|
|
155
|
+
}
|
|
156
|
+
`;
|
|
157
|
+
//# sourceMappingURL=fp64-functions-wgsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp64-functions-wgsl.js","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64-functions-wgsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAE5D,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJ3C,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
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 fp64_utils_exports = {};
|
|
19
|
+
__export(fp64_utils_exports, {
|
|
20
|
+
fp64LowPart: () => fp64LowPart,
|
|
21
|
+
fp64ify: () => fp64ify,
|
|
22
|
+
fp64ifyMatrix4: () => fp64ifyMatrix4
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(fp64_utils_exports);
|
|
25
|
+
function fp64ify(a, out = [], startIndex = 0) {
|
|
26
|
+
const hiPart = Math.fround(a);
|
|
27
|
+
const loPart = a - hiPart;
|
|
28
|
+
out[startIndex] = hiPart;
|
|
29
|
+
out[startIndex + 1] = loPart;
|
|
30
|
+
return out;
|
|
31
|
+
}
|
|
32
|
+
function fp64LowPart(a) {
|
|
33
|
+
return a - Math.fround(a);
|
|
34
|
+
}
|
|
35
|
+
function fp64ifyMatrix4(matrix) {
|
|
36
|
+
const matrixFP64 = new Float32Array(32);
|
|
37
|
+
for (let i = 0; i < 4; ++i) {
|
|
38
|
+
for (let j = 0; j < 4; ++j) {
|
|
39
|
+
const index = i * 4 + j;
|
|
40
|
+
fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return matrixFP64;
|
|
44
|
+
}
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
fp64LowPart,
|
|
48
|
+
fp64ify,
|
|
49
|
+
fp64ifyMatrix4
|
|
50
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { NumericArray } from '@math.gl/core';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate WebGL 64 bit float
|
|
4
|
+
* @param a - the input float number
|
|
5
|
+
* @param out - the output array. If not supplied, a new array is created.
|
|
6
|
+
* @param startIndex - the index in the output array to fill from. Default 0.
|
|
7
|
+
* @returns - the fp64 representation of the input number
|
|
8
|
+
*/
|
|
9
|
+
export declare function fp64ify(a: number, out?: NumericArray, startIndex?: number): NumericArray;
|
|
10
|
+
/**
|
|
11
|
+
* Calculate the low part of a WebGL 64 bit float
|
|
12
|
+
* @param a the input float number
|
|
13
|
+
* @returns the lower 32 bit of the number
|
|
14
|
+
*/
|
|
15
|
+
export declare function fp64LowPart(a: number): number;
|
|
16
|
+
/**
|
|
17
|
+
* Calculate WebGL 64 bit matrix (transposed "Float64Array")
|
|
18
|
+
* @param matrix the input matrix
|
|
19
|
+
* @returns the fp64 representation of the input matrix
|
|
20
|
+
*/
|
|
21
|
+
export declare function fp64ifyMatrix4(matrix: NumericArray): Float32Array;
|
|
22
|
+
//# sourceMappingURL=fp64-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp64-utils.d.ts","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAEhD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,YAAiB,EAAE,UAAU,GAAE,MAAU,GAAG,YAAY,CAM/F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAUjE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
/**
|
|
5
|
+
* Calculate WebGL 64 bit float
|
|
6
|
+
* @param a - the input float number
|
|
7
|
+
* @param out - the output array. If not supplied, a new array is created.
|
|
8
|
+
* @param startIndex - the index in the output array to fill from. Default 0.
|
|
9
|
+
* @returns - the fp64 representation of the input number
|
|
10
|
+
*/
|
|
11
|
+
export function fp64ify(a, out = [], startIndex = 0) {
|
|
12
|
+
const hiPart = Math.fround(a);
|
|
13
|
+
const loPart = a - hiPart;
|
|
14
|
+
out[startIndex] = hiPart;
|
|
15
|
+
out[startIndex + 1] = loPart;
|
|
16
|
+
return out;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Calculate the low part of a WebGL 64 bit float
|
|
20
|
+
* @param a the input float number
|
|
21
|
+
* @returns the lower 32 bit of the number
|
|
22
|
+
*/
|
|
23
|
+
export function fp64LowPart(a) {
|
|
24
|
+
return a - Math.fround(a);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Calculate WebGL 64 bit matrix (transposed "Float64Array")
|
|
28
|
+
* @param matrix the input matrix
|
|
29
|
+
* @returns the fp64 representation of the input matrix
|
|
30
|
+
*/
|
|
31
|
+
export function fp64ifyMatrix4(matrix) {
|
|
32
|
+
// Transpose the projection matrix to column major for GLSL.
|
|
33
|
+
const matrixFP64 = new Float32Array(32);
|
|
34
|
+
for (let i = 0; i < 4; ++i) {
|
|
35
|
+
for (let j = 0; j < 4; ++j) {
|
|
36
|
+
const index = i * 4 + j;
|
|
37
|
+
fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return matrixFP64;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=fp64-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp64-utils.js","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAI5D;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,MAAoB,EAAE,EAAE,aAAqB,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAC1B,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;IACzB,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,CAAS;IACnC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,4DAA4D;IAC5D,MAAM,UAAU,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
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 fp64_exports = {};
|
|
19
|
+
__export(fp64_exports, {
|
|
20
|
+
fp64: () => fp64,
|
|
21
|
+
fp64LowPart: () => import_fp64_utils.fp64LowPart,
|
|
22
|
+
fp64arithmetic: () => fp64arithmetic,
|
|
23
|
+
fp64ify: () => import_fp64_utils.fp64ify,
|
|
24
|
+
fp64ifyMatrix4: () => import_fp64_utils.fp64ifyMatrix4
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(fp64_exports);
|
|
27
|
+
var import_fp64_utils = require("../../../modules/math/fp64/fp64-utils.cjs");
|
|
28
|
+
var import_fp64_arithmetic_glsl = require("./fp64-arithmetic-glsl.cjs");
|
|
29
|
+
var import_fp64_arithmetic_wgsl = require("./fp64-arithmetic-wgsl.cjs");
|
|
30
|
+
var import_fp64_functions_glsl = require("./fp64-functions-glsl.cjs");
|
|
31
|
+
var import_fp64_functions_wgsl = require("./fp64-functions-wgsl.cjs");
|
|
32
|
+
const defaultUniforms = {
|
|
33
|
+
// Used in LUMA_FP64_CODE_ELIMINATION_WORKAROUND
|
|
34
|
+
ONE: 1,
|
|
35
|
+
// Runtime split factor for Dekker splitting. Keeping this as a uniform helps
|
|
36
|
+
// prevent aggressive constant folding in shader compilers.
|
|
37
|
+
SPLIT: 4097
|
|
38
|
+
};
|
|
39
|
+
const fp64arithmetic = {
|
|
40
|
+
name: "fp64arithmetic",
|
|
41
|
+
source: import_fp64_arithmetic_wgsl.fp64arithmeticWGSL,
|
|
42
|
+
fs: import_fp64_arithmetic_glsl.fp64arithmeticShader,
|
|
43
|
+
vs: import_fp64_arithmetic_glsl.fp64arithmeticShader,
|
|
44
|
+
defaultUniforms,
|
|
45
|
+
uniformTypes: { ONE: "f32", SPLIT: "f32" },
|
|
46
|
+
// Additional Functions
|
|
47
|
+
fp64ify: import_fp64_utils.fp64ify,
|
|
48
|
+
fp64LowPart: import_fp64_utils.fp64LowPart,
|
|
49
|
+
fp64ifyMatrix4: import_fp64_utils.fp64ifyMatrix4
|
|
50
|
+
};
|
|
51
|
+
const fp64 = {
|
|
52
|
+
name: "fp64",
|
|
53
|
+
source: import_fp64_functions_wgsl.fp64functionsWGSL,
|
|
54
|
+
vs: import_fp64_functions_glsl.fp64functionShader,
|
|
55
|
+
dependencies: [fp64arithmetic],
|
|
56
|
+
// Additional Functions
|
|
57
|
+
fp64ify: import_fp64_utils.fp64ify,
|
|
58
|
+
fp64LowPart: import_fp64_utils.fp64LowPart,
|
|
59
|
+
fp64ifyMatrix4: import_fp64_utils.fp64ifyMatrix4
|
|
60
|
+
};
|
|
61
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
62
|
+
0 && (module.exports = {
|
|
63
|
+
fp64,
|
|
64
|
+
fp64LowPart,
|
|
65
|
+
fp64arithmetic,
|
|
66
|
+
fp64ify,
|
|
67
|
+
fp64ifyMatrix4
|
|
68
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ShaderModule } from "../../../lib/shader-module/shader-module.js";
|
|
2
|
+
import { fp64ify, fp64LowPart, fp64ifyMatrix4 } from "../../../modules/math/fp64/fp64-utils.js";
|
|
3
|
+
type FP64Props = {};
|
|
4
|
+
type FP64Uniforms = {
|
|
5
|
+
ONE: number;
|
|
6
|
+
SPLIT: number;
|
|
7
|
+
};
|
|
8
|
+
type FP64Bindings = {};
|
|
9
|
+
type FP64Utilities = {
|
|
10
|
+
fp64ify: typeof fp64ify;
|
|
11
|
+
fp64LowPart: typeof fp64LowPart;
|
|
12
|
+
fp64ifyMatrix4: typeof fp64ifyMatrix4;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* 64bit arithmetic: add, sub, mul, div (small subset of fp64 module)
|
|
16
|
+
*/
|
|
17
|
+
export declare const fp64arithmetic: ShaderModule<FP64Props, FP64Uniforms, FP64Bindings> & FP64Utilities;
|
|
18
|
+
/**
|
|
19
|
+
* Double-single math: full GLSL library and WGSL projection functions.
|
|
20
|
+
* WGSL vector/matrix helpers return arrays instead of using GLSL out parameters.
|
|
21
|
+
*/
|
|
22
|
+
export declare const fp64: ShaderModule<{}> & FP64Utilities;
|
|
23
|
+
export { fp64ify, fp64LowPart, fp64ifyMatrix4 };
|
|
24
|
+
//# sourceMappingURL=fp64.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp64.d.ts","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAC,oDAAiD;AAEtE,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAC,iDAA8C;AAM3F,KAAK,SAAS,GAAG,EAAE,CAAC;AACpB,KAAK,YAAY,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC;AACjD,KAAK,YAAY,GAAG,EAAE,CAAC;AAEvB,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,cAAc,EAAE,OAAO,cAAc,CAAC;CACvC,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAAY,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,GAAG,aAYlF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,aAUrC,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// SPDX-FileCopyrightText: Copyright (c) vis.gl contributors
|
|
4
|
+
import { fp64ify, fp64LowPart, fp64ifyMatrix4 } from "../../../modules/math/fp64/fp64-utils.js";
|
|
5
|
+
import { fp64arithmeticShader } from "./fp64-arithmetic-glsl.js";
|
|
6
|
+
import { fp64arithmeticWGSL } from "./fp64-arithmetic-wgsl.js";
|
|
7
|
+
import { fp64functionShader } from "./fp64-functions-glsl.js";
|
|
8
|
+
import { fp64functionsWGSL } from "./fp64-functions-wgsl.js";
|
|
9
|
+
const defaultUniforms = {
|
|
10
|
+
// Used in LUMA_FP64_CODE_ELIMINATION_WORKAROUND
|
|
11
|
+
ONE: 1.0,
|
|
12
|
+
// Runtime split factor for Dekker splitting. Keeping this as a uniform helps
|
|
13
|
+
// prevent aggressive constant folding in shader compilers.
|
|
14
|
+
SPLIT: 4097.0
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* 64bit arithmetic: add, sub, mul, div (small subset of fp64 module)
|
|
18
|
+
*/
|
|
19
|
+
export const fp64arithmetic = {
|
|
20
|
+
name: 'fp64arithmetic',
|
|
21
|
+
source: fp64arithmeticWGSL,
|
|
22
|
+
fs: fp64arithmeticShader,
|
|
23
|
+
vs: fp64arithmeticShader,
|
|
24
|
+
defaultUniforms,
|
|
25
|
+
uniformTypes: { ONE: 'f32', SPLIT: 'f32' },
|
|
26
|
+
// Additional Functions
|
|
27
|
+
fp64ify,
|
|
28
|
+
fp64LowPart,
|
|
29
|
+
fp64ifyMatrix4
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Double-single math: full GLSL library and WGSL projection functions.
|
|
33
|
+
* WGSL vector/matrix helpers return arrays instead of using GLSL out parameters.
|
|
34
|
+
*/
|
|
35
|
+
export const fp64 = {
|
|
36
|
+
name: 'fp64',
|
|
37
|
+
source: fp64functionsWGSL,
|
|
38
|
+
vs: fp64functionShader,
|
|
39
|
+
dependencies: [fp64arithmetic],
|
|
40
|
+
// Additional Functions
|
|
41
|
+
fp64ify,
|
|
42
|
+
fp64LowPart,
|
|
43
|
+
fp64ifyMatrix4
|
|
44
|
+
};
|
|
45
|
+
export { fp64ify, fp64LowPart, fp64ifyMatrix4 };
|
|
46
|
+
//# sourceMappingURL=fp64.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp64.js","sourceRoot":"","sources":["../../../../src/modules/math/fp64/fp64.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,4DAA4D;AAI5D,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAC,iDAA8C;AAC3F,OAAO,EAAC,oBAAoB,EAAC,kCAA+B;AAC5D,OAAO,EAAC,kBAAkB,EAAC,kCAA+B;AAC1D,OAAO,EAAC,kBAAkB,EAAC,iCAA8B;AACzD,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAYxD,MAAM,eAAe,GAAiB;IACpC,gDAAgD;IAChD,GAAG,EAAE,GAAG;IACR,6EAA6E;IAC7E,2DAA2D;IAC3D,KAAK,EAAE,MAAM;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAwE;IACjG,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE,kBAAkB;IAC1B,EAAE,EAAE,oBAAoB;IACxB,EAAE,EAAE,oBAAoB;IACxB,eAAe;IACf,YAAY,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAC;IAExC,uBAAuB;IACvB,OAAO;IACP,WAAW;IACX,cAAc;CACf,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAqC;IACpD,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,iBAAiB;IACzB,EAAE,EAAE,kBAAkB;IACtB,YAAY,EAAE,CAAC,cAAc,CAAC;IAE9B,uBAAuB;IACvB,OAAO;IACP,WAAW;IACX,cAAc;CACf,CAAC;AAEF,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAC,CAAC"}
|