Suchergebnisse
Suchergebnisse 1-10 von insgesamt 10.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
Hallo, ich versuche mal den Sachverhalt im Detail zu schildern. Ich prüfe 3D-Modelle auf Kollision. Funktioniert auch perfekt. In Form1 habe ich ein OpenGL-Fenster, also die Visualisierung. In der Form1 ist auch eine Liste deklariert als: IntersectionVolumes As List(Of Mesh). Für die Kollisionsprüfung habe ich: 1. ContourPath as List(Of Geometry3D) ==> Eine Liste mit Linien, Kreisausschnitten oder Vollkreis und Kurven 2. StaticEntities As List(Of Mesh) ==> Eine Liste mit 3D-Modellen welche nicht…
-
@RodFromGermany Die Liste auf zu Teilen ist ja nicht mein Problem Ich habs doch nur so zum besseren Verständnis hingeschrieben.
-
@RodFromGermany Wie oben geschrieben, das läuft ja alles schon. Ich möchte das jetzt nur in den Threads auslagern
-
Also ich hab das so gelöst: VB.NET-Quellcode (59 Zeilen) Ergebnis: 9166 Kollisionen / 20.86 Sec mit Visualisierung( 4.05 Sec ). Gibt es einen anderen Lösungsansatz? CodeTags korrigiert ~VaporiZed
-
Mit parallel.for im Schnitt 21Sec Mit for im Schnitt 24Sec Deswegen hab ich gefragt ob es einen anderen Lösungsansatz gibt?
-
Lösungsansatz 2 von mir: Quellcode (11 Zeilen) Einfach 4 fixe Threads. Mit parallel.for im Schnitt 21Sec Mit for im Schnitt 24Sec Mit 4 Threads ===== 13 Sekunden ===== Hab noch probiert mit 2, 6, 8 und 12 Threads. Das beste Ergebnis sind 4 Threads. Das ist insofern interessant weil System.Environment.ProcessorCount = 12. Die CPU Auslastung geht auf max. 40% und das nur kurzzeitig. Im Schnitt 33%. Müsste das beste Ergebnis nicht bei 12 Threads leigen? Wenn jemand noch einen anderen Vorschlag hat,…
-
Jetzt hab ich das in allen Variationen probiert. Parallel , For, For Parallel, Parallel, For Parallel, Parallel, Parallel IMMER das gleiche. Knapp 21 Sekunden. Jetzt ist mir noch etwas interessantes aufgefallen. Die Form wo die Simulation stattfindet rufe ich wie folgt auf. Dim f as Frm_Simulation = New Frm_Simulation() f.Show(Me) Wenn ich die Form das ALLER erste mal Aufrufe dauert die Simulation 21 Sekunden. Jetzt schließe ich das Fenster mit X und starte es neu. Jetzt ändern sich die Rechenze…
-
@Takafusa Deine Vermutung mit den Objekten war voll richtig. Ich habe das Event.Disposed zich mal angeschaut und immer wieder übersehen, das ich eine Liste nicht zurücksetze. Die Transformation AABB ( BoundingBox des ganzen Entities) alleine ist für mich zu ungenau. Ich Programmiere kein Spiel, sondern eine Simulation für Bearbeitungsmaschinen. Der CheckType.Geometry3D ist in Vergleich zur Genauigkeit die schnellste Möglichkeit auch bei Komplexen 3D-Geometrien eine Kollision zu erkennen. Es ist …
-
Passend zu dem Thema hätte ich noch ein Problem. Ich lasse die Kollisions-Überprüfung in einem eigenen Thread laufen, damit das Programm während der Berechnung nicht einfriert, wenn große Datensätze vorliegen. Das Problem ist, das ich das jetzt durch die Parallel.For nicht mehr von Außen abbrechen kann. Also über einen Button_Click. Hier der schematische Code. Wie könnte man das lösen??? VB.NET-Quellcode (77 Zeilen)
-
Kannst mir ein Beispiel posten bitte?