@onerjs/core 8.26.4 → 8.26.5
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/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +6 -0
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/frameGraphContext.d.ts +2 -1
- package/FrameGraph/frameGraphContext.js +4 -1
- package/FrameGraph/frameGraphContext.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.d.ts +1 -1
- package/Lights/Clustered/clusteredLightContainer.js +4 -5
- package/Lights/Clustered/clusteredLightContainer.js.map +1 -1
- package/Lights/pointLight.js +4 -4
- package/Lights/pointLight.js.map +1 -1
- package/Lights/rectAreaLight.js +4 -4
- package/Lights/rectAreaLight.js.map +1 -1
- package/Lights/spotLight.js +2 -2
- package/Lights/spotLight.js.map +1 -1
- package/Materials/Background/backgroundMaterial.d.ts +19 -91
- package/Materials/Background/backgroundMaterial.js +17 -245
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js +15 -4
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +28 -5
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +57 -69
- package/Materials/Node/nodeMaterial.js +9 -86
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +3 -1
- package/Materials/Node/nodeMaterialBuildState.js +35 -15
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/index.d.ts +5 -0
- package/Materials/PBR/index.js +5 -0
- package/Materials/PBR/index.js.map +1 -1
- package/Materials/PBR/openPbrMaterial.d.ts +998 -0
- package/Materials/PBR/openPbrMaterial.js +2069 -0
- package/Materials/PBR/openPbrMaterial.js.map +1 -0
- package/Materials/PBR/pbrBaseMaterial.d.ts +57 -43
- package/Materials/PBR/pbrBaseMaterial.js +21 -304
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrMaterial.d.ts +0 -78
- package/Materials/PBR/pbrMaterial.js +0 -110
- package/Materials/PBR/pbrMaterial.js.map +1 -1
- package/Materials/floatingOriginMatrixOverrides.d.ts +3 -0
- package/Materials/floatingOriginMatrixOverrides.js +91 -0
- package/Materials/floatingOriginMatrixOverrides.js.map +1 -0
- package/Materials/imageProcessing.d.ts +65 -0
- package/Materials/imageProcessing.js +162 -0
- package/Materials/imageProcessing.js.map +1 -0
- package/Materials/imageProcessingConfiguration.defines.d.ts +25 -0
- package/Materials/imageProcessingConfiguration.defines.js +27 -0
- package/Materials/imageProcessingConfiguration.defines.js.map +1 -1
- package/Materials/index.d.ts +2 -0
- package/Materials/index.js +2 -0
- package/Materials/index.js.map +1 -1
- package/Materials/material.d.ts +14 -0
- package/Materials/material.js +14 -0
- package/Materials/material.js.map +1 -1
- package/Materials/materialHelper.functions.d.ts +53 -0
- package/Materials/materialHelper.functions.js +297 -0
- package/Materials/materialHelper.functions.js.map +1 -1
- package/Materials/standardMaterial.d.ts +57 -121
- package/Materials/standardMaterial.js +21 -250
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uv.defines.d.ts +22 -0
- package/Materials/uv.defines.js +24 -0
- package/Materials/uv.defines.js.map +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +1 -0
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Misc/decorators.d.ts +7 -0
- package/Misc/decorators.js +34 -0
- package/Misc/decorators.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js +10 -1
- package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -1
- package/Particles/Node/Blocks/index.d.ts +2 -0
- package/Particles/Node/Blocks/index.js +2 -0
- package/Particles/Node/Blocks/index.js.map +1 -1
- package/Particles/Node/Blocks/particleInputBlock.js +4 -1
- package/Particles/Node/Blocks/particleInputBlock.js.map +1 -1
- package/Particles/Node/Blocks/particleLocalVariableBlock.d.ts +38 -0
- package/Particles/Node/Blocks/particleLocalVariableBlock.js +108 -0
- package/Particles/Node/Blocks/particleLocalVariableBlock.js.map +1 -0
- package/Particles/Node/Blocks/particleVectorLengthBlock.d.ts +26 -0
- package/Particles/Node/Blocks/particleVectorLengthBlock.js +50 -0
- package/Particles/Node/Blocks/particleVectorLengthBlock.js.map +1 -0
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.d.ts +2 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.js +45 -0
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +2 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/geometryBufferRenderer.js +6 -4
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/iblCdfGenerator.js +28 -20
- package/Rendering/iblCdfGenerator.js.map +1 -1
- package/Rendering/reflectiveShadowMap.d.ts +3 -3
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clusteredLightingFunctions.js +3 -1
- package/Shaders/ShadersInclude/clusteredLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +34 -0
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js +4 -0
- package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -0
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js +1 -0
- package/Shaders/ShadersInclude/pbrClusteredLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js +2 -0
- package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +28 -0
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/importanceSampling.js +4 -0
- package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +3 -1
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +2 -0
- package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +21 -0
- package/scene.js +29 -3
- package/scene.js.map +1 -1
package/scene.js
CHANGED
|
@@ -10,6 +10,7 @@ import { UniformBuffer } from "./Materials/uniformBuffer.js";
|
|
|
10
10
|
import { PickingInfo } from "./Collisions/pickingInfo.js";
|
|
11
11
|
import { ActionEvent } from "./Actions/actionEvent.js";
|
|
12
12
|
import { PostProcessManager } from "./PostProcesses/postProcessManager.js";
|
|
13
|
+
import { OverrideMatrixFunctions, ResetMatrixFunctions } from "./Materials/floatingOriginMatrixOverrides.js";
|
|
13
14
|
import { RenderingManager } from "./Rendering/renderingManager.js";
|
|
14
15
|
import { Stage } from "./sceneComponent.js";
|
|
15
16
|
|
|
@@ -376,12 +377,13 @@ export class Scene {
|
|
|
376
377
|
: (this.activeCamera?.globalPosition ?? Vector3.ZeroReadOnly);
|
|
377
378
|
const invertNormal = this.useRightHandedSystem === (this._mirroredCameraPosition != null);
|
|
378
379
|
TmpVectors.Vector4[0].set(eyePosition.x, eyePosition.y, eyePosition.z, invertNormal ? -1 : 1);
|
|
380
|
+
TmpVectors.Vector4[1].copyFromFloats(TmpVectors.Vector4[0].x - this.floatingOriginOffset.x, TmpVectors.Vector4[0].y - this.floatingOriginOffset.y, TmpVectors.Vector4[0].z - this.floatingOriginOffset.z, TmpVectors.Vector4[0].w);
|
|
379
381
|
if (effect) {
|
|
380
382
|
if (isVector3) {
|
|
381
|
-
effect.setFloat3(variableName, TmpVectors.Vector4[
|
|
383
|
+
effect.setFloat3(variableName, TmpVectors.Vector4[1].x, TmpVectors.Vector4[1].y, TmpVectors.Vector4[1].z);
|
|
382
384
|
}
|
|
383
385
|
else {
|
|
384
|
-
effect.setVector4(variableName, TmpVectors.Vector4[
|
|
386
|
+
effect.setVector4(variableName, TmpVectors.Vector4[1]);
|
|
385
387
|
}
|
|
386
388
|
}
|
|
387
389
|
return TmpVectors.Vector4[0];
|
|
@@ -393,7 +395,7 @@ export class Scene {
|
|
|
393
395
|
finalizeSceneUbo() {
|
|
394
396
|
const ubo = this.getSceneUniformBuffer();
|
|
395
397
|
const eyePosition = this.bindEyePosition(null);
|
|
396
|
-
ubo.updateFloat4("vEyePosition", eyePosition.x, eyePosition.y, eyePosition.z, eyePosition.w);
|
|
398
|
+
ubo.updateFloat4("vEyePosition", eyePosition.x - this.floatingOriginOffset.x, eyePosition.y - this.floatingOriginOffset.y, eyePosition.z - this.floatingOriginOffset.z, eyePosition.w);
|
|
397
399
|
ubo.update();
|
|
398
400
|
return ubo;
|
|
399
401
|
}
|
|
@@ -1450,6 +1452,8 @@ export class Scene {
|
|
|
1450
1452
|
data: [],
|
|
1451
1453
|
length: 0,
|
|
1452
1454
|
};
|
|
1455
|
+
this._floatingOriginMode = false;
|
|
1456
|
+
this._floatingOriginOffsetDefault = Vector3.Zero();
|
|
1453
1457
|
this._preventFreeActiveMeshesAndRenderingGroups = false;
|
|
1454
1458
|
/** @internal */
|
|
1455
1459
|
this._activeMeshesFrozen = false;
|
|
@@ -1493,6 +1497,11 @@ export class Scene {
|
|
|
1493
1497
|
EngineStore._LastCreatedScene = this;
|
|
1494
1498
|
engine.scenes.push(this);
|
|
1495
1499
|
}
|
|
1500
|
+
if (options?.floatingOriginMode) {
|
|
1501
|
+
engine.getCreationOptions().useHighPrecisionMatrix = true;
|
|
1502
|
+
OverrideMatrixFunctions(this);
|
|
1503
|
+
this._floatingOriginMode = true;
|
|
1504
|
+
}
|
|
1496
1505
|
this._uid = null;
|
|
1497
1506
|
this._renderingManager = new RenderingManager(this);
|
|
1498
1507
|
if (PostProcessManager) {
|
|
@@ -2136,6 +2145,22 @@ export class Scene {
|
|
|
2136
2145
|
this._viewUpdateFlag = -1;
|
|
2137
2146
|
this._projectionUpdateFlag = -1;
|
|
2138
2147
|
}
|
|
2148
|
+
/**
|
|
2149
|
+
* @experimental
|
|
2150
|
+
* When true, enables floatingOriginMode which helps avoid floating point imprecision when using huge coordinate system by
|
|
2151
|
+
* 1. Forcing the engine to use doublePrecision mode
|
|
2152
|
+
* 2. Offsetting uniform values before passing to shader so that camera is centered at origin and world is offset by camera position
|
|
2153
|
+
*/
|
|
2154
|
+
get floatingOriginMode() {
|
|
2155
|
+
return this._floatingOriginMode;
|
|
2156
|
+
}
|
|
2157
|
+
/**
|
|
2158
|
+
* @experimental
|
|
2159
|
+
* When floatingOriginMode is enabled, offset is equal to the active camera position. If no active camera or floatingOriginMode is disabled, offset is 0.
|
|
2160
|
+
*/
|
|
2161
|
+
get floatingOriginOffset() {
|
|
2162
|
+
return this.floatingOriginMode && this.activeCamera ? this.activeCamera.position : this._floatingOriginOffsetDefault;
|
|
2163
|
+
}
|
|
2139
2164
|
/**
|
|
2140
2165
|
* Gets an unique (relatively to the current scene) Id
|
|
2141
2166
|
* @returns an unique number for the scene
|
|
@@ -4641,6 +4666,7 @@ export class Scene {
|
|
|
4641
4666
|
this.onClearColorChangedObservable.clear();
|
|
4642
4667
|
this.onEnvironmentTextureChangedObservable.clear();
|
|
4643
4668
|
this.onMeshUnderPointerUpdatedObservable.clear();
|
|
4669
|
+
ResetMatrixFunctions();
|
|
4644
4670
|
this._isDisposed = true;
|
|
4645
4671
|
}
|
|
4646
4672
|
_disposeList(items, callback) {
|