Hinzufügen von Geometrie zu THREE.Object3D

7

Ich habe diesen Beitrag bearbeitet, um es klarer zu machen.

Nun, ich versuche hier eine Kachel darzustellen, die aus 8 verschiedenen Dreiecken besteht. Jedes Dreieck sollte in der Lage sein, die Farbe unabhängig voneinander zu ändern.

Also das Problem, das ich habe, ist, dass wenn ich die Farbe eines einzelnen Dreiecks ändere, es die Farbe der Linien dazwischen ändert, wie du im zweiten Bild sehen kannst.

Dies ist der Code zum Erstellen einer Kachel:

%Vor%

Um den Zustand eines Dreiecks der Kachel zu aktualisieren, verwende ich diesen Code:

%Vor%

Ist dies der richtige Weg, um ein Material zu modifizieren?

Ich habe den Code ein wenig vereinfacht, um mein Problem besser darzustellen. Der echte Code befindet sich jedoch in diesem Repository Ссылка . Wenn Sie einen Blick darauf werfen wollen, habe ich es in Ссылка implementiert.

    
tul1 29.07.2017, 16:10
quelle

1 Antwort

5
  

Das Problem, das ich habe, ist, dass wenn ich die Farbe eines einzelnen Dreiecks ändere, es die Farbe der dazwischen liegenden Linien ändert, wie du im zweiten Bild sehen kannst.

Ich habe mir Ihren Quellcode angeschaut, und wenn Sie nur die Farbe der dazwischen liegenden Zeilen beeinflussen möchten, damit sie weiß bleiben, entfernen Sie einfach die Zeile, die die Farbe von% ändert. co_de%:

%Vor%

Ergebnis

Wenn Sie die Farbe der Linien nicht berühren, bleiben sie weiß wie bei der ersten Erstellung:

Gruppierung

Wenn Sie alle Kacheln zu einem Objekt zusammenfassen möchten, sollten Sie ein THREE.Group-Objekt in Ihrem globalen Bereich (außerhalb aller lineMaterial -Schleifen). Dann können Sie jedes Dreieck in jeder Iteration der for() -Schleife einzeln hinzufügen. Hier ist ein Pseudocode, wie man das erreicht:

%Vor%     
Marquizzo 01.08.2017, 16:51
quelle

Tags und Links