【发布时间】:2021-12-01 18:53:04
【问题描述】:
我正在使用 ExtrudeBufferGeometry 绘制曲线/多边形。 通常它总是有封闭的末端。 例如:
我的目标是画出类似的形状,但像这样开放式
请注意,我的目标不是“LINES”或“Planes”。它必须有拉伸,我只希望连续点与角度保持结合(角度可以是弧度中的任何浮点值)
【问题讨论】:
标签: three.js geometry shapes curve
我正在使用 ExtrudeBufferGeometry 绘制曲线/多边形。 通常它总是有封闭的末端。 例如:
我的目标是画出类似的形状,但像这样开放式
请注意,我的目标不是“LINES”或“Planes”。它必须有拉伸,我只希望连续点与角度保持结合(角度可以是弧度中的任何浮点值)
【问题讨论】:
标签: three.js geometry shapes curve
您的解决方案在于in the ExtrudeGeometry documentation,其中指出:
使用此几何体创建网格时,如果您想为其面和拉伸侧面使用单独的材质,您可以使用一系列材质。第一种材料将应用于面部;第二种材料将应用于侧面。
因此,在生成网格时,只需传递 2 个材质,第一个带有 visible: false 的材质不会被渲染。
const geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings );
const materialFace = new THREE.MeshBasicMaterial( { visible: false } );
const materialSide = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
const mesh = new THREE.Mesh( geometry, [materialFace, materialSide] ) ;
【讨论】:
curveShape.holes.push(curveShape)。哪个有效,但必须积极创造形状。你的方法非常有效。非常感谢。
ExtrudeGeometry 是用该功能构建的。