更新局部剪裁平面时出现three.js延迟

更新局部剪裁平面时出现three.js延迟,three.js,Three.js,为了实现一个可滚动的文本容器(使用自己的位图字体,基本上是小精灵网格),我使用局部剪切平面。 当文本容器移动时,剪裁平面将根据容器的全局边界进行更新。 除了快速移动外,这项功能非常有效。在这种情况下,剪切平面在容器后面稍微延迟,使文本在不应该的地方发光 我的第一个想法是更新剪裁平面所需的代码可能会导致延迟。。但当我使用应用此命令时: 1.更新文本框位置 2.更新剪裁平面 3.render() 延迟仍然存在 原因是否可能在于threejs框架中实际剪辑的应用方式 下面是一个小代码片段,演示如何使用

为了实现一个可滚动的文本容器(使用自己的位图字体,基本上是小精灵网格),我使用局部剪切平面。 当文本容器移动时,剪裁平面将根据容器的全局边界进行更新。 除了快速移动外,这项功能非常有效。在这种情况下,剪切平面在容器后面稍微延迟,使文本在不应该的地方发光

我的第一个想法是更新剪裁平面所需的代码可能会导致延迟。。但当我使用应用此命令时: 1.更新文本框位置 2.更新剪裁平面 3.render() 延迟仍然存在

原因是否可能在于threejs框架中实际剪辑的应用方式

下面是一个小代码片段,演示如何使用两个辅助网格计算上裁剪平面。一个是垂直放置在我的文本对象上的平面(图片中的红色平面)。另一个是3O.Obj3D,它位于上边缘的中间,用于计算右平面常数。
//  get the world direction of a helper plane mesh that is located orthogonally on my text plane
var upperClippingPlaneRotationProxyMeshWordDirection = _this.upperClippingPlaneRotationProxyMesh.getWorldDirection();

//  get the world position of a helper 3d object that is located in the middle of the upper edge of my text plane
var upperClippingPlanePositionProxyObjPosition = _this.upperClippingPlanePositionProxyObj.getWorldPosition();

//  a plane through origin which makes it easier for computing the plane constant
var upperPlaneInOrigin = new THREE.Plane(upperClippingPlaneRotationProxyMeshWordDirection, 0);

var dist = upperPlaneInOrigin.distanceToPoint(upperClippingPlanePositionProxyObjPosition);
var upperClippingPlane = new THREE.Plane(upperClippingPlaneRotationProxyMeshWordDirection, dist*-1);

//  clipping plane update
_this.myUpperClippingPlane.copy(upperClippingPlane);

我找到了延迟的原因。在我的矩阵更新代码中,我只在文本对象移动时对其使用updateMatrix()。为了确保其子对象(包括辅助对象网格)立即更新,我必须调用UpdateMatrix World(true),这确保剪裁平面的计算正确

一些代码如何?@pailhead我添加了一个简短的代码片段,其中有一张图片演示了我的概念