2016-05-10 10 views
0

ポイント・オブジェクトとメッシュ・オブジェクトを同じシーンに追加しようとしました。しかし、一度メッシュを追加するとポイントが消えます。メッシュを削除すると、ポイントが再び表示されます。 three.jsが同時に両方のシーンを持つことは可能ですか?私は今r76を使用しています。 3つのパーティシステムでこれまでに働いていましたr63。これはバグですか、私がr63とr76の間の何か概念的に間違っていますか?three.js:THREE.PointsとTHREE.Meshを同じシーンにレンダリングすることは可能ですか?

同じ動作は、一緒にレンダリングできないThree.LineとThree.Pointsと同じようです。

これに関するアイデアはありますか?前もって感謝します。

+0

と間違って何それだけで私に来ました!あなたのポイントとラインはメッシュの後ろにあります! – dcromley

+0

@dcromley:下のコードは完璧に動作します。ありがとうございます。しかし、あなたがコメントで想定しているように、私のポイントはdepthTestでフィルタリングされています。私はピッキング・レイでメッシュ・サーフェス上にポイントを正確に配置します。これは古いバージョン(r63)とProjector.pickingRayでうまくいきました。おそらく、新しいレンダラーがrenderingOrderを変更しました。自分のポイントに負のrenderOrderプロパティを与えて、最初にレンダリングされるようにして問題を解決できます。 – mcauer

+0

フィードバックをお寄せいただきありがとうございます。この問題を避けるために、たとえば、「顔」の少し前に「唇」を置いています。 – dcromley

答えて

0

まあ、私は(あなたが任意のコードを持っていない)かむよ -

// - - - - points 
    geometry = new THREE.Geometry(); 
    material = new THREE.PointsMaterial({ size:.1 }); 
    for (i1=1; i1<=10; i1+=1) { 
    var x1 = Math.random()*2-1; 
    var y1 = Math.random()*2-1; 
    var z1 = Math.random()*2-1; 
    geometry.vertices.push(new THREE.Vector3(x1,y1,z1)); 
    } 
    object3d = new THREE.Points(geometry, material); 
    scene.add(object3d); 
// - - - - line 
    geometry = new THREE.Geometry(); 
    geometry.vertices = [ new THREE.Vector3(-1,1,0), new THREE.Vector3(0,-1,0), new THREE.Vector3(1,1,0) ]; 
    material = new THREE.LineBasicMaterial({ color:0xffffff }); 
    object3d = new THREE.Line(geometry, material); 
    scene.add(object3d); 
// - - - - sphere 
    geometry = new THREE.SphereGeometry(.5); 
    material = new THREE.MeshPhongMaterial({color:0xffffff}); 
    mesh = new THREE.Mesh(geometry, material); 
    mesh.scale.x = 2; 
    mesh.position.set(0, 1, 0); 
    scene.add(mesh); 
関連する問題