我有Three.Shape,我可以申请挤压 为了得到一架飞机,我首先绘制了一个正方形然后应用拉伸
var squareShape = new THREE.Shape();
squareShape.moveTo( 0,0 );
squareShape.lineTo( 0, sqLength );
squareShape.lineTo( sqLength, sqLength );
squareShape.lineTo( sqLength, 0 );
squareShape.lineTo( 0, 0 );
var geometry = new THREE.ExtrudeGeometry( squareShape,extrudeSettings);
现在我的浏览器上出现了一个3D正方形。
接下来我想在其顶面应用256x256的图像纹理。怎么做?
答案 0 :(得分:4)
如果你看一下THREE.js中的src / extras / geometry / ExtrudeGeometry.js,你会看到这些评论。
例如,您可以说(显然不会直接运行,因为它不完整)
// The face material will be index #0. The extrusion (sides) will be #1.
var extrudeSettings = { amount: 10, bevelEnabled: true, bevelSegments: 3, steps: 4, bevelThickness: 8, material: 0, extrudeMaterial: 1 };
当您创建网格时,您可以创建2个材质并将它们分配给网格。
var mesh = THREE.SceneUtils.createMultiMaterialObject( geometry, [ new THREE.MeshLambertMaterial( { color: color } ), new THREE.MeshBasicMaterial( { color: 0x000000, wireframe: true, transparent: true } ) ] );
希望这能让你走上正确的道路。
在旁注上,与其他答案相关,您希望使用拉伸来创建尺寸类似于正方形但具有斜面的东西。一个例子是如果你试图绘制骰子并想要绕过边缘。
答案 1 :(得分:0)
如果您想要的只是一个立方体,为什么要挤出?为什么不使用CubeGeometry。