2013-02-25 35 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