gpt4 book ai didi

javascript - 如何获取 Three.js 模型的特定高度的顶点?

转载 作者:行者123 更新时间:2023-11-28 08:14:54 31 4
gpt4 key购买 nike

我有一个对象的 Three.js 模型。现在我对不同高度的轮廓感兴趣( Angular 点以及曲线上确定曲率的一些点)。目前,我们将模型转换为 CSG 库(csg.js)中的对象,将其与特定高度上的一个小平面框相交(因为不知怎的,只有一个平面是不可能的),然后创建一个图像并使用 OpenCV findContours () 来获取我们感兴趣的点。

模型越大,切片越多,这个过程就会变得有点慢,所以我想知道你们是否知道解决这个问题的更好方法。也许我只是在文档中看到了一些对我有帮助的东西,但到目前为止我找不到任何看起来对我有帮助的东西。

根据对象的不同,轮廓可能是凸的或凹的,因此解决方案需要在该部分上是通用的。

我真的很感激任何可能对我有帮助的意见或指示。

最佳答案

使用着色器 Material 。在制服中,设置

myUniforms = {
uClipPlane: { type: "v4", value: new THREE.Vector4( 0.0, 0.0, -1.0, -300.0) },
clipOffset: { type: "f", value: 1.0 },
}

clipPlane 定义将在其中剪切对象的平面。 ClipOffset 定义剪切过程的容差。

在顶点着色器中,设置

vec4 pos4 = modelViewMatrix * vec4( position, 1.0 ); 
vClip = dot ( uClipPlane, pos4);

并在片段着色器中设置

if (vClip < 0 || vClip > clipOffset ) discard;

您需要 ClipOffset 的原因与您在流程中需要一个盒子的原因相同,形状中的点永远不会位于精确的平面上,而是位于平面的某个小距离处。

关于javascript - 如何获取 Three.js 模型的特定高度的顶点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23720636/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com