@woosh/meep-engine 2.33.60 → 2.33.61

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 (52) hide show
  1. package/core/geom/3d/SurfacePoint3.js +44 -5
  2. package/core/geom/Vector2.d.ts +2 -0
  3. package/core/geom/packing/MaxRectangles.js +13 -4
  4. package/core/math/hash/murmur3_32.js +3 -3
  5. package/engine/asset/loaders/material/computeTextureHash.js +7 -13
  6. package/engine/ecs/attachment/AttachmentSystem.js +18 -17
  7. package/engine/ecs/grid/HeightMap2NormalMap.js +1 -1
  8. package/engine/ecs/grid/NormalMap2AOMap.js +1 -1
  9. package/engine/ecs/gui/position/ViewportPositionSystem.js +5 -5
  10. package/engine/ecs/parent/EntityNode.d.ts +20 -0
  11. package/engine/ecs/parent/EntityNode.js +284 -0
  12. package/engine/ecs/parent/FaceEditor.js +137 -0
  13. package/engine/ecs/parent/testCompositionEntityNode.js +153 -0
  14. package/engine/ecs/parent/testHuDPerf.js +123 -0
  15. package/engine/ecs/terrain/ecs/Terrain.js +14 -5
  16. package/engine/graphics/GraphicsEngine.js +1 -2
  17. package/engine/graphics/camera/testClippingPlaneComputation.js +0 -4
  18. package/engine/graphics/ecs/light/LightSystem.js +1 -1
  19. package/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +29 -0
  20. package/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +158 -1
  21. package/engine/graphics/ecs/path/testPathDisplaySystem.js +0 -2
  22. package/engine/graphics/geometry/buffered/query/GeometrySpatialQueryAccelerator.js +55 -11
  23. package/engine/graphics/micron/render/v1/MaterialContext.js +1 -0
  24. package/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.js +19 -3
  25. package/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +0 -2
  26. package/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +0 -2
  27. package/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +0 -2
  28. package/engine/graphics/render/frame_graph/FrameGraphBuilder.js +36 -0
  29. package/engine/graphics/render/frame_graph/IRenderContext.js +8 -0
  30. package/engine/graphics/render/frame_graph/RenderPass.js +32 -0
  31. package/engine/graphics/render/frame_graph/RenderPassFlags.js +6 -0
  32. package/engine/graphics/render/frame_graph/RenderPassResources.js +15 -0
  33. package/engine/graphics/render/frame_graph/Resource.js +21 -0
  34. package/engine/graphics/render/frame_graph/ResourceReference.js +14 -0
  35. package/engine/graphics/render/frame_graph/TextureDescriptor.js +30 -0
  36. package/engine/graphics/render/frame_graph/UsageModeType.js +5 -0
  37. package/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.js +27 -0
  38. package/engine/graphics/render/frame_graph/sample/deferred/PresentPass.js +17 -0
  39. package/engine/graphics/render/visibility/hiz/prototypeHiZ.js +0 -2
  40. package/engine/graphics/render/webgpu/sample/_main.ts +650 -0
  41. package/engine/graphics/render/webgpu/sample/fragmentDeferredRendering.wgsl +67 -0
  42. package/engine/graphics/render/webgpu/sample/fragmentGBuffersDebugView.wgsl +38 -0
  43. package/engine/graphics/render/webgpu/sample/fragmentWriteGBuffers.wgsl +21 -0
  44. package/engine/graphics/render/webgpu/sample/lightUpdate.wgsl +34 -0
  45. package/engine/graphics/render/webgpu/sample/main.js +566 -0
  46. package/engine/graphics/render/webgpu/sample/vertexTextureQuad.wgsl +9 -0
  47. package/engine/graphics/render/webgpu/sample/vertexWriteGBuffers.wgsl +28 -0
  48. package/engine/graphics/shadows/testShadowMapRendering.js +0 -2
  49. package/engine/{ecs/grid → graphics/texture/sampler}/sampler2DToFloat32Texture.js +1 -1
  50. package/package.json +1 -1
  51. package/samples/terrain/main.js +117 -0
  52. package/engine/ecs/sockets/AttachmentSocketsSystem.js +0 -10
@@ -5,7 +5,6 @@ import { MeshSystem } from "../ecs/mesh/MeshSystem.js";
5
5
  import GUIElementSystem from "../../ecs/gui/GUIElementSystem.js";
6
6
  import HeadsUpDisplaySystem from "../../ecs/gui/hud/HeadsUpDisplaySystem.js";
7
7
  import TagSystem from "../../ecs/systems/TagSystem.js";
8
- import { AttachmentSocketsSystem } from "../../ecs/sockets/AttachmentSocketsSystem.js";
9
8
  import { AttachmentSystem } from "../../ecs/attachment/AttachmentSystem.js";
10
9
  import { SoundEmitterSystem } from "../../sound/ecs/emitter/SoundEmitterSystem.js";
11
10
  import SoundControllerSystem from "../../sound/ecs/SoundControllerSystem.js";
@@ -72,7 +71,6 @@ function makeConfig(engine) {
72
71
 
73
72
  config.addManySystems(
74
73
  new TagSystem(),
75
- new AttachmentSocketsSystem(),
76
74
  new AttachmentSystem(),
77
75
  new SoundEmitterSystem(assetManager, sound.destination, sound.context),
78
76
  new SoundControllerSystem(),
@@ -1,5 +1,5 @@
1
1
  import { ClampToEdgeWrapping, DataTexture, FloatType, LinearFilter, NearestFilter, RedFormat } from "three";
2
- import { assert } from "../../../core/assert.js";
2
+ import { assert } from "../../../../core/assert.js";
3
3
 
4
4
  /**
5
5
  *
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "productName": "Meep",
6
6
  "description": "production-ready JavaScript game engine based on Entity Component System Architecture",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.33.60",
8
+ "version": "2.33.61",
9
9
  "dependencies": {
10
10
  "gl-matrix": "3.4.3",
11
11
  "fast-levenshtein": "2.0.6",
@@ -0,0 +1,117 @@
1
+ import { EngineConfiguration } from "../../engine/EngineConfiguration.js";
2
+ import { EngineHarness } from "../../engine/EngineHarness.js";
3
+ import { GameAssetType } from "../../engine/asset/GameAssetType.js";
4
+ import { TextureAssetLoader } from "../../engine/asset/loaders/texture/TextureAssetLoader.js";
5
+ import { obtainTerrain } from "../../../model/game/scenes/SceneUtils.js";
6
+ import { ImprovedNoise } from "three/examples/jsm/math/ImprovedNoise.js";
7
+ import { lerp } from "../../core/math/lerp.js";
8
+ import Vector2 from "../../core/geom/Vector2.js";
9
+ import Vector3 from "../../core/geom/Vector3.js";
10
+
11
+ const eh = new EngineHarness();
12
+
13
+ /**
14
+ *
15
+ * @param {Engine} engine
16
+ * @return {EngineConfiguration}
17
+ */
18
+ function makeConfig(engine) {
19
+ const r = new EngineConfiguration();
20
+
21
+ // configure engine here, add systems, loaders etc.
22
+ r.addLoader(GameAssetType.Texture, new TextureAssetLoader());
23
+
24
+ return r;
25
+ }
26
+
27
+ /**
28
+ *
29
+ * @param {Terrain} terrain
30
+ * @param {number} resolution
31
+ * @param {number} heightMin
32
+ * @param {number} heightMax
33
+ */
34
+ async function buildRandomTerrainHeights({
35
+ terrain,
36
+ resolution = 64,
37
+ heightMin = -5,
38
+ heightMax = 20
39
+ }) {
40
+
41
+ const terrain_height = terrain.samplerHeight;
42
+
43
+ terrain_height.resize(resolution, resolution);
44
+
45
+ const noise = new ImprovedNoise();
46
+
47
+ let x, y;
48
+
49
+ for (y = 0; y < resolution; y++) {
50
+ for (x = 0; x < resolution; x++) {
51
+
52
+ const u = x / (resolution - 1);
53
+ const v = y / (resolution - 1);
54
+
55
+ const noise_value = noise.noise(u * 13.456, v * 13.456, 0) * noise.noise(u * 3.71, v * 3.71, 0.8);
56
+
57
+ const height_value = lerp(heightMin, heightMax, noise_value);
58
+
59
+ terrain_height.set(x, y, [height_value]);
60
+ }
61
+ }
62
+
63
+ await terrain.updateWorkerHeights();
64
+ terrain.updateHeightTexture();
65
+ terrain.buildLightMap();
66
+
67
+ terrain.tiles.rebuild();
68
+ }
69
+
70
+ /**
71
+ *
72
+ * @param {Engine} engine
73
+ */
74
+ async function main(engine) {
75
+
76
+
77
+ await EngineHarness.buildBasics({
78
+ engine,
79
+ enableWater: false,
80
+ terrainResolution: 4,
81
+ terrainSize: new Vector2(64, 64),
82
+ focus: new Vector3(64, 0, 54),
83
+ yaw: 0,
84
+ pitch: 0.909,
85
+ distance: 169
86
+ });
87
+
88
+ /**
89
+ *
90
+ * @type {EntityComponentDataset}
91
+ */
92
+ const ecd = engine.entityManager.dataset;
93
+
94
+ /**
95
+ *
96
+ * @type {Terrain|null}
97
+ */
98
+ const terrain = obtainTerrain(ecd);
99
+
100
+ buildRandomTerrainHeights({ terrain: terrain });
101
+ }
102
+
103
+ /**
104
+ *
105
+ * @param {EngineHarness} harness
106
+ */
107
+ async function init(harness) {
108
+ const engine = eh.engine;
109
+
110
+ await makeConfig(engine).apply(engine);
111
+
112
+ await eh.initialize();
113
+
114
+ main(engine);
115
+ }
116
+
117
+ init(eh);
@@ -1,10 +0,0 @@
1
- import { System } from "../System.js";
2
- import { AttachmentSockets } from "./AttachmentSockets.js";
3
-
4
- export class AttachmentSocketsSystem extends System {
5
- constructor() {
6
- super();
7
-
8
- this.dependencies = [AttachmentSockets];
9
- }
10
- }