0

私は最近、three.js を使い始めました。現在取り組んでいるデザイン プロジェクトの出発点として、terrain.jsデモを使用しています。

ハイブリッド シェーダ「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;

お忙しい中、ありがとうございました。

よろしく

-マヌエル

4

1 に答える 1

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);
于 2013-03-27T23:02:07.943 に答える