0

こんにちは、みんな、

私は化学の教師で、Ilmari Heikkinen が html5 rocks http://www.html5rocks.com/en/tutorials/webgl/jsartoolkit_webrtc/で作成した JSARToolkit デモを使用したいと考えています。

私は threejs デモhttp://www.html5rocks.com/en/tutorials/webgl/jsartoolkit_webrtc/AR_mediaStream_three.htmlを最新のthreejsリビジョン (n°58) で使用しようとしています。three.jsエクスポーター(ver2.6)。

メッシュをインポートするために使用したコードは次のとおりです。

function addModelToScene( geometry, materials )
    {
var material = new THREE.MeshFaceMaterial( materials );
        mesh = new THREE.Mesh( geometry, material );
        mesh.rotation.x = 2*Math.PI/2;
        mesh.rotation.y = 2*Math.PI/2;
        mesh.rotation.z = 2*Math.PI/2;
        mesh.position.x = 0;
        mesh.position.y =  0;
        mesh.position.z = -50;
        mesh.scale.set(30, 30, 30);
        m.model.matrixAutoUpdate=false;
        m.model.add(mesh);
        scene.add(m.model);
    }   

for(var i in markers){var m=markers[i];
    if(!m.model){m.model=new THREE.Object3D();
        var jsonLoader = new THREE.JSONLoader();
    jsonLoader.load( "models/eau.js", addModelToScene );
}
copyMatrix(m.transform,tmp);
m.model.matrix.setFromArray(tmp);
m.model.matrixWorldNeedsUpdate=true;
}

eau.jsそして、これが私が使用している3Dモデルです:

問題は、分子が透明のように黒く見えることです。

このモデルは、https ://github.com/stemkoski/stemkoski.github.com/blob/master/Three.js/Model.html のような単純な例のようにインポートすると正しく機能します。

4

2 に答える 2

0

結論として、addModelToscene関数は(スケロジーのおかげで):

    function addModelToScene( geometry, materials )
    {
        var theMeshFaceMaterial = new THREE.MeshFaceMaterial( materials );
        var i, len;
        for (i = 0, len = theMeshFaceMaterial.materials.length; i < len; i++) {
            theMeshFaceMaterial.materials[i].side = THREE.DoubleSide;
        }
        mesh = new THREE.Mesh( geometry, theMeshFaceMaterial );
        mesh.position.z = -50;
        mesh.scale.set(30, 30, 30);
        marker.object3d.add(mesh);
    }   

そして、それは魅力のように機能します。

シーンのアスピリン

于 2013-09-17T18:06:34.083 に答える