2014-10-09 200 views
9

我創造使用擠壓幾何形狀,現在用擠出設置我需要增加我曾使用厚度的形狀bevelThickness它會沿y軸增加厚度,但需要沿着x軸和z軸增加如何增加沿着x和z軸的拉伸幾何的厚度 - three.js所

這裏我的工作jsfiddle

下面是我對擠出設置代碼,

var extrusionSettings = { 
      curveSegments:5, 
      steps: 10, 
      amount: 10, 
      bevelEnabled: true, 
      bevelThickness: 120, 
      bevelSize: 0, 
      bevelSegments: 8, 
      material: 0, 
      extrudeMaterial: 1 
     }; 

     var geometry1 = new THREE.ExtrudeGeometry(shape1, extrusionSettings); 

     var materialLeft = new THREE.MeshLambertMaterial({ 
      color: 0xd6d6d6,// red 
      transparent:true, 
      side: THREE.DoubleSide, 
      ambient: 0xea6767, 
      opacity:-0.5 
     }); 
     var materialRight = new THREE.MeshLambertMaterial({ 
      color: 0xcc49c3,//violet     
      side: THREE.DoubleSide, 
      ambient: 0xcc49c3 
     });   

     var materials = [ materialLeft, materialRight        
          ]; 

     var material = new THREE.MeshFaceMaterial(materials); 
     var mesh1 = new THREE.Mesh(geometry1, material);   
     object.add(mesh1); 
     object.rotation.x = Math.PI/2; 

     scene.add(object); 

下面是樣本圖像 enter image description here

沒有任何設置,以提高呢?任何人都可以引導我嗎?

+0

參見http://threejs.org/examples/webgl_geometry_shapes.html如何擠出的形狀有一個洞在裏面。 – WestLangley 2014-10-09 15:20:50

+0

@WestLangley [這裏](http://jsfiddle.net/Roobena/2g7wt4gk/)是我的另一個小提琴,我用這個孔來擠壓形狀,但是爲了創建這個需要2個路徑值(1個形狀和另一個這個洞),但在我的過程中,我將只能得到一個路徑值(外部路徑形狀),可能會生成另一個內部路徑(洞) – Roobena 2014-10-10 03:31:22

+0

您必須自己創建洞路徑...另外,花時間試驗演示中的每個參數值,並確保你理解它代表的是什麼。看看你的代碼,看起來你還不明白一切。 – WestLangley 2014-10-10 05:25:17

回答

3

最後我做了竅門修復它,我做了什麼只是我克隆了網格添加添加位置克隆網格,所以我得到了另一個內牆附近的牆壁,通過這種方式我添加了多個克隆與環,多個內壁附近其他創建的壁變厚,

演示:Fiddle

//outer wall mesh 
var mesh1 = new THREE.Mesh(geometry1, material); 
    object.add(mesh1); 

    var mesh_arr=new Array(); 
    for(i=0.1;i<15;i++) 
    { 

     //cloned mesh,add position to the cloning mesh 
     mesh_arr[i] = mesh1.clone(); 
     mesh_arr[i].position.set(i,i,i); 
     mesh_arr[i].updateMatrix(); 
     object.add(mesh_arr[i]); 

    } 

Result