如何为CubeGeometry中的一个特定面设置不同的几何Three.ShapeGeometry?
我试过这个
var rectLength = 120, rectWidth = 40;
var rectShape = new THREE.Shape();
rectShape.moveTo( 0,0 );
rectShape.lineTo( 0, rectWidth );
rectShape.lineTo( rectLength, rectWidth );
rectShape.lineTo( rectLength, 0 );
rectShape.lineTo( 0, 0 );
var geom = new THREE.ShapeGeometry( rectShape );
var geometry = new THREE.CubeGeometry( 256, 100, 256 );
geometry.faces[0] = geom;
geometry.faces[0].needsUpdate = true;
答案 0 :(得分:1)
面不是几何体,您无法为其指定几何体,因为它是一种完全不同类型的对象和概念。
面是一系列顶点,而不是形状,由索引号引用。您创建顶点然后告诉面部构成面的顶点的索引号。 Face3将有3个索引并形成一个三角形,Face4将有4个索引并形成一个4边多边形。
如果您查看我在下面提供的链接,我的回答应该更清楚。
BTW - 出于一个明显的原因,你无法将形状用作面部。形状具有任意数量的顶点,这些顶点很容易超出面(3或4)的范围,这意味着您可以拥有2个点的形状或100个点的形状。