From f057c712a2d6dc78717345e6c06019d33a0d878b Mon Sep 17 00:00:00 2001 From: dennemark Date: Fri, 26 Nov 2021 18:19:21 +0100 Subject: [PATCH] fix: :bug: fix visible behind camera frustum (#178) this should fix html still being visible, when object is behind camera frustum --- src/customComponents/Html.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/customComponents/Html.tsx b/src/customComponents/Html.tsx index e5cb9576..d51b2954 100644 --- a/src/customComponents/Html.tsx +++ b/src/customComponents/Html.tsx @@ -29,9 +29,9 @@ function isObjectBehindCamera(el: AbstractMesh, camera: Camera) { const planes = Frustum.GetPlanes(camera.getTransformationMatrix()); const center = el.absolutePosition; - const insideFrustum = planes.findIndex(x => x.dotCoordinate(center) < 0) === -1 ? false : true; // taken from : https://forum.babylonjs.com/t/check-if-vector3-is-in-frustum/8652/3 + const outsideFrustum = planes.findIndex(x => x.dotCoordinate(center) < 0) === -1 ? false : true; // taken from : https://forum.babylonjs.com/t/check-if-vector3-is-in-frustum/8652/3 - return !insideFrustum; + return outsideFrustum; } function isObjectVisible(el: AbstractMesh, camera: Camera, occlude: AbstractMesh[]) { @@ -249,7 +249,7 @@ const Html = forwardRef( node.computeWorldMatrix(true) const vec = transform ? oldPosition.current : calculatePosition(node, camera) - el.style.display = node.isEnabled(true) ? 'block' : 'none' + el.style.display = (visible.current && node.isEnabled(true)) ? 'block' : 'none' if ( (isNaN(vec[0]) === false) && ( transform ||