@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.
- package/core/geom/3d/SurfacePoint3.js +44 -5
- package/core/geom/Vector2.d.ts +2 -0
- package/core/geom/packing/MaxRectangles.js +13 -4
- package/core/math/hash/murmur3_32.js +3 -3
- package/engine/asset/loaders/material/computeTextureHash.js +7 -13
- package/engine/ecs/attachment/AttachmentSystem.js +18 -17
- package/engine/ecs/grid/HeightMap2NormalMap.js +1 -1
- package/engine/ecs/grid/NormalMap2AOMap.js +1 -1
- package/engine/ecs/gui/position/ViewportPositionSystem.js +5 -5
- package/engine/ecs/parent/EntityNode.d.ts +20 -0
- package/engine/ecs/parent/EntityNode.js +284 -0
- package/engine/ecs/parent/FaceEditor.js +137 -0
- package/engine/ecs/parent/testCompositionEntityNode.js +153 -0
- package/engine/ecs/parent/testHuDPerf.js +123 -0
- package/engine/ecs/terrain/ecs/Terrain.js +14 -5
- package/engine/graphics/GraphicsEngine.js +1 -2
- package/engine/graphics/camera/testClippingPlaneComputation.js +0 -4
- package/engine/graphics/ecs/light/LightSystem.js +1 -1
- package/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +29 -0
- package/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +158 -1
- package/engine/graphics/ecs/path/testPathDisplaySystem.js +0 -2
- package/engine/graphics/geometry/buffered/query/GeometrySpatialQueryAccelerator.js +55 -11
- package/engine/graphics/micron/render/v1/MaterialContext.js +1 -0
- package/engine/graphics/particles/particular/engine/simulator/SimulationStepFixedPhysics.js +19 -3
- package/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +0 -2
- package/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +0 -2
- package/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +0 -2
- package/engine/graphics/render/frame_graph/FrameGraphBuilder.js +36 -0
- package/engine/graphics/render/frame_graph/IRenderContext.js +8 -0
- package/engine/graphics/render/frame_graph/RenderPass.js +32 -0
- package/engine/graphics/render/frame_graph/RenderPassFlags.js +6 -0
- package/engine/graphics/render/frame_graph/RenderPassResources.js +15 -0
- package/engine/graphics/render/frame_graph/Resource.js +21 -0
- package/engine/graphics/render/frame_graph/ResourceReference.js +14 -0
- package/engine/graphics/render/frame_graph/TextureDescriptor.js +30 -0
- package/engine/graphics/render/frame_graph/UsageModeType.js +5 -0
- package/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.js +27 -0
- package/engine/graphics/render/frame_graph/sample/deferred/PresentPass.js +17 -0
- package/engine/graphics/render/visibility/hiz/prototypeHiZ.js +0 -2
- package/engine/graphics/render/webgpu/sample/_main.ts +650 -0
- package/engine/graphics/render/webgpu/sample/fragmentDeferredRendering.wgsl +67 -0
- package/engine/graphics/render/webgpu/sample/fragmentGBuffersDebugView.wgsl +38 -0
- package/engine/graphics/render/webgpu/sample/fragmentWriteGBuffers.wgsl +21 -0
- package/engine/graphics/render/webgpu/sample/lightUpdate.wgsl +34 -0
- package/engine/graphics/render/webgpu/sample/main.js +566 -0
- package/engine/graphics/render/webgpu/sample/vertexTextureQuad.wgsl +9 -0
- package/engine/graphics/render/webgpu/sample/vertexWriteGBuffers.wgsl +28 -0
- package/engine/graphics/shadows/testShadowMapRendering.js +0 -2
- package/engine/{ecs/grid → graphics/texture/sampler}/sampler2DToFloat32Texture.js +1 -1
- package/package.json +1 -1
- package/samples/terrain/main.js +117 -0
- 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(),
|
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.
|
|
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);
|