@woosh/meep-engine 2.165.0 → 2.165.2
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/README.md +137 -108
- package/build/bundle-worker-image-decoder.js +1 -1
- package/package.json +1 -1
- package/samples/generation/SampleGenerator0.js +3 -3
- package/samples/generation/filters/SampleGroundMoistureFilter.js +63 -56
- package/samples/generation/filters/SampleNoise20_0.js +6 -1
- package/samples/generation/themes/SampleTheme0.js +47 -47
- package/src/core/color/YCoCg/rgb_to_ycocg.d.ts +17 -0
- package/src/core/color/YCoCg/rgb_to_ycocg.d.ts.map +1 -0
- package/src/core/color/YCoCg/rgb_to_ycocg.js +20 -0
- package/src/core/color/YCoCg/ycocg_to_rgb.d.ts +14 -0
- package/src/core/color/YCoCg/ycocg_to_rgb.d.ts.map +1 -0
- package/src/core/color/YCoCg/ycocg_to_rgb.js +17 -0
- package/src/engine/REVIEW_2026_07_03.md +211 -0
- package/src/engine/animation/curve/actionProcessorOperations/curveActions.d.ts.map +1 -1
- package/src/engine/animation/curve/actionProcessorOperations/curveActions.js +3 -2
- package/src/engine/animation/curve/compression/sample_animation_curve_to_float_array.js +1 -1
- package/src/engine/animation/keyed2/AnimationTrackPlayback.d.ts.map +1 -1
- package/src/engine/animation/keyed2/AnimationTrackPlayback.js +3 -1
- package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterNone.js +2 -2
- package/src/engine/asset/preloader/AssetPreloader.d.ts.map +1 -1
- package/src/engine/asset/preloader/AssetPreloader.js +6 -0
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.d.ts.map +1 -1
- package/src/engine/control/first-person/sensors/FirstPersonSensorsSystem.js +5 -2
- package/src/engine/ecs/Entity.js +1 -1
- package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +1 -0
- package/src/engine/ecs/EntityManager.d.ts.map +1 -1
- package/src/engine/ecs/EntityManager.js +12 -8
- package/src/engine/ecs/EntityObserver.js +1 -1
- package/src/engine/ecs/System.d.ts.map +1 -1
- package/src/engine/ecs/System.js +4 -0
- package/src/engine/ecs/animation/AnimationClip.js +1 -1
- package/src/engine/ecs/attachment/AttachmentSystem.js +2 -2
- package/src/engine/ecs/attachment/TransformAttachmentBinding.d.ts.map +1 -1
- package/src/engine/ecs/attachment/TransformAttachmentBinding.js +11 -0
- package/src/engine/ecs/fow/FogOfWar.js +2 -2
- package/src/engine/ecs/fow/shader/screenSpaceFogOfWarShader.d.ts.map +1 -1
- package/src/engine/ecs/fow/shader/screenSpaceFogOfWarShader.js +27 -9
- package/src/engine/ecs/gui/hud/HeadsUpDisplaySystem.js +1 -1
- package/src/engine/ecs/gui/position/ViewportPosition.d.ts +3 -1
- package/src/engine/ecs/gui/position/ViewportPosition.d.ts.map +1 -1
- package/src/engine/ecs/gui/position/ViewportPosition.js +4 -1
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts +10 -0
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.d.ts.map +1 -1
- package/src/engine/ecs/storage/binary/BinarySerializationRegistry.js +43 -0
- package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.d.ts +93 -0
- package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.d.ts.map +1 -0
- package/src/engine/ecs/storage/binary/object-v2/BinaryObjectDeSerializer.js +315 -0
- package/src/engine/ecs/storage/binary/object-v2/BinaryObjectSerializer.d.ts +48 -0
- package/src/engine/ecs/storage/binary/object-v2/BinaryObjectSerializer.d.ts.map +1 -0
- package/src/engine/ecs/storage/binary/object-v2/BinaryObjectSerializer.js +331 -0
- package/src/engine/ecs/storage/binary/object-v2/DESIGN.md +199 -0
- package/src/engine/ecs/storage/binary/object-v2/ObjectBinaryFormat.d.ts +53 -0
- package/src/engine/ecs/storage/binary/object-v2/ObjectBinaryFormat.d.ts.map +1 -0
- package/src/engine/ecs/storage/binary/object-v2/ObjectBinaryFormat.js +57 -0
- package/src/engine/ecs/storage/binary/object-v2/ObjectSerializationAdapter.d.ts +53 -0
- package/src/engine/ecs/storage/binary/object-v2/ObjectSerializationAdapter.d.ts.map +1 -0
- package/src/engine/ecs/storage/binary/object-v2/ObjectSerializationAdapter.js +56 -0
- package/src/engine/ecs/storage/binary/object-v2/README.md +110 -0
- package/src/engine/ecs/storage/binary/object-v2/objectStringCodec.d.ts +13 -0
- package/src/engine/ecs/storage/binary/object-v2/objectStringCodec.d.ts.map +1 -0
- package/src/engine/ecs/storage/binary/object-v2/objectStringCodec.js +48 -0
- package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts +29 -0
- package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.d.ts.map +1 -0
- package/src/engine/ecs/storage/binary/object-v2/serializerTestHarness.js +44 -0
- package/src/engine/ecs/system_validate_class.d.ts.map +1 -1
- package/src/engine/ecs/system_validate_class.js +9 -2
- package/src/engine/graphics/camera/makeScreenScissorFrustum.d.ts.map +1 -1
- package/src/engine/graphics/camera/makeScreenScissorFrustum.js +11 -10
- package/src/engine/graphics/canvas/canvas2d_draw_linear_scale.d.ts.map +1 -1
- package/src/engine/graphics/canvas/canvas2d_draw_linear_scale.js +3 -1
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/readAnimationGraphDefinitionFromJSON.d.ts +1 -1
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/readAnimationGraphDefinitionFromJSON.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/readAnimationGraphDefinitionFromJSON.js +2 -2
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/writeAnimationGraphDefinitionToJSON.d.ts.map +1 -1
- package/src/engine/graphics/ecs/animation/animator/graph/definition/serialization/writeAnimationGraphDefinitionToJSON.js +2 -0
- package/src/engine/graphics/ecs/camera/Camera.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/Camera.js +4 -0
- package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.d.ts.map +1 -1
- package/src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.js +7 -2
- package/src/engine/graphics/ecs/camera/set_camera_aspect_ratio.js +1 -1
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js +4 -1
- package/src/engine/graphics/ecs/light/binding/LightBinding.js +2 -2
- package/src/engine/graphics/ecs/mesh/MeshSystem.js +1 -1
- package/src/engine/graphics/ecs/mesh/SkeletonUtils.js +1 -1
- package/src/engine/graphics/ecs/mesh-v2/sg_hierarchy_compute_bounding_box_via_parent_entity.js +1 -1
- package/src/engine/graphics/ecs/water/WaterSystem.d.ts +6 -0
- package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterSystem.js +12 -1
- package/src/engine/graphics/geometry/buffered/ensureGeometryBoundingSphere.js +1 -1
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.js +0 -15
- package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.js +10 -10
- package/src/engine/graphics/geometry/optimization/merge/merge_geometry_hierarchy.js +1 -1
- package/src/engine/graphics/material/SplatMaterial.js +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +3 -2
- package/src/engine/graphics/particles/particular/engine/emitter/ParticlePool.js +1 -1
- package/src/engine/graphics/particles/particular/group/ParticleGroup.d.ts.map +1 -1
- package/src/engine/graphics/particles/particular/group/ParticleGroup.js +3 -2
- package/src/engine/graphics/render/forward_plus/plugin/ForwardPlusRenderingPlugin.js +1 -1
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts +1 -8
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.d.ts.map +1 -1
- package/src/engine/graphics/sh3/gi/material/MaterialTransformer.js +2 -14
- package/src/engine/graphics/sh3/gi/material/ProbeResolutionStage.d.ts +9 -0
- package/src/engine/graphics/sh3/gi/material/ProbeResolutionStage.d.ts.map +1 -0
- package/src/engine/graphics/sh3/gi/material/ProbeResolutionStage.js +14 -0
- package/src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.d.ts.map +1 -1
- package/src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.js +4 -1
- package/src/engine/graphics/sh3/lpg/LightProbeGrid.d.ts +69 -0
- package/src/engine/graphics/sh3/lpg/LightProbeGrid.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/LightProbeGrid.js +173 -0
- package/src/engine/graphics/sh3/lpg/LightProbeGridBaker.d.ts +24 -0
- package/src/engine/graphics/sh3/lpg/LightProbeGridBaker.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/LightProbeGridBaker.js +88 -0
- package/src/engine/graphics/sh3/lpg/build_light_probe_grid_for_scene.d.ts +20 -0
- package/src/engine/graphics/sh3/lpg/build_light_probe_grid_for_scene.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/build_light_probe_grid_for_scene.js +79 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_obtain_storage_cached.d.ts +11 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_obtain_storage_cached.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_obtain_storage_cached.js +84 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_textures.d.ts +29 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_textures.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/light_probe_grid_textures.js +160 -0
- package/src/engine/graphics/sh3/lpg/material/LightProbeGridMaterialTransformer.d.ts +23 -0
- package/src/engine/graphics/sh3/lpg/material/LightProbeGridMaterialTransformer.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/LightProbeGridMaterialTransformer.js +228 -0
- package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.d.ts +2 -0
- package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/chunk_lpg_get_irradiance_at.js +24 -0
- package/src/engine/graphics/sh3/lpg/material/common.d.ts +3 -0
- package/src/engine/graphics/sh3/lpg/material/common.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/common.js +73 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.d.ts +6 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_fragment_shader.js +42 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.d.ts +6 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/build_vertex_shader.js +49 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/space_fragment_transform_shader.d.ts +9 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/space_fragment_transform_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/space_fragment/space_fragment_transform_shader.js +12 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.d.ts +6 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_fragment_shader.js +30 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.d.ts +6 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/build_vertex_shader.js +41 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.frag.d.ts +3 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.frag.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.frag.js +15 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.vert.d.ts +3 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.vert.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/preamble.vert.js +9 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/space_vertex_transform_shader.d.ts +9 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/space_vertex_transform_shader.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/material/space_vertex/space_vertex_transform_shader.js +12 -0
- package/src/engine/graphics/sh3/lpg/serialization/LightProbeGridSerializationAdapter.d.ts +20 -0
- package/src/engine/graphics/sh3/lpg/serialization/LightProbeGridSerializationAdapter.d.ts.map +1 -0
- package/src/engine/graphics/sh3/lpg/serialization/LightProbeGridSerializationAdapter.js +59 -0
- package/src/engine/graphics/sh3/path_tracer/material/MaterialConverter.d.ts.map +1 -1
- package/src/engine/graphics/sh3/path_tracer/material/MaterialConverter.js +8 -0
- package/src/engine/graphics/sh3/prototypeLightProbeGrid.d.ts +2 -0
- package/src/engine/graphics/sh3/prototypeLightProbeGrid.d.ts.map +1 -0
- package/src/engine/graphics/sh3/prototypeLightProbeGrid.js +170 -0
- package/src/engine/graphics/texture/atlas/AtlasLookupTexture.js +1 -1
- package/src/engine/graphics/texture/atlas/CachingTextureAtlas.js +1 -1
- package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.js +1 -1
- package/src/engine/graphics/texture/sampler/sampler2d_copy_with_margins.js +3 -3
- package/src/engine/graphics/util/build_max_height_pyramid.d.ts.map +1 -1
- package/src/engine/graphics/util/build_max_height_pyramid.js +5 -2
- package/src/engine/grid/transform2grid/Transform2GridPositionSystem.js +1 -1
- package/src/engine/input/ecs/components/InputBinding.d.ts +7 -1
- package/src/engine/input/ecs/components/InputBinding.d.ts.map +1 -1
- package/src/engine/input/ecs/components/InputBinding.js +8 -1
- package/src/engine/input/ecs/systems/InputControllerSystem.js +1 -1
- package/src/engine/intelligence/behavior/decorator/OverrideContextBehavior.d.ts +2 -1
- package/src/engine/intelligence/behavior/decorator/OverrideContextBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/decorator/OverrideContextBehavior.js +6 -2
- package/src/engine/intelligence/behavior/selector/WeightedElement.js +1 -1
- package/src/engine/knowledge/database/StaticKnowledgeDatabase.d.ts.map +1 -1
- package/src/engine/knowledge/database/StaticKnowledgeDatabase.js +2 -4
- package/src/engine/logging/elastic/ElasticSearchLogger.d.ts +1 -2
- package/src/engine/logging/elastic/ElasticSearchLogger.d.ts.map +1 -1
- package/src/engine/logging/elastic/ElasticSearchLogger.js +14 -10
- package/src/engine/navigation/ecs/path_following/PathFollower.js +1 -1
- package/src/engine/navigation/grid/find_path_on_grid_astar.d.ts.map +1 -1
- package/src/engine/navigation/grid/find_path_on_grid_astar.js +5 -2
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
- package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +17 -0
- package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
- package/src/engine/physics/fluid/ecs/FluidSystem.d.ts +3 -3
- package/src/engine/scene/SceneManager.d.ts.map +1 -1
- package/src/engine/scene/SceneManager.js +4 -2
- package/src/engine/simulation/Ticker.d.ts.map +1 -1
- package/src/engine/simulation/Ticker.js +9 -0
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.d.ts.map +1 -1
- package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +6 -1
- package/src/engine/sound/material/concrete/json/serializeSoundMaterialToJSON.js +1 -1
- package/src/generation/theme/ThemeEngine.d.ts +9 -0
- package/src/generation/theme/ThemeEngine.d.ts.map +1 -1
- package/src/generation/theme/ThemeEngine.js +37 -2
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { BinaryBuffer } from "../../../../../core/binary/BinaryBuffer.js";
|
|
2
|
+
import { ModuleRegistry } from "../../../../../core/model/ModuleRegistry.js";
|
|
3
|
+
import { BinarySerializationRegistry } from "../BinarySerializationRegistry.js";
|
|
4
|
+
import { BinaryObjectDeSerializer } from "./BinaryObjectDeSerializer.js";
|
|
5
|
+
import { BinaryObjectSerializer } from "./BinaryObjectSerializer.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Serialize `value` with a serializer built on `registry`, then deserialize it with a deserializer built on
|
|
9
|
+
* `registry` + `modules`. Shared by the object-graph specs.
|
|
10
|
+
*
|
|
11
|
+
* @template T
|
|
12
|
+
* @param {T} value
|
|
13
|
+
* @param {{registry?: BinarySerializationRegistry, modules?: ModuleRegistry}} [options]
|
|
14
|
+
* @returns {T}
|
|
15
|
+
*/
|
|
16
|
+
export function roundTrip(value, { registry = new BinarySerializationRegistry(), modules = new ModuleRegistry() } = {}) {
|
|
17
|
+
const buffer = serialize(value, registry);
|
|
18
|
+
|
|
19
|
+
buffer.position = 0;
|
|
20
|
+
|
|
21
|
+
return new BinaryObjectDeSerializer(registry, modules).deserialize(buffer);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @param {*} value
|
|
26
|
+
* @param {BinarySerializationRegistry} [registry]
|
|
27
|
+
* @returns {BinaryBuffer} rewound to position 0
|
|
28
|
+
*/
|
|
29
|
+
export function serialize(value, registry = new BinarySerializationRegistry()) {
|
|
30
|
+
const buffer = new BinaryBuffer();
|
|
31
|
+
|
|
32
|
+
new BinaryObjectSerializer(registry).serialize(buffer, value);
|
|
33
|
+
|
|
34
|
+
return buffer;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @param {*} value
|
|
39
|
+
* @param {BinarySerializationRegistry} [registry]
|
|
40
|
+
* @returns {number} byte length of the serialized form
|
|
41
|
+
*/
|
|
42
|
+
export function serializedSize(value, registry = new BinarySerializationRegistry()) {
|
|
43
|
+
return serialize(value, registry).position;
|
|
44
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system_validate_class.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/system_validate_class.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"system_validate_class.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/system_validate_class.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qFAiGC;uBAxGsB,aAAa"}
|
|
@@ -60,8 +60,15 @@ export function system_validate_class(system) {
|
|
|
60
60
|
|
|
61
61
|
const numDependencies = dependencies.length;
|
|
62
62
|
|
|
63
|
-
if (numDependencies
|
|
64
|
-
|
|
63
|
+
if (numDependencies === 0) {
|
|
64
|
+
// no dependencies means no entity tuple is observed, so 'link'/'unlink' can never be invoked
|
|
65
|
+
if (system.link !== System.prototype.link) {
|
|
66
|
+
throw new Error(`'link' is overridden, but no dependencies are declared, so it would never be invoked`);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (system.unlink !== System.prototype.unlink) {
|
|
70
|
+
throw new Error(`'unlink' is overridden, but no dependencies are declared, so it would never be invoked`);
|
|
71
|
+
}
|
|
65
72
|
}
|
|
66
73
|
|
|
67
74
|
if (numDependencies > 1) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeScreenScissorFrustum.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/camera/makeScreenScissorFrustum.js"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,8EAFW,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"makeScreenScissorFrustum.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/camera/makeScreenScissorFrustum.js"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,8EAFW,MAAM,MAAM,QA0CtB"}
|
|
@@ -25,15 +25,17 @@ export function makeScreenScissorFrustum(output, box, camera) {
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
//convert box from view space into world space
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
//AABB2 y0 is the lower (bottom) bound and y1 the upper (top) bound in NDC,
|
|
29
|
+
//so top corners take y1 and bottom corners take y0
|
|
30
|
+
farTL.set(box.x0, box.y1, 1);
|
|
31
|
+
farTR.set(box.x1, box.y1, 1);
|
|
32
|
+
farBL.set(box.x0, box.y0, 1);
|
|
33
|
+
farBR.set(box.x1, box.y0, 1);
|
|
34
|
+
|
|
35
|
+
nearTL.set(box.x0, box.y1, -1);
|
|
36
|
+
nearTR.set(box.x1, box.y1, -1);
|
|
37
|
+
nearBL.set(box.x0, box.y0, -1);
|
|
38
|
+
nearBR.set(box.x1, box.y0, -1);
|
|
37
39
|
|
|
38
40
|
farTL.unproject(camera);
|
|
39
41
|
farTR.unproject(camera);
|
|
@@ -56,5 +58,4 @@ export function makeScreenScissorFrustum(output, box, camera) {
|
|
|
56
58
|
planes[4].setFromCoplanarPoints(nearTR, nearBR, nearBL);
|
|
57
59
|
|
|
58
60
|
planes[5].setFromCoplanarPoints(farBR, farTR, farTL);
|
|
59
|
-
planes[5].normal.multiplyScalar(-1);
|
|
60
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas2d_draw_linear_scale.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/canvas/canvas2d_draw_linear_scale.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,0IAVW,wBAAwB,
|
|
1
|
+
{"version":3,"file":"canvas2d_draw_linear_scale.d.ts","sourceRoot":"","sources":["../../../../../src/engine/graphics/canvas/canvas2d_draw_linear_scale.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,0IAVW,wBAAwB,QA2DlC"}
|
|
@@ -41,7 +41,9 @@ export function canvas2d_draw_linear_scale({
|
|
|
41
41
|
const direction_x = delta_x / distance;
|
|
42
42
|
const direction_y = delta_y / distance;
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
// largest multiple of `spacing` that still lands on or before the axis end;
|
|
45
|
+
// using ceil would place a final tick past position_1 with an extrapolated value
|
|
46
|
+
const mark_count = Math.floor(distance / spacing);
|
|
45
47
|
|
|
46
48
|
for (let i = 0; i <= mark_count; i++) {
|
|
47
49
|
|
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @returns {AnimationGraphDefinition}
|
|
10
10
|
*/
|
|
11
|
-
export function readAnimationGraphDefinitionFromJSON({ states, transitions, clips, notifications,
|
|
11
|
+
export function readAnimationGraphDefinitionFromJSON({ states, transitions, clips, notifications, startingSate }: any[]): AnimationGraphDefinition;
|
|
12
12
|
import { AnimationGraphDefinition } from "../AnimationGraphDefinition.js";
|
|
13
13
|
//# sourceMappingURL=readAnimationGraphDefinitionFromJSON.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readAnimationGraphDefinitionFromJSON.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/engine/graphics/ecs/animation/animator/graph/definition/serialization/readAnimationGraphDefinitionFromJSON.js"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,
|
|
1
|
+
{"version":3,"file":"readAnimationGraphDefinitionFromJSON.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/engine/graphics/ecs/animation/animator/graph/definition/serialization/readAnimationGraphDefinitionFromJSON.js"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,0HAFa,wBAAwB,CAsHpC;yCAhIwC,gCAAgC"}
|
|
@@ -22,7 +22,7 @@ export function readAnimationGraphDefinitionFromJSON(
|
|
|
22
22
|
transitions = [],
|
|
23
23
|
clips = [],
|
|
24
24
|
notifications = [],
|
|
25
|
-
|
|
25
|
+
startingSate = 0
|
|
26
26
|
}
|
|
27
27
|
) {
|
|
28
28
|
/**
|
|
@@ -127,7 +127,7 @@ export function readAnimationGraphDefinitionFromJSON(
|
|
|
127
127
|
|
|
128
128
|
graph.transitions = __transitions;
|
|
129
129
|
graph.states = __states;
|
|
130
|
-
graph.startingSate = __states[
|
|
130
|
+
graph.startingSate = __states[startingSate];
|
|
131
131
|
|
|
132
132
|
graph.build();
|
|
133
133
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeAnimationGraphDefinitionToJSON.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/engine/graphics/ecs/animation/animator/graph/definition/serialization/writeAnimationGraphDefinitionToJSON.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"writeAnimationGraphDefinitionToJSON.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/engine/graphics/ecs/animation/animator/graph/definition/serialization/writeAnimationGraphDefinitionToJSON.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,0FAgGC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/camera/Camera.js"],"names":[],"mappings":"AAaA;;GAEG;AACH;
|
|
1
|
+
{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/camera/Camera.js"],"names":[],"mappings":"AAaA;;GAEG;AACH;IAgJI;;;;;;;OAOG;IACH,0BANW,MAAM,GAAC,MAAM,iBAAiB,GAAC,MAAM,kBAAkB,KACvD,MAAM,KACN,MAAM,cACN,OAAO,iBACP,OAAO,QA+CjB;IAnMG;;;OAGG;IACH,UAFU,OAAO,CAEI;IAErB;;;OAGG;IACH,oBAFU,MAAM,CAEc;IAE9B,YAAkB;IAElB;;;OAGG;IACH,KAFU,OAAO,CAES;IAE1B;;;OAGG;IACH,gBAFU,aAAa,cAAc,CAAC,CAE4C;IAElF;;;OAGG;IACH,QAFU,eAAe,CAEc;IAEvC;;;;OAIG;IACH,mBAAqB;IAErB;;;;OAIG;IACH,oBAAsB;IAG1B;;;;OAIG;IACH,mEAEC;IAMD,0BAMC;IAVD,uBAEC;IAcD,2BAMC;IAVD,wBAEC;IAUD,uBAaC;IAED,2DAEC;IAED;;;OAGG;IACH,YAFW,MAAM,QAUhB;IAED;;;OAGG;IACH,SAFa,MAAM,CAQlB;IAED;;;MAKC;IAED,0BAQC;IAyDD;;;OAGG;IACH,kDAUC;IAED;;;;;;;;;;OAUG;IACH,0BATW,OAAO,YACP,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,QAyBhB;IAED;;;;;;OAMG;IACH,kCALW,MAAM,KACN,MAAM,KACN,MAAM,UACN,OAAO,QAqBjB;CACJ;;;;;oBAlSmB,kCAAkC;yBAG7B,wCAAwC;+BAElC,qBAAqB;4BAHxB,2CAA2C;oBADnD,kCAAkC"}
|
|
@@ -123,6 +123,10 @@ export class Camera {
|
|
|
123
123
|
this.active.copy(other.active);
|
|
124
124
|
this.projectionType.copy(other.projectionType);
|
|
125
125
|
this.autoClip = other.autoClip;
|
|
126
|
+
this.autoClipHysteresis = other.autoClipHysteresis;
|
|
127
|
+
this.fov.copy(other.fov);
|
|
128
|
+
this.clip_near = other.clip_near;
|
|
129
|
+
this.clip_far = other.clip_far;
|
|
126
130
|
}
|
|
127
131
|
|
|
128
132
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto_set_camera_clipping_planes.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.js"],"names":[],"mappings":"AAyBA;;;;;;;GAOG;AACH,
|
|
1
|
+
{"version":3,"file":"auto_set_camera_clipping_planes.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/camera/auto_set_camera_clipping_planes.js"],"names":[],"mappings":"AAyBA;;;;;;;GAOG;AACH,6FA2FC"}
|
|
@@ -38,6 +38,13 @@ export function auto_set_camera_clipping_planes(c, layers) {
|
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
// Capture the previous frame's tightened planes *before* overwriting them
|
|
42
|
+
// with the outer bounds below — the hysteresis further down compares the new
|
|
43
|
+
// range against them, so sampling after the overwrite would always measure
|
|
44
|
+
// against the full outer span and never let the planes tighten.
|
|
45
|
+
const old_near = camera.near;
|
|
46
|
+
const old_far = camera.far;
|
|
47
|
+
|
|
41
48
|
// Run visibility against the user-specified outer bounds, not the previous
|
|
42
49
|
// frame's tightened range — otherwise objects could be culled before we
|
|
43
50
|
// ever see them and the autoClip would shrink toward nothing.
|
|
@@ -97,8 +104,6 @@ export function auto_set_camera_clipping_planes(c, layers) {
|
|
|
97
104
|
|
|
98
105
|
// Hysteresis: only shrink each plane if the shrink is meaningful relative
|
|
99
106
|
// to the current span. Loosening always applies immediately.
|
|
100
|
-
const old_near = camera.near;
|
|
101
|
-
const old_far = camera.far;
|
|
102
107
|
const old_span = old_far - old_near;
|
|
103
108
|
const shrink_threshold = HYSTERESIS * old_span;
|
|
104
109
|
|
|
@@ -22,7 +22,7 @@ export function set_camera_aspect_ratio(camera, width, height) {
|
|
|
22
22
|
case Camera.ProjectionType.Orthographic:
|
|
23
23
|
//use smaller values to get a bit of a "zoom" on the world
|
|
24
24
|
const w = c.right - c.left;
|
|
25
|
-
const h = c.
|
|
25
|
+
const h = c.top - c.bottom;
|
|
26
26
|
|
|
27
27
|
const existingAspect = w / h;
|
|
28
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShadedGeometryHighlightSystem.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShadedGeometryHighlightSystem.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/highlight/system/ShadedGeometryHighlightSystem.js"],"names":[],"mappings":"AAuGA;IACI;;;;OAIG;IACH,4BAqBC;IAlBG;;;;OAIG;IACH,iBAAsB;IAEtB,2DAA+C;IAE/C,2BAA0C;IAE1C;;;;OAIG;IACH,8BAAiC;IAIrC;;;OAGG;IACH,sDAWC;IAED;;;OAGG;IACH,qDAoBC;CACJ;uBA9KsB,2BAA2B;+BAEnB,iCAAiC;sBAC1C,iBAAiB;AAIvC;IACI;;;OAGG;IACH,oBAFW,6BAA6B,EA+BvC;IA1BG;;;;OAIG;IACH,iBAAsB;IAEtB;;;;OAIG;IACH,eAAkB;IAClB;;;;OAIG;IACH,gBAAmB;IAEnB;;;;OAIG;IACH,uBAAiD;IAGrD,qCAoBC;IAED;;;;;;OAMG;IACH,gBA4BC;CACJ;6CAjG4C,2CAA2C"}
|
|
@@ -87,7 +87,10 @@ class Supplier extends HighlightRenderElementSource {
|
|
|
87
87
|
|
|
88
88
|
const object = this.__object_cache.get(sg);
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
// element-copy rather than aliasing: assigning sg.transform (the live ECS
|
|
91
|
+
// Transform.matrix) as `.elements` would let any three.js write into the
|
|
92
|
+
// cached object's matrix corrupt the entity's transform.
|
|
93
|
+
object.matrixWorld.fromArray(sg.transform);
|
|
91
94
|
|
|
92
95
|
const renderElement = this.__pool.create();
|
|
93
96
|
|
|
@@ -48,7 +48,7 @@ export class LightBinding {
|
|
|
48
48
|
link(ctx) {
|
|
49
49
|
this.__c_transform.position.onChanged.add(this.__apply_position, this);
|
|
50
50
|
this.__c_transform.rotation.onChanged.add(this.__apply_rotation, this);
|
|
51
|
-
this.__c_transform.
|
|
51
|
+
this.__c_transform.scale.onChanged.add(this.__apply_scale, this);
|
|
52
52
|
|
|
53
53
|
const l = this.__c_light;
|
|
54
54
|
|
|
@@ -86,7 +86,7 @@ export class LightBinding {
|
|
|
86
86
|
unlink(ctx) {
|
|
87
87
|
this.__c_transform.position.onChanged.remove(this.__apply_position, this);
|
|
88
88
|
this.__c_transform.rotation.onChanged.remove(this.__apply_rotation, this);
|
|
89
|
-
this.__c_transform.
|
|
89
|
+
this.__c_transform.scale.onChanged.remove(this.__apply_scale, this);
|
|
90
90
|
|
|
91
91
|
this.__c_light.intensity.onChanged.remove(this.__apply_intensity, this);
|
|
92
92
|
this.__c_light.color.onChanged.remove(this.__apply_color, this);
|
|
@@ -234,7 +234,7 @@ export class MeshSystem extends System {
|
|
|
234
234
|
if (!ecd.entityExists(entity)) {
|
|
235
235
|
//entity was destroyed at some point, visibility set updates asynchronously from ECS dataset updates
|
|
236
236
|
//skip
|
|
237
|
-
|
|
237
|
+
continue;
|
|
238
238
|
}
|
|
239
239
|
|
|
240
240
|
if (component !== undefined) {
|
|
@@ -151,7 +151,7 @@ export function findSkeletonBoneByType(skeleton, boneType) {
|
|
|
151
151
|
export function getSkeletonBoneByType(component, boneType) {
|
|
152
152
|
const skeleton = extractSkeletonFromMeshComponent(component);
|
|
153
153
|
|
|
154
|
-
if (skeleton === undefined) {
|
|
154
|
+
if (skeleton === undefined || skeleton === null) {
|
|
155
155
|
return null;
|
|
156
156
|
}
|
|
157
157
|
|
package/src/engine/graphics/ecs/mesh-v2/sg_hierarchy_compute_bounding_box_via_parent_entity.js
CHANGED
|
@@ -16,7 +16,7 @@ export function sg_hierarchy_compute_bounding_box_via_parent_entity(result, root
|
|
|
16
16
|
/**
|
|
17
17
|
* @type {ShadedGeometry}
|
|
18
18
|
*/
|
|
19
|
-
const sg = ecd.getComponent(
|
|
19
|
+
const sg = ecd.getComponent(entity, ShadedGeometry);
|
|
20
20
|
|
|
21
21
|
if (sg !== undefined) {
|
|
22
22
|
sg.getBoundingBox(scratch_aabb3);
|
|
@@ -30,6 +30,12 @@ declare class WaterSystem extends System<any, any, any, any, any> {
|
|
|
30
30
|
* @type {RenderLayer|null}
|
|
31
31
|
*/
|
|
32
32
|
renderLayer: RenderLayer | null;
|
|
33
|
+
/**
|
|
34
|
+
* preRender hook installed in startup, kept so shutdown can detach it
|
|
35
|
+
* @type {Function|null}
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
private __preRenderHook;
|
|
33
39
|
shutdown(entityManager: any): Promise<void>;
|
|
34
40
|
startup(entityManager: any): Promise<void>;
|
|
35
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaterSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSystem.js"],"names":[],"mappings":";AAaA;IAyBI;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"WaterSystem.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/ecs/water/WaterSystem.js"],"names":[],"mappings":";AAaA;IAyBI;;;;OAIG;IACH,sCAmBC;IAhDD,+BAAuB;IAEvB;;;OAGG;IACH,cAFU,GAAG,CAEG;IAGhB,cAAY;IAEZ;;;OAGG;IACH,aAFU,KAAK,EAAE,CAEA;IAEjB;;;;OAIG;IACH,qBAAiB;IAWb,+BAA8B;IAE9B;;;OAGG;IACH,aAFU,cAAY,IAAI,CAEH;IAEvB;;;;OAIG;IACH,wBAA2B;IAK/B,4CASC;IAED,2CAkEC;IAED;;;;OAIG;IACH,gBAHW,KAAK,UACL,MAAM,QAsDhB;IAED;;;;OAIG;IACH,kBAHW,KAAK,UACL,MAAM,QAgBhB;IAED,2BAgCC;IAED;;;;;OAKG;IACH,0BAUC;IAED,6BAcC;CACJ;;;;uBA/RsB,wBAAwB;kBAM7B,YAAY;oBARV,mCAAmC"}
|
|
@@ -53,12 +53,22 @@ class WaterSystem extends System {
|
|
|
53
53
|
*/
|
|
54
54
|
this.renderLayer = null;
|
|
55
55
|
|
|
56
|
+
/**
|
|
57
|
+
* preRender hook installed in startup, kept so shutdown can detach it
|
|
58
|
+
* @type {Function|null}
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
61
|
+
this.__preRenderHook = null;
|
|
62
|
+
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
|
|
59
66
|
async shutdown(entityManager) {
|
|
60
67
|
|
|
61
|
-
|
|
68
|
+
if (this.__preRenderHook !== null) {
|
|
69
|
+
this.graphicsEngine.on.preRender.remove(this.__preRenderHook);
|
|
70
|
+
this.__preRenderHook = null;
|
|
71
|
+
}
|
|
62
72
|
|
|
63
73
|
this.graphicsEngine.layers.remove(this.renderLayer);
|
|
64
74
|
|
|
@@ -128,6 +138,7 @@ class WaterSystem extends System {
|
|
|
128
138
|
});
|
|
129
139
|
}
|
|
130
140
|
|
|
141
|
+
this.__preRenderHook = preRenderHook;
|
|
131
142
|
graphicsEngine.on.preRender.add(preRenderHook);
|
|
132
143
|
}
|
|
133
144
|
|
|
@@ -12,7 +12,7 @@ export function ensureGeometryBoundingSphere(geometry) {
|
|
|
12
12
|
if (boundingSphere === null || boundingSphere === undefined) {
|
|
13
13
|
//build up bounding sphere
|
|
14
14
|
const vector4 = computeGeometryBoundingSphereMiniball(geometry);
|
|
15
|
-
geometry.boundingSphere = new ThreeSphere(new ThreeVector3(vector4.x, vector4.y, vector4.z), vector4.w);
|
|
15
|
+
boundingSphere = geometry.boundingSphere = new ThreeSphere(new ThreeVector3(vector4.x, vector4.y, vector4.z), vector4.w);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
return boundingSphere;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bvh32_geometry_nearest.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.js"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;GAeG;AACH,8FAXW,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,iBAC1B,MAAM,iBACN,MAAM,0BACN,OAAO,WACP,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,SAAS,KACpC,MAAM,KACN,MAAM,KACN,MAAM,iBACN,MAAM,GACJ,OAAO,
|
|
1
|
+
{"version":3,"file":"bvh32_geometry_nearest.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/geometry/buffered/query/bvh32_geometry_nearest.js"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;GAeG;AACH,8FAXW,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,iBAC1B,MAAM,iBACN,MAAM,0BACN,OAAO,WACP,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,SAAS,KACpC,MAAM,KACN,MAAM,KACN,MAAM,iBACN,MAAM,GACJ,OAAO,CAoNnB"}
|
|
@@ -200,21 +200,6 @@ export function bvh32_geometry_nearest(
|
|
|
200
200
|
cz = typed_array_value_denormalize(cz, vertices);
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
-
// denormalize if necessary
|
|
204
|
-
if (vertex_data_normalized) {
|
|
205
|
-
ax = typed_array_value_denormalize(ax, vertices);
|
|
206
|
-
ay = typed_array_value_denormalize(ay, vertices);
|
|
207
|
-
az = typed_array_value_denormalize(az, vertices);
|
|
208
|
-
|
|
209
|
-
bx = typed_array_value_denormalize(bx, vertices);
|
|
210
|
-
by = typed_array_value_denormalize(by, vertices);
|
|
211
|
-
bz = typed_array_value_denormalize(bz, vertices);
|
|
212
|
-
|
|
213
|
-
cx = typed_array_value_denormalize(cx, vertices);
|
|
214
|
-
cy = typed_array_value_denormalize(cy, vertices);
|
|
215
|
-
cz = typed_array_value_denormalize(cz, vertices);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
203
|
tri3_closest_point_barycentric(
|
|
219
204
|
v3_scratch_0, 0,
|
|
220
205
|
x, y, z,
|
|
@@ -544,14 +544,15 @@ export class InstancedMeshGroup {
|
|
|
544
544
|
if (this.__attributeTransform !== null) {
|
|
545
545
|
const oldTransformArray = this.__attributeTransform.array;
|
|
546
546
|
typed_array_copy(oldTransformArray, newTransformArray);
|
|
547
|
-
|
|
548
|
-
if (newTransformArray.length > oldTransformArray.length) {
|
|
549
|
-
//fill the rest of the array with 0s
|
|
550
|
-
// TODO consider writing identity matrix instead
|
|
551
|
-
newTransformArray.fill(0, oldTransformArray.length);
|
|
552
|
-
}
|
|
553
547
|
}
|
|
554
548
|
|
|
549
|
+
//reset the unused slots [count, capacity) to defaults on every rebuild,
|
|
550
|
+
//not only when growing — otherwise a shrink/regrow (or growing past a slot
|
|
551
|
+
//that was valid before) leaves stale data that a later transform-only add()
|
|
552
|
+
//would surface
|
|
553
|
+
// TODO consider writing identity matrix instead of 0
|
|
554
|
+
newTransformArray.fill(0, this.count * 16);
|
|
555
|
+
|
|
555
556
|
//rewrite old attributes
|
|
556
557
|
this.__attributeTransformArray = newTransformArray;
|
|
557
558
|
this.__attributeTransform = new InstancedBufferAttribute(newTransformArray, 16);
|
|
@@ -568,12 +569,11 @@ export class InstancedMeshGroup {
|
|
|
568
569
|
if (this.__attributeColor !== null) {
|
|
569
570
|
const oldColorArray = this.__attributeColor.array;
|
|
570
571
|
typed_array_copy(oldColorArray, newColorArray);
|
|
571
|
-
|
|
572
|
-
if (newColorArray.length > oldColorArray.length) {
|
|
573
|
-
newColorArray.fill(255, oldColorArray.length);
|
|
574
|
-
}
|
|
575
572
|
}
|
|
576
573
|
|
|
574
|
+
//reset unused colour slots [count, capacity) to the default every rebuild
|
|
575
|
+
newColorArray.fill(255, this.count * 4);
|
|
576
|
+
|
|
577
577
|
this.__attributeColorArray = newColorArray;
|
|
578
578
|
this.__attributeColor = new InstancedBufferAttribute(newColorArray, 4);
|
|
579
579
|
this.__attributeColor.normalized = true;
|
|
@@ -129,7 +129,7 @@ export function SplatMaterial(
|
|
|
129
129
|
splatMap.wrapS = splatMap.wrapT = ClampToEdgeWrapping;
|
|
130
130
|
splatMap.minFilter = LinearFilter;
|
|
131
131
|
splatMap.magFilter = LinearFilter;
|
|
132
|
-
uniforms.
|
|
132
|
+
uniforms.splatWeightMap.value = splatMap;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
if (diffuseMaps !== void 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticleEmitter.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js"],"names":[],"mappings":"AA2FA;
|
|
1
|
+
{"version":3,"file":"ParticleEmitter.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js"],"names":[],"mappings":"AA2FA;IA0iCI;;;;OAIG;IACH,4BAFa,eAAe,CAM3B;IAljCD;;OAEG;IACH,IAFU,MAAM,CAEE;IAElB;;;;OAIG;IACH,wBAAoB;IAEpB;;;OAGG;IACH,UAFU,OAAO,CAEe;IAChC,eAA6B;IAC7B,qBAAsC;IAEtC;;;;;OAKG;IACH,qCAA2C;IAE3C;;;;OAIG;IACH,WAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,cAFU,YAAY,GAAC,MAAM,CAEM;IAEnC;;;OAGG;IACH,WAFU,YAAY,GAAC,IAAI,CAEV;IAEjB;;;OAGG;IACH,MAFU,WAAS,IAAI,CAEX;IAEZ;;;OAGG;IACH,mBAFU,SAAS,CAEQ;IAG3B;;;;OAIG;IACH,yBAFU,KAAK,CAE2E;IAE1F;;;OAGG;IACH,yBAFU,KAAK,CAE8B;IAG7C;;;OAGG;IACH,OAFU,MAAM,CAE6F;IAE7G;;;;OAIG;IACH,eAAW;IAGX;;;OAGG;IACH,qBAFU,YAAY,CAEU;IAWhC,wBAIC;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,mBAAmB,GACxB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,mBAAmB,GACxB,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,mBAAmB,SAC1B,OAAO,QAQjB;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,mBAAmB,GACxB,OAAO,CAInB;IAED;;OAEG;IACH,gCAaC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;MAeC;IAED,0BAkEC;IAGD;;;OAGG;IACH,gBAFW,aAAa,QASvB;IAED;;;;OAIG;IACH,kDAUC;IAED;;;;OAIG;IACH,iCAHW,aAAa,GACZ,MAAM,CA2CjB;IAED,8BA0DC;IAED,8BAmBC;IAED,2BAmBC;IAED,6BAkBC;IAED;;;OAGG;IACH,uCAHW,MAAM,GACJ,MAAM,CA+BlB;IAED,cAuCC;IAED,mBA6BC;IAuBD,eAOC;IAED;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CASnB;IAED;;;;OAIG;IACH,qCA2FC;IAED,eAOC;IAED;;;OAGG;IACH,4BAFY,MAAM,CAejB;IAED;;;OAGG;IACH,mBAFW,MAAM,QAMhB;IAiCD;;;;OAIG;IACH,sCA+GC;IAED;;;;OAIG;IACH,qCA6GC;IAED;;;OAGG;IACH,aA4CC;IAGD;;OAEG;IACH,gBAIC;;CAYJ;;;;;;;;;;;;;;;;oBAnoCmB,wCAAwC;uBAFrC,2CAA2C;6BAOrC,6CAA6C;6BAqB7C,mBAAmB;0BApCtB,+CAA+C;sBAInD,8CAA8C;6BAYvC,8BAA8B;oCAiBvB,0BAA0B;8BAChC,oBAAoB;uCAF3C,0BAA0B;6CAA1B,0BAA0B;kDAA1B,0BAA0B;4CAA1B,0BAA0B;4CAA1B,0BAA0B;kDAA1B,0BAA0B;wCAA1B,0BAA0B;sCAA1B,0BAA0B;4CAA1B,0BAA0B;AAWjC,yCAKC"}
|
|
@@ -689,8 +689,9 @@ export class ParticleEmitter {
|
|
|
689
689
|
return this.blendingMode === other.blendingMode
|
|
690
690
|
&& this.parameters.equals(other.parameters)
|
|
691
691
|
&& this.layers.equals(other.layers)
|
|
692
|
-
|
|
693
|
-
|
|
692
|
+
// compare the same flag set that #computeHash folds in, otherwise
|
|
693
|
+
// equal objects can hash differently
|
|
694
|
+
&& (this.flags & SERIALIZABLE_FLAGS) === (other.flags & SERIALIZABLE_FLAGS);
|
|
694
695
|
}
|
|
695
696
|
|
|
696
697
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticleGroup.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/particles/particular/group/ParticleGroup.js"],"names":[],"mappings":"AAoBA;IACI;;;;;OAKG;IACH,qDAHW,OAAO,EA8CjB;IA1CG,mBAA0B;IAC1B;;;OAGG;IACH,4BAAgB;IAEhB,kBAAoB;IAEpB;;;OAGG;IACH,cAAuC;IAEvC;;;OAGG;IACH,UAAa;IAEb;;;OAGG;IACH,cAAmB;IAEnB,mBAAqB;IACrB,qBAAuB;IAEvB,oCAAqC;IACrC,4BAA8B;IAE9B;;;OAGG;IACH,cAFU,MAAO,SAAS,CAAC,CAEL;IAEtB,sBAAiC;IAKrC;;;;;OAKG;IACH,+BAJW,YAAY,GAAC,YAAY,GAAC,WAAW,GAAC,WAAW,GAAC,UAAU,GAAC,UAAU,GAAC,UAAU,GAAC,SAAS,kBAE1F,wBAAwB,GAAC,eAAe,CAQpD;IAED;;;OAGG;IACH,oBAFa,uBAAuB,GAAC,cAAc,CAUlD;IAED,cAmCC;IAED;;OAEG;IACH,gCAcC;IAED,cASC;IAED;;;OAGG;IACH,UAFa,OAAO,CAanB;IAED,6BAEC;IAED;;;OAGG;IACH,mBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,UAFa,MAAM,CASlB;IAED;;OAEG;IACH,6BAEC;IAED;;;OAGG;IACH,kCAEC;IAED,uCAIC;IAED;;;;;OAKG;IACH,2DAFW,MAAO,MAAM,CAAC,QAIxB;IAED;;;;;OAKG;IACH,4BAJW,MAAM,kBACN,MAAM,UACN,QAAM,YAAY,GAAC,YAAY,GAAC,UAAU,QAapD;IAED,sEAKC;IAED;;;;OAIG;IACH,wBAHW,MAAM,GACJ,MAAM,CAIlB;IAED,0BAKC;IAED,2CAaC;IAED,8CAkBC;IAED;;;;;OAKG;IACH,2EAFW,MAAM,EAAE,QAclB;IAED;;;;;OAKG;IACH,kFAFW,MAAM,QAahB;IAED;;;;;;;OAOG;IACH,0GAiBC;IAED;;;;;;;;OAQG;IACH,kHAkBC;IAED;;;OAGG;IACH,4BAFW,SAAS,QA+BnB;IAED;;;OAGG;IACH,uBAFW,UAAW,
|
|
1
|
+
{"version":3,"file":"ParticleGroup.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/particles/particular/group/ParticleGroup.js"],"names":[],"mappings":"AAoBA;IACI;;;;;OAKG;IACH,qDAHW,OAAO,EA8CjB;IA1CG,mBAA0B;IAC1B;;;OAGG;IACH,4BAAgB;IAEhB,kBAAoB;IAEpB;;;OAGG;IACH,cAAuC;IAEvC;;;OAGG;IACH,UAAa;IAEb;;;OAGG;IACH,cAAmB;IAEnB,mBAAqB;IACrB,qBAAuB;IAEvB,oCAAqC;IACrC,4BAA8B;IAE9B;;;OAGG;IACH,cAFU,MAAO,SAAS,CAAC,CAEL;IAEtB,sBAAiC;IAKrC;;;;;OAKG;IACH,+BAJW,YAAY,GAAC,YAAY,GAAC,WAAW,GAAC,WAAW,GAAC,UAAU,GAAC,UAAU,GAAC,UAAU,GAAC,SAAS,kBAE1F,wBAAwB,GAAC,eAAe,CAQpD;IAED;;;OAGG;IACH,oBAFa,uBAAuB,GAAC,cAAc,CAUlD;IAED,cAmCC;IAED;;OAEG;IACH,gCAcC;IAED,cASC;IAED;;;OAGG;IACH,UAFa,OAAO,CAanB;IAED,6BAEC;IAED;;;OAGG;IACH,mBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,UAFa,MAAM,CASlB;IAED;;OAEG;IACH,6BAEC;IAED;;;OAGG;IACH,kCAEC;IAED,uCAIC;IAED;;;;;OAKG;IACH,2DAFW,MAAO,MAAM,CAAC,QAIxB;IAED;;;;;OAKG;IACH,4BAJW,MAAM,kBACN,MAAM,UACN,QAAM,YAAY,GAAC,YAAY,GAAC,UAAU,QAapD;IAED,sEAKC;IAED;;;;OAIG;IACH,wBAHW,MAAM,GACJ,MAAM,CAIlB;IAED,0BAKC;IAED,2CAaC;IAED,8CAkBC;IAED;;;;;OAKG;IACH,2EAFW,MAAM,EAAE,QAclB;IAED;;;;;OAKG;IACH,kFAFW,MAAM,QAahB;IAED;;;;;;;OAOG;IACH,0GAiBC;IAED;;;;;;;;OAQG;IACH,kHAkBC;IAED;;;OAGG;IACH,4BAFW,SAAS,QA+BnB;IAED;;;OAGG;IACH,uBAFW,UAAW,QAgFrB;IAED;;;;OAIG;IACH,4BAHW,MAAM,UACN,MAAM,QAiChB;IAED;;;;OAIG;IACH,aAHW,MAAM,UACN,MAAM,QAahB;IAED;;;OAGG;IACH,0BAKC;IAED,kCAMC;IAED,mCAaC;IAED;;;OAGG;IACH,4BAIC;CACJ;0BA1mByB,gBAAgB;mBAHvB,+BAA+B;yCAD3C,OAAO;gCAAP,OAAO;wCAAP,OAAO;+BAAP,OAAO"}
|
|
@@ -462,8 +462,9 @@ export class ParticleGroup {
|
|
|
462
462
|
const oldSize = this.size;
|
|
463
463
|
const newSize = oldSize - deleteCount;
|
|
464
464
|
|
|
465
|
-
//sort indices
|
|
466
|
-
|
|
465
|
+
//sort indices ascending numerically (the compaction below walks the
|
|
466
|
+
//deleted tail block and assumes ascending numeric order)
|
|
467
|
+
indices.sort((a, b) => a - b);
|
|
467
468
|
|
|
468
469
|
const specAttributes = this.spec.attributes;
|
|
469
470
|
const numAttributes = specAttributes.length;
|
|
@@ -77,7 +77,7 @@ export class ForwardPlusRenderingPlugin extends EnginePlugin {
|
|
|
77
77
|
graphics.viewport.size.onChanged.remove(this.updateResolution, this);
|
|
78
78
|
graphics.pixelRatio.onChanged.remove(this.updateResolution, this);
|
|
79
79
|
|
|
80
|
-
graphics.on.preRender.remove(this.__prepare_for_render, this);
|
|
80
|
+
graphics.main_view.on.preRender.remove(this.__prepare_for_render, this);
|
|
81
81
|
|
|
82
82
|
// release memory
|
|
83
83
|
this.__light_manager.dispose();
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Where should probes be resolved?
|
|
3
|
-
*/
|
|
4
|
-
export type ProbeResolutionStage = number;
|
|
5
|
-
export namespace ProbeResolutionStage {
|
|
6
|
-
let Vertex: number;
|
|
7
|
-
let Fragment: number;
|
|
8
|
-
}
|
|
1
|
+
export { ProbeResolutionStage } from "./ProbeResolutionStage.js";
|
|
9
2
|
export class MaterialTransformer extends AbstractMaterialTransformer {
|
|
10
3
|
/**
|
|
11
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaterialTransformer.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/sh3/gi/material/MaterialTransformer.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MaterialTransformer.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/sh3/gi/material/MaterialTransformer.js"],"names":[],"mappings":";AAuBA;IA+II;;;;OAIG;IACH,kDAaC;IA3BD;;;OAGG;IACH,2BAEC;IAdD;;;OAGG;IACH,wBAEC;IA+BD,sBAIC;IAED,sBAiDC;IAED,eAgDC;IAED,4BA2BC;;CACJ;4CA1T2C,0DAA0D"}
|
|
@@ -12,25 +12,13 @@ import { octahedral_depth_to_atlas, vector_buffer_to_attribute_texture } from ".
|
|
|
12
12
|
import { tetrahedral_mesh_to_texture } from "../tetrahedral_mesh_to_texture.js";
|
|
13
13
|
import { makeLookupTexture3D } from "./makeLookupTexture3D.js";
|
|
14
14
|
import { makeOctahedralDepthAtlas } from "./makeOctahedralDepthAtlas.js";
|
|
15
|
+
import { ProbeResolutionStage } from "./ProbeResolutionStage.js";
|
|
15
16
|
import { space_fragment_transform_shader } from "./space_fragment/space_fragment_transform_shader.js";
|
|
16
17
|
import { space_vertex_transform_shader } from "./space_vertex/space_vertex_transform_shader.js";
|
|
17
18
|
|
|
18
19
|
const PROPERTY_TRANSFORMER_MARKER = '@light-probe-volume-material-transformer';
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
* Where should probes be resolved?
|
|
22
|
-
* @enum {number}
|
|
23
|
-
*/
|
|
24
|
-
export const ProbeResolutionStage = {
|
|
25
|
-
/**
|
|
26
|
-
* Cheaper, but less precise
|
|
27
|
-
*/
|
|
28
|
-
Vertex: 0,
|
|
29
|
-
/**
|
|
30
|
-
* More expensive, necessary for large geometries with few vertices
|
|
31
|
-
*/
|
|
32
|
-
Fragment: 1
|
|
33
|
-
};
|
|
21
|
+
export { ProbeResolutionStage } from "./ProbeResolutionStage.js";
|
|
34
22
|
|
|
35
23
|
|
|
36
24
|
export class MaterialTransformer extends AbstractMaterialTransformer {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProbeResolutionStage.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/sh3/gi/material/ProbeResolutionStage.js"],"names":[],"mappings":";;;mCAEU,MAAM"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where should probes be resolved?
|
|
3
|
+
* @enum {number}
|
|
4
|
+
*/
|
|
5
|
+
export const ProbeResolutionStage = {
|
|
6
|
+
/**
|
|
7
|
+
* Cheaper, but less precise
|
|
8
|
+
*/
|
|
9
|
+
Vertex: 0,
|
|
10
|
+
/**
|
|
11
|
+
* More expensive, necessary for large geometries with few vertices
|
|
12
|
+
*/
|
|
13
|
+
Fragment: 1
|
|
14
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bake_lightmap_for_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.js"],"names":[],"mappings":"AAuEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH;IAjC2C,GAAG;IAClB,mBAAmB,GAApC,MAAM;IACW,iBAAiB,GAAlC,MAAM;IACW,WAAW,GAA5B,MAAM;IACW,sBAAsB,GAAvC,MAAM;IACW,UAAU,GAA3B,MAAM;IACW,UAAU,GAA3B,MAAM;IACW,OAAO,GAAxB,MAAM;IACW,SAAS,GAA1B,MAAM;IAKW,mBAAmB,GAApC,MAAM;IACW,YAAY,GAA7B,MAAM;IAEW,aAAa,GAA9B,MAAM;IACW,uBAAuB,GAAxC,MAAM;IACW,mBAAmB,GAApC,MAAM;IACW,WAAW,GAA5B,MAAM;IACW,iBAAiB,GAAlC,MAAM;IACW,mBAAmB,GAApC,MAAM;IACW,eAAe,GAAhC,MAAM;IACY,OAAO,GAAzB,OAAO;IACU,mBAAmB,GAApC,MAAM;IACY,KAAK,GAAvB,OAAO;IAKL,SAAS,
|
|
1
|
+
{"version":3,"file":"bake_lightmap_for_scene.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/sh3/lightmap/bake_lightmap_for_scene.js"],"names":[],"mappings":"AAuEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH;IAjC2C,GAAG;IAClB,mBAAmB,GAApC,MAAM;IACW,iBAAiB,GAAlC,MAAM;IACW,WAAW,GAA5B,MAAM;IACW,sBAAsB,GAAvC,MAAM;IACW,UAAU,GAA3B,MAAM;IACW,UAAU,GAA3B,MAAM;IACW,OAAO,GAAxB,MAAM;IACW,SAAS,GAA1B,MAAM;IAKW,mBAAmB,GAApC,MAAM;IACW,YAAY,GAA7B,MAAM;IAEW,aAAa,GAA9B,MAAM;IACW,uBAAuB,GAAxC,MAAM;IACW,mBAAmB,GAApC,MAAM;IACW,WAAW,GAA5B,MAAM;IACW,iBAAiB,GAAlC,MAAM;IACW,mBAAmB,GAApC,MAAM;IACW,eAAe,GAAhC,MAAM;IACY,OAAO,GAAzB,OAAO;IACU,mBAAmB,GAApC,MAAM;IACY,KAAK,GAAvB,OAAO;IAKL,SAAS,CAmiBrB;sBAxpBqB,4CAA4C"}
|