我创建了一个环形几何体,用于表示球体中的平面。这种几何形状的问题在于,如果我将相机垂直放置,它就会消失,因为它没有宽度。
要解决这个问题,我想挤出这个几何体,而不是直接创建网格物体。
关于如何通过推动点和孔等方式创建挤出所需的形状有很多帖子,但没有关于如何从几何图形中正确获取此顶点的帖子。
首先,我尝试直接创建通过环几何体顶点的形状。它在“顶点”处未定义时失败:
var orb_plane_shape = new THREE.Shape(ring_geom.vertices.clone());
然后,我尝试复制顶点矢量,逐个放置,并将其赋予Shape构造函数。它有效,但有以下问题:
-A警告:无法对多边形进行三角测量! - 环中没有明显的孔,看起来顶点连接顺序已经改变。
var vertices = [];
for (var i = 0; i < ring_geom.vertices.length ; i++) {
vertices.push(ring_geom.vertices[i].clone());
}
var orb_plane_shape = new THREE.Shape(vertices);
// extrude options
var options = {
amount: 1, // default 100, only used when path is null
bevelEnabled: false,
bevelSegments: 2,
steps: 1, // default 1, try 3 if path defined
extrudePath: null // or path
};
// geometry
var geometry = new THREE.ExtrudeGeometry( orb_plane_shape, options );
plane_orb = new THREE.Mesh(geometry, material_plane_orb);
我想建立一种方法,将任何标准2D几何体(圆形,环形......)转换为形状,以便能够将其挤出。
由于