有没有一种方法可以创建带有宽度和厚度的Three.js 3D线系列?
尽管Three.js线条对象支持linewidth属性,但在WebGL上并不是所有浏览器平台都支持该属性。
以下是您在Three.js中设置linewidth的位置:
var material = new THREE.LineBasicMaterial({
color: 0xff0000,
linewidth: 5
});
最近,Three.js中带有宽度的缎带对象已被删除。
Three.js的管道对象生成3D挤出物,但基于Bezier,线条不会通过控制点。
有人能想到一种在Three.js中绘制具有某种用户定义的“体积”的线系列(折线、曲线)的方法,例如宽度、厚度或半径吗?
这个问题可能是这个问题的重新陈述: Extruding a graph in three.js。
考虑到我认为没有现成的方法,我很乐意参与创建一个简单的函数来回答这个问题。
但是,如果有现有的可行方法,请指出...
正如WestLangley建议的那样,一种可能的解决方案包括折线具有恒定的像素宽度——就像Three.js画布渲染器目前提供的那样。
这里显示了两个渲染器的比较:
Canvas and WebGL Lines Compared via GitHub Pages
然而,还有其他方式可以考虑3D线条,其中线条具有实际的物理结构。它们会投下阴影,对事件做出响应。这些也需要进行研究。
以下是两个由多个网格组成的线示例的 GitHub 页面链接:
这是一种“昂贵的解决方案。每个接头都由完整的球体组成。
我猜想,将它们构建为平滑的单个网格可能会很复杂,需要解决各种问题。因此,在此期间,这里有一个链接,可以部分可视化具有宽度和高度的3D线:
这些线条应该有宽度和高度。向上始终是Y方向。演示展示了这一点。但演示没有展示如何优雅地将角落连接起来...
TubeGeometry
是否足够?(您需要避免尖角。) - WestLangley