旋转父组后反应三纤维更新网格矩阵
React three fiber update mesh matrix after rotating parent group
感谢您花时间看我的问题。
我正在使用 Threejs 和 react-three-fiber。我正在尝试将小盒子连接到网格的两侧。我从 raycaster 获得了盒子网格的位置。
我的问题是旋转父组后,T 恤网格的矩阵似乎颠倒了。据我了解,光线投射器基于此矩阵工作。我确实尝试过 updateMatrix() 和 updateMatrixWorld() 但结果令人困惑。
像这样旋转组后更新子矩阵的标准方法是什么?
任何帮助将不胜感激。
这是我的问题的说明。请注意,红色鼠标助手在翻转后消失,因为它现在位于对面。
这是场景的组件结构。
return (
<a.group rotation={flipModelAnimation.rotation} ref={groupRef}>
<mesh
ref={modelRef}
geometry={glb}
>
<meshStandardMaterial attach="material" color="orange" />
</mesh>
{event && <MouseHelper event={event} />}
<Decals decals={decalArray} />
</a.group>
);
好的,所以当我看到它时,这很简单...我将鼠标助手放在我正在旋转的组中,所以自然地,它现在会出现在背面。所以不是因为矩阵错误。我认为鼠标助手本身并不重要,所以我最初甚至没有将它包含在代码示例中。我现在添加它是为了使问题和解决方案更清楚。
感谢您花时间看我的问题。
我正在使用 Threejs 和 react-three-fiber。我正在尝试将小盒子连接到网格的两侧。我从 raycaster 获得了盒子网格的位置。
我的问题是旋转父组后,T 恤网格的矩阵似乎颠倒了。据我了解,光线投射器基于此矩阵工作。我确实尝试过 updateMatrix() 和 updateMatrixWorld() 但结果令人困惑。
像这样旋转组后更新子矩阵的标准方法是什么? 任何帮助将不胜感激。
这是我的问题的说明。请注意,红色鼠标助手在翻转后消失,因为它现在位于对面。
这是场景的组件结构。
return (
<a.group rotation={flipModelAnimation.rotation} ref={groupRef}>
<mesh
ref={modelRef}
geometry={glb}
>
<meshStandardMaterial attach="material" color="orange" />
</mesh>
{event && <MouseHelper event={event} />}
<Decals decals={decalArray} />
</a.group>
);
好的,所以当我看到它时,这很简单...我将鼠标助手放在我正在旋转的组中,所以自然地,它现在会出现在背面。所以不是因为矩阵错误。我认为鼠标助手本身并不重要,所以我最初甚至没有将它包含在代码示例中。我现在添加它是为了使问题和解决方案更清楚。