babylon.quarks 0.26.0 → 0.28.0

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.
Files changed (83) hide show
  1. package/CHANGELOG.md +1194 -8
  2. package/README.md +13 -9
  3. package/dist/babylon.quarks.cjs +1 -1
  4. package/dist/babylon.quarks.cjs.map +1 -1
  5. package/dist/babylon.quarks.esm.js +1 -1
  6. package/dist/babylon.quarks.esm.js.map +1 -1
  7. package/dist/babylon.quarks.umd.min.js +1 -1
  8. package/dist/babylon.quarks.umd.min.js.map +1 -1
  9. package/dist/types/index.d.cts +10108 -0
  10. package/dist/types/index.d.ts +5794 -998
  11. package/package.json +18 -7
  12. package/src/BatchedRenderer.ts +274 -156
  13. package/src/EffectPool.ts +94 -12
  14. package/src/MeshSurfaceEmitter.ts +50 -14
  15. package/src/ParticleEmitter.ts +75 -17
  16. package/src/ParticleSystem.ts +981 -2066
  17. package/src/QuarksLoader.ts +666 -194
  18. package/src/QuarksPrefab.ts +367 -73
  19. package/src/QuarksSerializer.ts +512 -0
  20. package/src/QuarksUtil.ts +77 -7
  21. package/src/SpriteBatch.ts +127 -252
  22. package/src/TrailBatch.ts +545 -348
  23. package/src/VFXBatch.ts +238 -596
  24. package/src/batchKey.ts +239 -0
  25. package/src/batchSettings.ts +546 -0
  26. package/src/effectDocumentJSON.ts +261 -0
  27. package/src/effectResources.ts +76 -0
  28. package/src/envAtlas.ts +126 -18
  29. package/src/geometryUtil.ts +1 -1
  30. package/src/index.ts +69 -35
  31. package/src/nodeId.ts +36 -0
  32. package/src/shaderProgram.ts +419 -0
  33. package/src/shaderVariants.ts +245 -0
  34. package/src/shaders/chunks/blend.ts +31 -0
  35. package/src/shaders/chunks/fog.ts +12 -5
  36. package/src/shaders/chunks/sheet.ts +111 -0
  37. package/src/shaders/chunks/soft.ts +85 -0
  38. package/src/shaders/chunks/surface.ts +12 -2
  39. package/src/shaders/local_particle_physics_vert.glsl.ts +14 -28
  40. package/src/shaders/local_particle_physics_vert.wgsl.ts +16 -29
  41. package/src/shaders/particle_frag.glsl.ts +5 -22
  42. package/src/shaders/particle_frag.wgsl.ts +5 -23
  43. package/src/shaders/particle_physics_frag.glsl.ts +16 -26
  44. package/src/shaders/particle_physics_frag.wgsl.ts +14 -26
  45. package/src/shaders/particle_vert.glsl.ts +5 -27
  46. package/src/shaders/particle_vert.wgsl.ts +5 -26
  47. package/src/shaders/stretched_bb_particle_vert.glsl.ts +7 -33
  48. package/src/shaders/stretched_bb_particle_vert.wgsl.ts +7 -33
  49. package/src/shaders/trail_frag.glsl.ts +13 -0
  50. package/src/shaders/trail_frag.wgsl.ts +13 -0
  51. package/src/shaders/trail_vert.glsl.ts +45 -36
  52. package/src/shaders/trail_vert.wgsl.ts +46 -40
  53. package/src/softDepth.ts +136 -0
  54. package/src/system/BehaviorPlan.ts +85 -0
  55. package/src/system/BoundsTracker.ts +181 -0
  56. package/src/system/EmissionController.ts +358 -0
  57. package/src/system/EventDispatcher.ts +60 -0
  58. package/src/system/ParticleSpawner.ts +274 -0
  59. package/src/system/SimulationClock.ts +130 -0
  60. package/src/system/geometry.ts +104 -0
  61. package/src/system/integrate.ts +428 -0
  62. package/src/system/materialResolve.ts +165 -0
  63. package/src/system/normalize.ts +100 -0
  64. package/src/system/serialization.ts +422 -0
  65. package/src/system/settingsSchema.ts +339 -0
  66. package/src/system/types.ts +449 -0
  67. package/src/textureSource.ts +30 -0
  68. package/src/trailSettings.ts +54 -0
  69. package/src/BatchedParticleRenderer.ts +0 -3
  70. package/src/materials/ParticleMaterials.ts +0 -23
  71. package/src/materials/index.ts +0 -1
  72. package/src/shaders/chunks/index.ts +0 -1
  73. package/src/shaders/chunks/register-shader-chunks.ts +0 -32
  74. package/src/shaders/chunks/soft_fragment.glsl.ts +0 -13
  75. package/src/shaders/chunks/soft_pars_fragment.glsl.ts +0 -20
  76. package/src/shaders/chunks/soft_pars_vertex.glsl.ts +0 -6
  77. package/src/shaders/chunks/soft_vertex.glsl.ts +0 -6
  78. package/src/shaders/chunks/tile_fragment.glsl.ts +0 -9
  79. package/src/shaders/chunks/tile_pars_fragment.glsl.ts +0 -9
  80. package/src/shaders/chunks/tile_pars_vertex.glsl.ts +0 -28
  81. package/src/shaders/chunks/tile_vertex.glsl.ts +0 -18
  82. package/src/shaders/index.ts +0 -9
  83. package/src/shaders/local_particle_vert.glsl.ts +0 -50
@@ -1,9 +0,0 @@
1
- export default /* glsl */ `
2
- #if defined(USE_UV)
3
- varying vec2 vUv;
4
- #ifdef TILE_BLEND
5
- varying vec2 vUvNext;
6
- varying float vUvBlend;
7
- #endif
8
- #endif
9
- `;
@@ -1,28 +0,0 @@
1
- export default /* glsl */ `
2
- #ifdef UV_TILE
3
- attribute float uvTile;
4
- uniform vec2 tileCount;
5
-
6
- mat3 makeTileTransform(float tileIndex) {
7
- float col = mod(tileIndex, tileCount.x);
8
- float row = (tileCount.y - floor(tileIndex / tileCount.x) - 1.0);
9
- return mat3(
10
- 1.0 / tileCount.x, 0.0, 0.0,
11
- 0.0, 1.0 / tileCount.y, 0.0,
12
- col / tileCount.x, row / tileCount.y, 1.0
13
- );
14
- }
15
- #else
16
- mat3 makeTileTransform(float tileIndex) {
17
- return mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0);
18
- }
19
- #endif
20
-
21
- #if defined(USE_UV)
22
- varying vec2 vUv;
23
- #ifdef TILE_BLEND
24
- varying vec2 vUvNext;
25
- varying float vUvBlend;
26
- #endif
27
- #endif
28
- `;
@@ -1,18 +0,0 @@
1
- export default /* glsl */ `
2
- #ifdef UV_TILE
3
- mat3 tileTransform = makeTileTransform(floor(uvTile));
4
- #ifdef TILE_BLEND
5
- mat3 nextTileTransform = makeTileTransform(ceil(uvTile));
6
- vUvBlend = fract(uvTile);
7
- #endif
8
- #else
9
- mat3 tileTransform = makeTileTransform(0.0);
10
- #endif
11
-
12
- #if defined(USE_UV)
13
- vUv = (tileTransform * vec3(uv, 1.0)).xy;
14
- #if defined(TILE_BLEND) && defined(UV_TILE)
15
- vUvNext = (nextTileTransform * vec3(uv, 1.0)).xy;
16
- #endif
17
- #endif
18
- `;
@@ -1,9 +0,0 @@
1
- export * from './chunks';
2
- export {default as localParticlePhysicsVertShader} from './local_particle_physics_vert.glsl';
3
- export {default as localParticleVertShader} from './local_particle_vert.glsl';
4
- export {default as particleFragShader} from './particle_frag.glsl';
5
- export {default as particlePhysicsFragShader} from './particle_physics_frag.glsl';
6
- export {default as particleVertShader} from './particle_vert.glsl';
7
- export {default as stretchedBillboardVertShader} from './stretched_bb_particle_vert.glsl';
8
- export {default as trailFragShader} from './trail_frag.glsl';
9
- export {default as trailVertShader} from './trail_vert.glsl';
@@ -1,50 +0,0 @@
1
- export default /* glsl */ `
2
- // Per-vertex attributes
3
- attribute vec3 position;
4
- attribute vec2 uv;
5
-
6
- // Per-instance attributes
7
- attribute vec3 offset;
8
- attribute vec4 color;
9
- attribute vec3 size;
10
- attribute vec4 rotation;
11
- attribute float uvTile;
12
-
13
- // Uniforms
14
- uniform mat4 worldViewProjection;
15
-
16
- #ifdef UV_TILE
17
- uniform float tileCountX;
18
- uniform float tileCountY;
19
- #endif
20
-
21
- // Varyings
22
- varying vec2 vUV;
23
- varying vec4 vColor;
24
-
25
- vec3 applyQuaternion(vec3 v, vec4 q) {
26
- vec3 qVec = q.xyz;
27
- float qW = q.w;
28
- vec3 t = 2.0 * cross(qVec, v);
29
- return v + qW * t + cross(qVec, t);
30
- }
31
-
32
- void main() {
33
- vec3 rotatedPosition = applyQuaternion(position * size, rotation);
34
- vec3 worldPos = rotatedPosition + offset;
35
-
36
- gl_Position = worldViewProjection * vec4(worldPos, 1.0);
37
-
38
- #ifdef UV_TILE
39
- vec2 tc = vec2(tileCountX, tileCountY);
40
- float baseTile = floor(uvTile);
41
- float tileU = mod(baseTile, tc.x) / tc.x;
42
- float tileV = 1.0 - floor(baseTile / tc.x) / tc.y - 1.0 / tc.y;
43
- vUV = uv / tc + vec2(tileU, tileV);
44
- #else
45
- vUV = uv;
46
- #endif
47
-
48
- vColor = color;
49
- }
50
- `;