2013-03-27 109 views
0

我最近開始玩three.js,我使用terrain.js演示作爲我正在開發的設計項目。自定義terrain.js(three.js)需要添加lambert /線材

我想添加混合着色器「wireframe/lambert」 默認只有線着色器。

這是從演示代碼,使用基本材料:

var matrix = new THREE.MeshBasicMaterial({ 
      color:0x10ce58, 
      wireframe:true 
     }); 

     var geometry = new THREE.PlaneGeometry(width, height, modelWidth, modelHeight); 
     mesh = new THREE.Mesh(geometry, matrix); 
     mesh.doubleSided = false; 

,我想是這樣,但我只得到了「蘭伯特」的渲染,而不是蘭伯特和線組合,任何想法?

var darkMaterial = new THREE.MeshLambertMaterial({ color: 0xffffff , shading: THREE.FlatShading, overdraw: true}); 
    var wireframeMaterial = new THREE.MeshBasicMaterial({ color: 0x10ce58, wireframe: true, transparent: true }); 
    var multiMaterial = [ darkMaterial, wireframeMaterial ]; 


     var geometry = new THREE.PlaneGeometry(width, height, modelWidth, modelHeight); 
     mesh = new THREE.Mesh(geometry, multiMaterial); 
     mesh.doubleSided = false; 

感謝您對晚期的時候,

問候

-Manuel

+0

而不是新的THREE.MESH嘗試THREE.SceneUtils.CreateMultiMaterialObject – uhura 2013-03-27 09:09:02

+0

你好Uhura,我試圖玩「創造多材料,但它似乎並沒有工作。這次我使用喬的原始地形生成器。由於我在嘗試將攝像頭對準前一個示例時遇到了一些問題。最後兩者非常相似。我會在下面發表我的例子。謝謝你的幫助! – Manuqc 2013-03-27 22:53:38

+0

這是來自喬的演示的原始「分形地形生成器」的一個jsfiddle:http://jsfiddle.net/uSrsW/2/這是我正在進行的工作,我修改了嵌入的javascript以添加多物體功能,儘管我我沒有得到任何呈現。不知道什麼是錯的。這裏是鏈接:http://jsfiddle.net/xnqUb/3/ – Manuqc 2013-03-27 23:00:20

回答

1

這是我用我的非工作示例代碼的材料(http://jsfiddle.net/xnqUb/3/

var geometry = new THREE.PlaneGeometry(width, height, model.length - 1, model.length - 1, materials); 
     materials = [ 
        new THREE.MeshLambertMaterial({ color: 0xffffff, shading: THREE.FlatShading, overdraw: true }), 
        new THREE.MeshLambertMaterial({ color: 0x10ce58, wireframe: true,}) 
       ]; 

    var mesh = new THREE.Mesh(geometry); 

    object = THREE.SceneUtils.createMultiMaterialObject(geometry, materials); 
+0

此外,我想獲得一個非常簡單的「軌跡球導航」就像下面的例子:http://mrdoob.github.com/three.js /examples/misc_controls_trackball.html希望您或某人能幫助我獲得多種材質和軌跡球攝像頭,感謝您的幫助,我非常感謝。 – Manuqc 2013-03-27 23:05:57

+0

[我更新了你的小提琴](http://jsfiddle.net/uSrsW/4/)與THREE.SceneUtils.CreateMultiMaterialObject – uhura 2013-03-27 23:26:39

+0

嗨Uhura,非常感謝幫助我!雖然我意識到,當「多邊形」數更高時,我得到一些錯誤: – Manuqc 2013-03-28 16:19:57