2016-06-14 3 views
0

Ich betrachte das Beispiel hier: http://threejs.org/examples/#webgl_decalsPrevent Aufkleber nicht zeigt auf der Innenseite des Mesh

Wenn ich einen Aufkleber auf den Lippen schießen, die Orbital Kontrollen Mindestabstand einzustellen, und innerhalb des Mesh gehen, kann ich sehen, der Aufkleber auf der Innenseite des Netzes. Gibt es einen Weg dies zu verhindern? Ich versuche, den Aufkleber für etwas anderes zu verwenden, wo es nicht wünschenswert ist, das Abziehbild auf beiden Seiten zu zeigen. Da THREE.DoubleSide nicht der Standardwert ist, bin ich mir nicht sicher, wie dies geschieht.

+1

die Lippen der Kopf Mesh sind kontinuierlich, so dass es die gleiche Seite ist, wickelt sich die Aufkleber einfach darauf, das Abziehbild schießen und verstecken den Kopf (in der Konsole ' scene.remove (scene.children [5]) ') um zu sehen, was ich meine –

+0

@DerteTrdelnik Ich habe den ziemlich coolen Effekt gesehen, das Source Mesh zu entfernen, nachdem es komplett bespritzt ist. Gibt es trotzdem, um zu verhindern, dass der "Spiegel" des Png, der für das Abziehgitter verwendet wird, sichtbar ist? –

Antwort

0

Wenn Sie Ihr Material erstellen, legen Sie einfach fest, auf welcher Seite (oder beiden) der Aufkleber bei Verwendung von THREE.DoubleSide, THREE.FrontSide (Standard) oder THREE.BackSide erscheinen soll. Schauen Sie sich die material object für weitere Informationen ...

var decalMaterial = new THREE.MeshPhongMaterial({ 
    map: decalNormal, 
    transparent: true, 
    depthTest: true, 
    depthWrite: false, 
    polygonOffset: true, 
    polygonOffsetFactor: - 4, 
    side: THREE.DoubleSide 
}); 
+0

Derte hatte Recht, dass in diesem Fall das Netz tatsächlich in sich zusammenfaltet. In meiner ursprünglichen Frage habe ich festgestellt, dass THREE.DoubleSide nicht der Standard ist, also sollte es nicht auf beiden Seiten des Netzes erscheinen. –

Verwandte Themen