Ein entgegengesetztes Problem hier - wir sehen keine Gesichter, wo sie definiert sind. Vielleicht liegt dies daran, dass die Geometrie zwischen der Linie und dem Netz geteilt wird.
Ich habe dieses Problem heute behoben. Geometry
wird intern in BufferGeometry
konvertiert. Das Ergebnis dieser Konvertierung hängt vom Objekttyp (Netz, Linie usw.) ab. Im Beispiel von @makc wird die Geometrie als Geometrie eines Line
-Objekts konvertiert. Dadurch werden ein Positions- und Farbattribut erstellt. Wenn die Instanz von Mesh
mit demselben Geometry
-Objekt gerendert wird, gibt der Renderer dieselbe zwischengespeicherte Instanz von BufferGeometry
.
Dies ist der Grund, warum Sie diese grünen Dreiecke in der Demo sehen. Mesh
und Line
teilen sich das gleiche interne BufferGeometry
und interpretieren es unterschiedlich. Ich denke, wir können dieses Problem lösen, wenn wir versuchen, den Objekttyp beim Zwischenspeichern von BufferGeometry
.
Oder wir empfehlen einfach, zuerst BufferGeometry
: heat_smile:
@mrdoob Ich schlage vor, ein neues Label Wont't fix
einzuführen, es dem Problem zuzuweisen und es zu schließen. Ich denke nicht, dass es sinnvoll ist, dem Renderer einen Fix hinzuzufügen, wenn das Projekt das Rendern von Geometry
sowieso beendet. Die Lösung für dieses Problem ist die Verwendung von BufferGeometry
.
Hilfreichster Kommentar
Ich habe dieses Problem heute behoben.
Geometry
wird intern inBufferGeometry
konvertiert. Das Ergebnis dieser Konvertierung hängt vom Objekttyp (Netz, Linie usw.) ab. Im Beispiel von @makc wird die Geometrie als Geometrie einesLine
-Objekts konvertiert. Dadurch werden ein Positions- und Farbattribut erstellt. Wenn die Instanz vonMesh
mit demselbenGeometry
-Objekt gerendert wird, gibt der Renderer dieselbe zwischengespeicherte Instanz vonBufferGeometry
.https://github.com/mrdoob/three.js/blob/ec67749b0767e2727deebd52da2dbd3a4e7ab6a2/src/renderers/webgl/WebGLGeometries.js#L63 -L65
Dies ist der Grund, warum Sie diese grünen Dreiecke in der Demo sehen.
Mesh
undLine
teilen sich das gleiche interneBufferGeometry
und interpretieren es unterschiedlich. Ich denke, wir können dieses Problem lösen, wenn wir versuchen, den Objekttyp beim Zwischenspeichern vonBufferGeometry
.Oder wir empfehlen einfach, zuerst
BufferGeometry
: heat_smile: