2013-02-25 126 views

回答

1

首先看的是THREE.js zip中提供的这个例子。

实例/ webgl_geometry_shapes.html

下位是为了举例的目的。

关键是你创建了一系列Vector2(我提到的文件中的144-165行),它们定义了建筑物的角落。

var californiaPts = []; 
californiaPts.push(new THREE.Vector2 (610, 320)); 
californiaPts.push(new THREE.Vector2 (450, 300)); 
californiaPts.push(new THREE.Vector2 (392, 392)); 
californiaPts.push(new THREE.Vector2 (266, 438)); 

下一步是那些线条转换为

var californiaShape = new THREE.Shape(californiaPts); 

那么你一定要挤出形状的THREE.Shape(线167)。

var extrudeSettings = { amount: 20 }; // bevelSegments: 2, steps: 2 , bevelSegments: 5, bevelSize: 8, bevelThickness:5 

var geometry = californiaShape.extrude(extrudeSettings); 

此时你必须是一个几何对象,因此它可以变成一个网格,你可以申请一个材料,它的形状的挤压。

+0

感谢您的参考和示例代码片段。这当然有帮助。让我用这些创建一个原型并发布结果。 – Webgldev 2013-02-27 08:31:47

+0

我把我的图画成4个不同的形状,每个墙壁一个,然后挤出它们。我做4个形状,每个墙都可以有自己的纹理。然后我将几何图形合并到一个建筑物中。我认为,基于您列出的PDF,您可能也想这样做,因此您的建筑物不会完全对称。 – 2013-02-27 19:13:29

+0

是的,这也是我打算做的。这将给整个城市带来更现实的渲染。再次感谢。 – Webgldev 2013-03-06 16:01:59