Skip to content

Commit 836516f

Browse files
author
Babylon.js Platform
committed
Merge remote-tracking branch 'origin/master'
2 parents cae6892 + 019055a commit 836516f

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

packages/dev/core/src/scene.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import type { ISmartArrayLike } from "./Misc/smartArray";
99
import { SmartArrayNoDuplicate, SmartArray } from "./Misc/smartArray";
1010
import { StringDictionary } from "./Misc/stringDictionary";
1111
import { Tags } from "./Misc/tags";
12-
import type { Vector2, Vector4 } from "./Maths/math.vector";
13-
import { Vector3, Matrix, TmpVectors } from "./Maths/math.vector";
12+
import type { Vector2 } from "./Maths/math.vector";
13+
import { Vector3, Vector4, Matrix, TmpVectors } from "./Maths/math.vector";
1414
import type { IParticleSystem } from "./Particles/IParticleSystem";
1515
import { ImageProcessingConfiguration } from "./Materials/imageProcessingConfiguration";
1616
import { UniformBuffer } from "./Materials/uniformBuffer";
@@ -240,6 +240,7 @@ export class Scene implements IAnimatable, IClipPlanesHolder, IAssetContainer {
240240

241241
private _clearColor: Color4 = new Color4(0.2, 0.2, 0.3, 1.0);
242242

243+
private _tempVect4 = new Vector4();
243244
/**
244245
* Observable triggered when the performance priority is changed
245246
*/
@@ -1236,21 +1237,22 @@ export class Scene implements IAnimatable, IClipPlanesHolder, IAssetContainer {
12361237
: this._mirroredCameraPosition
12371238
? this._mirroredCameraPosition
12381239
: (this.activeCamera?.globalPosition ?? Vector3.ZeroReadOnly);
1239-
12401240
const invertNormal = this.useRightHandedSystem === (this._mirroredCameraPosition != null);
12411241

12421242
const offset = this.floatingOriginOffset;
1243-
const finalEyePos = TmpVectors.Vector4[0].set(eyePosition.x - offset.x, eyePosition.y - offset.y, eyePosition.z - offset.z, invertNormal ? -1 : 1);
1243+
const eyePos = this._tempVect4.set(eyePosition.x, eyePosition.y, eyePosition.z, invertNormal ? -1 : 1);
1244+
const offsetEyePos = eyePos.subtractFromFloatsToRef(offset.x, offset.y, offset.z, 0, TmpVectors.Vector4[1]);
12441245

12451246
if (effect) {
12461247
if (isVector3) {
1247-
effect.setFloat3(variableName, finalEyePos.x, finalEyePos.y, finalEyePos.z);
1248+
effect.setFloat3(variableName, offsetEyePos.x, offsetEyePos.y, offsetEyePos.z);
12481249
} else {
1249-
effect.setVector4(variableName, finalEyePos);
1250+
effect.setVector4(variableName, offsetEyePos);
12501251
}
12511252
}
12521253

1253-
return TmpVectors.Vector4[0];
1254+
// Return the non-offset position
1255+
return eyePos;
12541256
}
12551257

12561258
/**

0 commit comments

Comments
 (0)