@fps-games/engine 0.0.1-beta.1 → 0.0.1-beta.11
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/dist/asset-resource.d.ts +39 -0
- package/dist/asset-resource.d.ts.map +1 -0
- package/dist/asset-resource.js +121 -0
- package/dist/asset-resource.js.map +1 -0
- package/dist/babylon/camera.d.ts +25 -0
- package/dist/babylon/camera.d.ts.map +1 -0
- package/dist/babylon/camera.js +149 -0
- package/dist/babylon/camera.js.map +1 -0
- package/dist/babylon/frame-pump.d.ts +27 -0
- package/dist/babylon/frame-pump.d.ts.map +1 -0
- package/dist/babylon/frame-pump.js +90 -0
- package/dist/babylon/frame-pump.js.map +1 -0
- package/dist/babylon/game-world-plugin-lifecycle.d.ts +26 -0
- package/dist/babylon/game-world-plugin-lifecycle.d.ts.map +1 -0
- package/dist/babylon/game-world-plugin-lifecycle.js +257 -0
- package/dist/babylon/game-world-plugin-lifecycle.js.map +1 -0
- package/dist/babylon/lighting-controller.d.ts +27 -0
- package/dist/babylon/lighting-controller.d.ts.map +1 -0
- package/dist/babylon/lighting-controller.js +272 -0
- package/dist/babylon/lighting-controller.js.map +1 -0
- package/dist/babylon/plugin-contract.d.ts +15 -0
- package/dist/babylon/plugin-contract.d.ts.map +1 -0
- package/dist/babylon/plugin-contract.js +9 -0
- package/dist/babylon/plugin-contract.js.map +1 -0
- package/dist/babylon/renderer/brdf-texture-settlement.d.ts +7 -0
- package/dist/babylon/renderer/brdf-texture-settlement.d.ts.map +1 -0
- package/dist/babylon/renderer/brdf-texture-settlement.js +29 -0
- package/dist/babylon/renderer/brdf-texture-settlement.js.map +1 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.d.ts +7 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.js +357 -0
- package/dist/babylon/renderer/environment/environment-texture-controller.js.map +1 -0
- package/dist/babylon/renderer/environment/index.d.ts +4 -0
- package/dist/babylon/renderer/environment/index.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/index.js +4 -0
- package/dist/babylon/renderer/environment/index.js.map +1 -0
- package/dist/babylon/renderer/environment/profile.d.ts +3 -0
- package/dist/babylon/renderer/environment/profile.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/profile.js +27 -0
- package/dist/babylon/renderer/environment/profile.js.map +1 -0
- package/dist/babylon/renderer/environment/types.d.ts +24 -0
- package/dist/babylon/renderer/environment/types.d.ts.map +1 -0
- package/dist/babylon/renderer/environment/types.js +6 -0
- package/dist/babylon/renderer/environment/types.js.map +1 -0
- package/dist/babylon/renderer/index.d.ts +25 -0
- package/dist/babylon/renderer/index.d.ts.map +1 -0
- package/dist/babylon/renderer/index.js +25 -0
- package/dist/babylon/renderer/index.js.map +1 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.d.ts +17 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.d.ts.map +1 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.js +67 -0
- package/dist/babylon/renderer/lighting/directional-light-angles.js.map +1 -0
- package/dist/babylon/renderer/material-owner-candidates.d.ts +19 -0
- package/dist/babylon/renderer/material-owner-candidates.d.ts.map +1 -0
- package/dist/babylon/renderer/material-owner-candidates.js +212 -0
- package/dist/babylon/renderer/material-owner-candidates.js.map +1 -0
- package/dist/babylon/renderer/materials/index.d.ts +3 -0
- package/dist/babylon/renderer/materials/index.d.ts.map +1 -0
- package/dist/babylon/renderer/materials/index.js +3 -0
- package/dist/babylon/renderer/materials/index.js.map +1 -0
- package/dist/babylon/renderer/materials/material-runtime.d.ts +29 -0
- package/dist/babylon/renderer/materials/material-runtime.d.ts.map +1 -0
- package/dist/babylon/renderer/materials/material-runtime.js +660 -0
- package/dist/babylon/renderer/materials/material-runtime.js.map +1 -0
- package/dist/babylon/renderer/materials/material-slot-owner.d.ts +42 -0
- package/dist/babylon/renderer/materials/material-slot-owner.d.ts.map +1 -0
- package/dist/babylon/renderer/materials/material-slot-owner.js +318 -0
- package/dist/babylon/renderer/materials/material-slot-owner.js.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.d.ts +4 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.js +45 -0
- package/dist/babylon/renderer/outlines/babylon-default/apply.js.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.d.ts +3 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.js +2 -0
- package/dist/babylon/renderer/outlines/babylon-default/index.js.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.d.ts +7 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.js +2 -0
- package/dist/babylon/renderer/outlines/babylon-default/types.js.map +1 -0
- package/dist/babylon/renderer/outlines/index.d.ts +4 -0
- package/dist/babylon/renderer/outlines/index.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/index.js +3 -0
- package/dist/babylon/renderer/outlines/index.js.map +1 -0
- package/dist/babylon/renderer/outlines/runtime-override.d.ts +36 -0
- package/dist/babylon/renderer/outlines/runtime-override.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/runtime-override.js +131 -0
- package/dist/babylon/renderer/outlines/runtime-override.js.map +1 -0
- package/dist/babylon/renderer/outlines/types.d.ts +7 -0
- package/dist/babylon/renderer/outlines/types.d.ts.map +1 -0
- package/dist/babylon/renderer/outlines/types.js +2 -0
- package/dist/babylon/renderer/outlines/types.js.map +1 -0
- package/dist/babylon/renderer/placement/index.d.ts +2 -0
- package/dist/babylon/renderer/placement/index.d.ts.map +1 -0
- package/dist/babylon/renderer/placement/index.js +2 -0
- package/dist/babylon/renderer/placement/index.js.map +1 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.d.ts +24 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.d.ts.map +1 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.js +63 -0
- package/dist/babylon/renderer/placement/runtime-drop-position.js.map +1 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.d.ts +7 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.js +301 -0
- package/dist/babylon/renderer/post-process/babylon-default-pipeline.js.map +1 -0
- package/dist/babylon/renderer/post-process/index.d.ts +5 -0
- package/dist/babylon/renderer/post-process/index.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/index.js +5 -0
- package/dist/babylon/renderer/post-process/index.js.map +1 -0
- package/dist/babylon/renderer/post-process/profile.d.ts +5 -0
- package/dist/babylon/renderer/post-process/profile.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/profile.js +155 -0
- package/dist/babylon/renderer/post-process/profile.js.map +1 -0
- package/dist/babylon/renderer/post-process/types.d.ts +81 -0
- package/dist/babylon/renderer/post-process/types.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/types.js +24 -0
- package/dist/babylon/renderer/post-process/types.js.map +1 -0
- package/dist/babylon/renderer/post-process/volume-stack.d.ts +4 -0
- package/dist/babylon/renderer/post-process/volume-stack.d.ts.map +1 -0
- package/dist/babylon/renderer/post-process/volume-stack.js +105 -0
- package/dist/babylon/renderer/post-process/volume-stack.js.map +1 -0
- package/dist/babylon/renderer/rendering/image-node.d.ts +35 -0
- package/dist/babylon/renderer/rendering/image-node.d.ts.map +1 -0
- package/dist/babylon/renderer/rendering/image-node.js +39 -0
- package/dist/babylon/renderer/rendering/image-node.js.map +1 -0
- package/dist/babylon/renderer/rendering/index.d.ts +3 -0
- package/dist/babylon/renderer/rendering/index.d.ts.map +1 -0
- package/dist/babylon/renderer/rendering/index.js +3 -0
- package/dist/babylon/renderer/rendering/index.js.map +1 -0
- package/dist/babylon/renderer/rendering/node-rendering.d.ts +19 -0
- package/dist/babylon/renderer/rendering/node-rendering.d.ts.map +1 -0
- package/dist/babylon/renderer/rendering/node-rendering.js +66 -0
- package/dist/babylon/renderer/rendering/node-rendering.js.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.d.ts +5 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.js +46 -0
- package/dist/babylon/renderer/shadows/blob-shadow-shaders.js.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.d.ts +5 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.js +402 -0
- package/dist/babylon/renderer/shadows/blob-shadow-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.d.ts +84 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.js +566 -0
- package/dist/babylon/renderer/shadows/dynamic-shadow-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.d.ts +7 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.js +316 -0
- package/dist/babylon/renderer/shadows/planar-shadow-shaders.js.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.d.ts +5 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.js +1562 -0
- package/dist/babylon/renderer/shadows/planar-shadow-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.d.ts +14 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.js +14 -0
- package/dist/babylon/renderer/shadows/shadow-generator-shaders.js.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.d.ts +68 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.js +829 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.d.ts +148 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.js +4529 -0
- package/dist/babylon/renderer/shadows/shadow-map-experiment-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.d.ts +4 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.js +645 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.d.ts +61 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.js +382 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.d.ts +47 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.js +285 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-bake.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.d.ts +88 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.js +830 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-baker.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.d.ts +3 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.js +60 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-options.js.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.d.ts +27 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.js +220 -0
- package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.js.map +1 -0
- package/dist/babylon/renderer/shadows/types.d.ts +421 -0
- package/dist/babylon/renderer/shadows/types.d.ts.map +1 -0
- package/dist/babylon/renderer/shadows/types.js +127 -0
- package/dist/babylon/renderer/shadows/types.js.map +1 -0
- package/dist/babylon/renderer/world-rendering-controller.d.ts +29 -0
- package/dist/babylon/renderer/world-rendering-controller.d.ts.map +1 -0
- package/dist/babylon/renderer/world-rendering-controller.js +178 -0
- package/dist/babylon/renderer/world-rendering-controller.js.map +1 -0
- package/dist/babylon/renderer-controller.d.ts +93 -0
- package/dist/babylon/renderer-controller.d.ts.map +1 -0
- package/dist/babylon/renderer-controller.js +706 -0
- package/dist/babylon/renderer-controller.js.map +1 -0
- package/dist/babylon/scene-renderer.d.ts +20 -0
- package/dist/babylon/scene-renderer.d.ts.map +1 -0
- package/dist/babylon/scene-renderer.js +60 -0
- package/dist/babylon/scene-renderer.js.map +1 -0
- package/dist/babylon.d.ts +8 -0
- package/dist/babylon.d.ts.map +1 -1
- package/dist/babylon.js +8 -0
- package/dist/babylon.js.map +1 -1
- package/dist/build-info.json +4 -4
- package/dist/camera.d.ts +25 -0
- package/dist/camera.d.ts.map +1 -0
- package/dist/camera.js +68 -0
- package/dist/camera.js.map +1 -0
- package/dist/compiled-scene-data.d.ts +23 -0
- package/dist/compiled-scene-data.d.ts.map +1 -0
- package/dist/compiled-scene-data.js +100 -0
- package/dist/compiled-scene-data.js.map +1 -0
- package/dist/frame.d.ts +32 -0
- package/dist/frame.d.ts.map +1 -0
- package/dist/frame.js +54 -0
- package/dist/frame.js.map +1 -0
- package/dist/ground-decal.d.ts +22 -0
- package/dist/ground-decal.d.ts.map +1 -0
- package/dist/ground-decal.js +48 -0
- package/dist/ground-decal.js.map +1 -0
- package/dist/index.d.ts +17 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/lighting.d.ts +66 -0
- package/dist/lighting.d.ts.map +1 -0
- package/dist/lighting.js +197 -0
- package/dist/lighting.js.map +1 -0
- package/dist/material-owner.d.ts +128 -0
- package/dist/material-owner.d.ts.map +1 -0
- package/dist/material-owner.js +434 -0
- package/dist/material-owner.js.map +1 -0
- package/dist/material-profile.d.ts +62 -0
- package/dist/material-profile.d.ts.map +1 -0
- package/dist/material-profile.js +132 -0
- package/dist/material-profile.js.map +1 -0
- package/dist/rendering/index.d.ts +14 -0
- package/dist/rendering/index.d.ts.map +1 -0
- package/dist/rendering/index.js +12 -0
- package/dist/rendering/index.js.map +1 -0
- package/dist/rendering/rendering-profile-types.d.ts +322 -0
- package/dist/rendering/rendering-profile-types.d.ts.map +1 -0
- package/dist/rendering/rendering-profile-types.js +2 -0
- package/dist/rendering/rendering-profile-types.js.map +1 -0
- package/dist/rendering/rendering-profile-validation.d.ts +2 -0
- package/dist/rendering/rendering-profile-validation.d.ts.map +1 -0
- package/dist/rendering/rendering-profile-validation.js +364 -0
- package/dist/rendering/rendering-profile-validation.js.map +1 -0
- package/dist/rendering/rendering-profile-values.d.ts +19 -0
- package/dist/rendering/rendering-profile-values.d.ts.map +1 -0
- package/dist/rendering/rendering-profile-values.js +79 -0
- package/dist/rendering/rendering-profile-values.js.map +1 -0
- package/dist/rendering/rendering-profile.d.ts +15 -0
- package/dist/rendering/rendering-profile.d.ts.map +1 -0
- package/dist/rendering/rendering-profile.js +442 -0
- package/dist/rendering/rendering-profile.js.map +1 -0
- package/dist/rendering/shadow-map-experiment-depth.d.ts +63 -0
- package/dist/rendering/shadow-map-experiment-depth.d.ts.map +1 -0
- package/dist/rendering/shadow-map-experiment-depth.js +186 -0
- package/dist/rendering/shadow-map-experiment-depth.js.map +1 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.d.ts +94 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.d.ts.map +1 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.js +407 -0
- package/dist/rendering/shadow-map-experiment-lifecycle.js.map +1 -0
- package/dist/rendering/shadow-map-experiment.d.ts +189 -0
- package/dist/rendering/shadow-map-experiment.d.ts.map +1 -0
- package/dist/rendering/shadow-map-experiment.js +549 -0
- package/dist/rendering/shadow-map-experiment.js.map +1 -0
- package/dist/rendering/shadow-quality.d.ts +5 -0
- package/dist/rendering/shadow-quality.d.ts.map +1 -0
- package/dist/rendering/shadow-quality.js +83 -0
- package/dist/rendering/shadow-quality.js.map +1 -0
- package/dist/rendering/shadow-runtime.d.ts +59 -0
- package/dist/rendering/shadow-runtime.d.ts.map +1 -0
- package/dist/rendering/shadow-runtime.js +378 -0
- package/dist/rendering/shadow-runtime.js.map +1 -0
- package/dist/rendering/shadow-settings.d.ts +15 -0
- package/dist/rendering/shadow-settings.d.ts.map +1 -0
- package/dist/rendering/shadow-settings.js +129 -0
- package/dist/rendering/shadow-settings.js.map +1 -0
- package/dist/rendering/shadow-types.d.ts +99 -0
- package/dist/rendering/shadow-types.d.ts.map +1 -0
- package/dist/rendering/shadow-types.js +5 -0
- package/dist/rendering/shadow-types.js.map +1 -0
- package/dist/rendering/shadow-validation.d.ts +3 -0
- package/dist/rendering/shadow-validation.d.ts.map +1 -0
- package/dist/rendering/shadow-validation.js +166 -0
- package/dist/rendering/shadow-validation.js.map +1 -0
- package/dist/rendering/value.d.ts +2 -0
- package/dist/rendering/value.d.ts.map +1 -0
- package/dist/rendering/value.js +6 -0
- package/dist/rendering/value.js.map +1 -0
- package/dist/runtime-data-token.d.ts +4 -0
- package/dist/runtime-data-token.d.ts.map +1 -0
- package/dist/runtime-data-token.js +4 -0
- package/dist/runtime-data-token.js.map +1 -0
- package/dist/runtime-data-types.d.ts +83 -0
- package/dist/runtime-data-types.d.ts.map +1 -0
- package/dist/runtime-data-types.js +2 -0
- package/dist/runtime-data-types.js.map +1 -0
- package/dist/runtime-data.d.ts +18 -0
- package/dist/runtime-data.d.ts.map +1 -0
- package/dist/runtime-data.js +301 -0
- package/dist/runtime-data.js.map +1 -0
- package/dist/runtime-scene-resolvers.d.ts +37 -0
- package/dist/runtime-scene-resolvers.d.ts.map +1 -0
- package/dist/runtime-scene-resolvers.js +40 -0
- package/dist/runtime-scene-resolvers.js.map +1 -0
- package/dist/scene-artifact-types.d.ts +383 -0
- package/dist/scene-artifact-types.d.ts.map +1 -0
- package/dist/scene-artifact-types.js +2 -0
- package/dist/scene-artifact-types.js.map +1 -0
- package/dist/scene-artifact-validation.d.ts +19 -0
- package/dist/scene-artifact-validation.d.ts.map +1 -0
- package/dist/scene-artifact-validation.js +1352 -0
- package/dist/scene-artifact-validation.js.map +1 -0
- package/dist/static-shadow-artifact.d.ts +131 -0
- package/dist/static-shadow-artifact.d.ts.map +1 -0
- package/dist/static-shadow-artifact.js +327 -0
- package/dist/static-shadow-artifact.js.map +1 -0
- package/package.json +11 -2
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import { Effect } from '@babylonjs/core/Materials/effect.js';
|
|
2
|
+
export const PLANAR_SHADOW_SHADER_NAME = 'fpsPlanarShadow';
|
|
3
|
+
export function registerPlanarShadowShaders() {
|
|
4
|
+
const vertexKey = `${PLANAR_SHADOW_SHADER_NAME}VertexShader`;
|
|
5
|
+
if (Effect.ShadersStore[vertexKey])
|
|
6
|
+
return;
|
|
7
|
+
Effect.ShadersStore[vertexKey] = `
|
|
8
|
+
precision highp float;
|
|
9
|
+
|
|
10
|
+
attribute vec3 position;
|
|
11
|
+
|
|
12
|
+
#ifdef INSTANCES
|
|
13
|
+
attribute vec4 world0;
|
|
14
|
+
attribute vec4 world1;
|
|
15
|
+
attribute vec4 world2;
|
|
16
|
+
attribute vec4 world3;
|
|
17
|
+
attribute float shadowVisibility;
|
|
18
|
+
varying float v_shadowVisibility;
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#ifdef ALPHA_CUTOUT
|
|
22
|
+
attribute vec2 uv;
|
|
23
|
+
attribute vec2 uv2;
|
|
24
|
+
attribute vec2 uv3;
|
|
25
|
+
attribute vec2 uv4;
|
|
26
|
+
attribute vec2 uv5;
|
|
27
|
+
attribute vec2 uv6;
|
|
28
|
+
varying vec2 v_shadowAlphaUv;
|
|
29
|
+
#ifdef ALPHA_CUTOUT_SECONDARY
|
|
30
|
+
varying vec2 v_shadowAlphaUv2;
|
|
31
|
+
#endif
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
#ifdef BONE
|
|
35
|
+
attribute vec4 matricesIndices;
|
|
36
|
+
attribute vec4 matricesWeights;
|
|
37
|
+
#ifdef BONETEXTURE
|
|
38
|
+
uniform sampler2D boneSampler;
|
|
39
|
+
uniform float boneTextureWidth;
|
|
40
|
+
#else
|
|
41
|
+
uniform mat4 mBones[BonesPerMesh];
|
|
42
|
+
#endif
|
|
43
|
+
#ifdef BONES_VELOCITY_ENABLED
|
|
44
|
+
attribute vec4 matricesIndicesExtra;
|
|
45
|
+
attribute vec4 matricesWeightsExtra;
|
|
46
|
+
#endif
|
|
47
|
+
#endif
|
|
48
|
+
|
|
49
|
+
uniform mat4 world;
|
|
50
|
+
uniform mat4 viewProjection;
|
|
51
|
+
uniform vec3 u_lightDir;
|
|
52
|
+
uniform vec3 u_planeNormal;
|
|
53
|
+
uniform vec3 u_shadowCenter;
|
|
54
|
+
uniform float u_planeHeight;
|
|
55
|
+
uniform float u_planeBias;
|
|
56
|
+
uniform float u_footprintScale;
|
|
57
|
+
uniform float u_shadowAlphaUvSet;
|
|
58
|
+
uniform mat4 u_shadowAlphaMatrix;
|
|
59
|
+
#ifdef ALPHA_CUTOUT_SECONDARY
|
|
60
|
+
uniform float u_shadowAlphaUvSet2;
|
|
61
|
+
uniform mat4 u_shadowAlphaMatrix2;
|
|
62
|
+
#endif
|
|
63
|
+
|
|
64
|
+
varying float v_t;
|
|
65
|
+
|
|
66
|
+
mat4 resolvePlanarShadowWorld() {
|
|
67
|
+
#ifdef INSTANCES
|
|
68
|
+
mat4 instanceWorld = mat4(world0, world1, world2, world3);
|
|
69
|
+
#ifdef THIN_INSTANCES
|
|
70
|
+
return world * instanceWorld;
|
|
71
|
+
#else
|
|
72
|
+
return instanceWorld;
|
|
73
|
+
#endif
|
|
74
|
+
#else
|
|
75
|
+
return world;
|
|
76
|
+
#endif
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
#ifdef BONE
|
|
80
|
+
#ifdef BONETEXTURE
|
|
81
|
+
mat4 readMatrixFromRawSampler(sampler2D smp, float index) {
|
|
82
|
+
float offset = index * 4.0;
|
|
83
|
+
float dx = 1.0 / boneTextureWidth;
|
|
84
|
+
vec4 m0 = texture2D(smp, vec2(dx * (offset + 0.5), 0.));
|
|
85
|
+
vec4 m1 = texture2D(smp, vec2(dx * (offset + 1.5), 0.));
|
|
86
|
+
vec4 m2 = texture2D(smp, vec2(dx * (offset + 2.5), 0.));
|
|
87
|
+
vec4 m3 = texture2D(smp, vec2(dx * (offset + 3.5), 0.));
|
|
88
|
+
return mat4(m0, m1, m2, m3);
|
|
89
|
+
}
|
|
90
|
+
#endif
|
|
91
|
+
#endif
|
|
92
|
+
|
|
93
|
+
void main() {
|
|
94
|
+
#ifdef INSTANCES
|
|
95
|
+
v_shadowVisibility = shadowVisibility;
|
|
96
|
+
if (shadowVisibility < 0.5) {
|
|
97
|
+
v_t = -1.0;
|
|
98
|
+
gl_Position = vec4(2.0, 2.0, 2.0, 1.0);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
#endif
|
|
102
|
+
|
|
103
|
+
#ifdef ALPHA_CUTOUT
|
|
104
|
+
vec2 sourceAlphaUv = uv;
|
|
105
|
+
if (u_shadowAlphaUvSet > 4.5) sourceAlphaUv = uv6;
|
|
106
|
+
else if (u_shadowAlphaUvSet > 3.5) sourceAlphaUv = uv5;
|
|
107
|
+
else if (u_shadowAlphaUvSet > 2.5) sourceAlphaUv = uv4;
|
|
108
|
+
else if (u_shadowAlphaUvSet > 1.5) sourceAlphaUv = uv3;
|
|
109
|
+
else if (u_shadowAlphaUvSet > 0.5) sourceAlphaUv = uv2;
|
|
110
|
+
v_shadowAlphaUv = (u_shadowAlphaMatrix * vec4(sourceAlphaUv, 1.0, 0.0)).xy;
|
|
111
|
+
#ifdef ALPHA_CUTOUT_SECONDARY
|
|
112
|
+
vec2 sourceAlphaUv2 = uv;
|
|
113
|
+
if (u_shadowAlphaUvSet2 > 4.5) sourceAlphaUv2 = uv6;
|
|
114
|
+
else if (u_shadowAlphaUvSet2 > 3.5) sourceAlphaUv2 = uv5;
|
|
115
|
+
else if (u_shadowAlphaUvSet2 > 2.5) sourceAlphaUv2 = uv4;
|
|
116
|
+
else if (u_shadowAlphaUvSet2 > 1.5) sourceAlphaUv2 = uv3;
|
|
117
|
+
else if (u_shadowAlphaUvSet2 > 0.5) sourceAlphaUv2 = uv2;
|
|
118
|
+
v_shadowAlphaUv2 = (u_shadowAlphaMatrix2 * vec4(sourceAlphaUv2, 1.0, 0.0)).xy;
|
|
119
|
+
#endif
|
|
120
|
+
#endif
|
|
121
|
+
|
|
122
|
+
#ifdef FLAT_SHADOW
|
|
123
|
+
vec3 projPos = (resolvePlanarShadowWorld() * vec4(position, 1.0)).xyz;
|
|
124
|
+
v_t = 1.0;
|
|
125
|
+
|
|
126
|
+
vec4 clipPos = viewProjection * vec4(projPos, 1.0);
|
|
127
|
+
clipPos.z -= u_planeBias * 2e-4 * clipPos.w;
|
|
128
|
+
|
|
129
|
+
gl_Position = clipPos;
|
|
130
|
+
return;
|
|
131
|
+
#endif
|
|
132
|
+
|
|
133
|
+
#ifdef BONE
|
|
134
|
+
#ifdef BONETEXTURE
|
|
135
|
+
mat4 m0 = readMatrixFromRawSampler(boneSampler, matricesIndices.x);
|
|
136
|
+
mat4 m1 = readMatrixFromRawSampler(boneSampler, matricesIndices.y);
|
|
137
|
+
mat4 m2 = readMatrixFromRawSampler(boneSampler, matricesIndices.z);
|
|
138
|
+
mat4 m3 = readMatrixFromRawSampler(boneSampler, matricesIndices.w);
|
|
139
|
+
#else
|
|
140
|
+
mat4 m0 = mBones[int(matricesIndices.x)];
|
|
141
|
+
mat4 m1 = mBones[int(matricesIndices.y)];
|
|
142
|
+
mat4 m2 = mBones[int(matricesIndices.z)];
|
|
143
|
+
mat4 m3 = mBones[int(matricesIndices.w)];
|
|
144
|
+
#endif
|
|
145
|
+
|
|
146
|
+
mat4 influence = m0 * matricesWeights.x +
|
|
147
|
+
m1 * matricesWeights.y +
|
|
148
|
+
m2 * matricesWeights.z +
|
|
149
|
+
m3 * matricesWeights.w;
|
|
150
|
+
|
|
151
|
+
#ifdef BONES_VELOCITY_ENABLED
|
|
152
|
+
#ifdef BONETEXTURE
|
|
153
|
+
mat4 m4 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.x);
|
|
154
|
+
mat4 m5 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.y);
|
|
155
|
+
mat4 m6 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.z);
|
|
156
|
+
mat4 m7 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.w);
|
|
157
|
+
#else
|
|
158
|
+
mat4 m4 = mBones[int(matricesIndicesExtra.x)];
|
|
159
|
+
mat4 m5 = mBones[int(matricesIndicesExtra.y)];
|
|
160
|
+
mat4 m6 = mBones[int(matricesIndicesExtra.z)];
|
|
161
|
+
mat4 m7 = mBones[int(matricesIndicesExtra.w)];
|
|
162
|
+
#endif
|
|
163
|
+
|
|
164
|
+
influence += m4 * matricesWeightsExtra.x +
|
|
165
|
+
m5 * matricesWeightsExtra.y +
|
|
166
|
+
m6 * matricesWeightsExtra.z +
|
|
167
|
+
m7 * matricesWeightsExtra.w;
|
|
168
|
+
#endif
|
|
169
|
+
|
|
170
|
+
mat4 finalWorld = resolvePlanarShadowWorld() * influence;
|
|
171
|
+
vec3 worldPos = (finalWorld * vec4(position, 1.0)).xyz;
|
|
172
|
+
#else
|
|
173
|
+
vec3 worldPos = (resolvePlanarShadowWorld() * vec4(position, 1.0)).xyz;
|
|
174
|
+
#endif
|
|
175
|
+
|
|
176
|
+
float denom = dot(u_planeNormal, u_lightDir);
|
|
177
|
+
if (abs(denom) < 1e-5) {
|
|
178
|
+
v_t = -1.0;
|
|
179
|
+
gl_Position = vec4(2.0, 2.0, 2.0, 1.0);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
float t = (u_planeHeight - dot(u_planeNormal, worldPos)) / denom;
|
|
184
|
+
v_t = t;
|
|
185
|
+
|
|
186
|
+
vec3 projPos = worldPos + u_lightDir * t;
|
|
187
|
+
projPos = u_shadowCenter + (projPos - u_shadowCenter) * u_footprintScale;
|
|
188
|
+
projPos += u_planeNormal * (u_planeBias * 0.002);
|
|
189
|
+
|
|
190
|
+
vec4 clipPos = viewProjection * vec4(projPos, 1.0);
|
|
191
|
+
clipPos.z -= u_planeBias * 2e-4 * clipPos.w;
|
|
192
|
+
|
|
193
|
+
gl_Position = clipPos;
|
|
194
|
+
}
|
|
195
|
+
`;
|
|
196
|
+
Effect.ShadersStore[`${PLANAR_SHADOW_SHADER_NAME}FragmentShader`] = `
|
|
197
|
+
precision highp float;
|
|
198
|
+
|
|
199
|
+
uniform vec4 u_shadowColor;
|
|
200
|
+
uniform float u_shadowAlphaCutoff;
|
|
201
|
+
uniform float u_shadowAlphaLevel;
|
|
202
|
+
uniform float u_shadowAlphaChannelMode;
|
|
203
|
+
uniform vec3 u_shadowAlphaLuminanceWeights;
|
|
204
|
+
uniform sampler2D shadowAlphaSampler;
|
|
205
|
+
#ifdef INSTANCES
|
|
206
|
+
varying float v_shadowVisibility;
|
|
207
|
+
#endif
|
|
208
|
+
#ifdef ALPHA_CUTOUT_SECONDARY
|
|
209
|
+
uniform float u_shadowAlphaLevel2;
|
|
210
|
+
uniform float u_shadowAlphaChannelMode2;
|
|
211
|
+
uniform vec3 u_shadowAlphaLuminanceWeights2;
|
|
212
|
+
uniform sampler2D shadowAlphaSampler2;
|
|
213
|
+
#endif
|
|
214
|
+
varying float v_t;
|
|
215
|
+
|
|
216
|
+
#ifdef ALPHA_CUTOUT
|
|
217
|
+
varying vec2 v_shadowAlphaUv;
|
|
218
|
+
#ifdef ALPHA_CUTOUT_SECONDARY
|
|
219
|
+
varying vec2 v_shadowAlphaUv2;
|
|
220
|
+
#endif
|
|
221
|
+
#endif
|
|
222
|
+
|
|
223
|
+
#ifdef ALPHA_CUTOUT
|
|
224
|
+
float readShadowAlpha(sampler2D alphaSampler, vec2 alphaUv, float channelMode, vec3 luminanceWeights, float alphaLevel) {
|
|
225
|
+
vec4 alphaSample = texture2D(alphaSampler, alphaUv);
|
|
226
|
+
float sourceAlpha = alphaSample.a;
|
|
227
|
+
if (channelMode > 1.5) sourceAlpha = alphaSample.r;
|
|
228
|
+
else if (channelMode > 0.5) sourceAlpha = dot(alphaSample.rgb, luminanceWeights);
|
|
229
|
+
return sourceAlpha * alphaLevel;
|
|
230
|
+
}
|
|
231
|
+
#endif
|
|
232
|
+
|
|
233
|
+
void main() {
|
|
234
|
+
#ifdef INSTANCES
|
|
235
|
+
if (v_shadowVisibility < 0.5) discard;
|
|
236
|
+
#endif
|
|
237
|
+
if (v_t < 0.0) discard;
|
|
238
|
+
#ifdef ALPHA_CUTOUT
|
|
239
|
+
float sourceAlpha = readShadowAlpha(
|
|
240
|
+
shadowAlphaSampler,
|
|
241
|
+
v_shadowAlphaUv,
|
|
242
|
+
u_shadowAlphaChannelMode,
|
|
243
|
+
u_shadowAlphaLuminanceWeights,
|
|
244
|
+
u_shadowAlphaLevel
|
|
245
|
+
);
|
|
246
|
+
#ifdef ALPHA_CUTOUT_SECONDARY
|
|
247
|
+
sourceAlpha *= readShadowAlpha(
|
|
248
|
+
shadowAlphaSampler2,
|
|
249
|
+
v_shadowAlphaUv2,
|
|
250
|
+
u_shadowAlphaChannelMode2,
|
|
251
|
+
u_shadowAlphaLuminanceWeights2,
|
|
252
|
+
u_shadowAlphaLevel2
|
|
253
|
+
);
|
|
254
|
+
#endif
|
|
255
|
+
if (sourceAlpha < u_shadowAlphaCutoff) discard;
|
|
256
|
+
#endif
|
|
257
|
+
gl_FragColor = u_shadowColor;
|
|
258
|
+
}
|
|
259
|
+
`;
|
|
260
|
+
}
|
|
261
|
+
export function getPlanarShadowShaderAttributes() {
|
|
262
|
+
return [
|
|
263
|
+
'position',
|
|
264
|
+
'uv',
|
|
265
|
+
'uv2',
|
|
266
|
+
'uv3',
|
|
267
|
+
'uv4',
|
|
268
|
+
'uv5',
|
|
269
|
+
'uv6',
|
|
270
|
+
'matricesIndices',
|
|
271
|
+
'matricesWeights',
|
|
272
|
+
'matricesIndicesExtra',
|
|
273
|
+
'matricesWeightsExtra',
|
|
274
|
+
'shadowVisibility',
|
|
275
|
+
];
|
|
276
|
+
}
|
|
277
|
+
export function getPlanarShadowShaderUniforms() {
|
|
278
|
+
return [
|
|
279
|
+
'world',
|
|
280
|
+
'viewProjection',
|
|
281
|
+
'u_lightDir',
|
|
282
|
+
'u_planeNormal',
|
|
283
|
+
'u_shadowCenter',
|
|
284
|
+
'u_planeHeight',
|
|
285
|
+
'u_planeBias',
|
|
286
|
+
'u_footprintScale',
|
|
287
|
+
'u_shadowColor',
|
|
288
|
+
'u_shadowAlphaCutoff',
|
|
289
|
+
'u_shadowAlphaLevel',
|
|
290
|
+
'u_shadowAlphaChannelMode',
|
|
291
|
+
'u_shadowAlphaLuminanceWeights',
|
|
292
|
+
'u_shadowAlphaUvSet',
|
|
293
|
+
'u_shadowAlphaMatrix',
|
|
294
|
+
'u_shadowAlphaLevel2',
|
|
295
|
+
'u_shadowAlphaChannelMode2',
|
|
296
|
+
'u_shadowAlphaLuminanceWeights2',
|
|
297
|
+
'u_shadowAlphaUvSet2',
|
|
298
|
+
'u_shadowAlphaMatrix2',
|
|
299
|
+
'mBones',
|
|
300
|
+
'boneTextureWidth',
|
|
301
|
+
];
|
|
302
|
+
}
|
|
303
|
+
export function getPlanarShadowShaderSamplers() {
|
|
304
|
+
return ['boneSampler', 'shadowAlphaSampler', 'shadowAlphaSampler2'];
|
|
305
|
+
}
|
|
306
|
+
export function getPlanarShadowSkeletonDefines(numBones, useTexture, hasExtraInfluence) {
|
|
307
|
+
const defines = ['BONE'];
|
|
308
|
+
if (useTexture)
|
|
309
|
+
defines.push('BONETEXTURE');
|
|
310
|
+
else
|
|
311
|
+
defines.push(`BonesPerMesh ${numBones}`);
|
|
312
|
+
if (hasExtraInfluence)
|
|
313
|
+
defines.push('BONES_VELOCITY_ENABLED');
|
|
314
|
+
return defines;
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=planar-shadow-shaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planar-shadow-shaders.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/shadows/planar-shadow-shaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAE3D,MAAM,UAAU,2BAA2B;IACzC,MAAM,SAAS,GAAG,GAAG,yBAAyB,cAAc,CAAC;IAC7D,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;QAAE,OAAO;IAE3C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LlC,CAAC;IAEA,MAAM,CAAC,YAAY,CAAC,GAAG,yBAAyB,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DrE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,UAAU;QACV,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,iBAAiB;QACjB,iBAAiB;QACjB,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,OAAO;QACP,gBAAgB;QAChB,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,qBAAqB;QACrB,oBAAoB;QACpB,0BAA0B;QAC1B,+BAA+B;QAC/B,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,2BAA2B;QAC3B,gCAAgC;QAChC,qBAAqB;QACrB,sBAAsB;QACtB,QAAQ;QACR,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CAAC,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAAgB,EAChB,UAAmB,EACnB,iBAA0B;IAE1B,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;QACvC,OAAO,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;IAC9C,IAAI,iBAAiB;QAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DirectionalLight } from '@babylonjs/core/Lights/directionalLight.js';
|
|
2
|
+
import type { Scene } from '@babylonjs/core/scene.js';
|
|
3
|
+
import { type PlanarShadowOptions, type PlanarShadowSystem } from './types.js';
|
|
4
|
+
export declare function createPlanarShadowSystem(scene: Scene, directionalLight: DirectionalLight, options?: Partial<PlanarShadowOptions>): PlanarShadowSystem;
|
|
5
|
+
//# sourceMappingURL=planar-shadow-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planar-shadow-system.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/shadows/planar-shadow-system.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAa9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAUtD,OAAO,EAIL,KAAK,mBAAmB,EAGxB,KAAK,kBAAkB,EAExB,MAAM,YAAY,CAAC;AAuGpB,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACzC,kBAAkB,CAEpB"}
|