Hallo,
ich habe Dual Contouring (vorerst) in C# in Unity mit Hilfe diese
Artikels implementiert. Zur Berechnung der Vertexe verwende ich die "
Methode der kleinsten Quadrate".
Ich hab ein paar Tests mit unterschiedlichen Intersection-Punkten und Normals durchgeführt. Bei 3 Intersections und Normals auf der X-, Y- und Z-Achse scheint alles perfekt zu laufen.
Wenn ich aber mehr Intersection-Punkte habe, z.B. 4, dann läuft es nicht mehr wie erwartet:
Wenn alle Normals in genau die selbe Richtung zeigen, dann erhalte ich bei der Berechnung Matrizen, deren Determinante 0 ist, jedoch muss ich durch diese Determinante teilen. Somit erhalte ich auch keinen Punkt für den Vertex, weil man nicht durch 0 teilen kann.
Wenn ich die Normals aber ein kleines bisschen anders ausrichte, dann kann ich zwar den Vertex berechnen, aber dieser befindet sich dann in den aller meisten Fällen weit außerhalb des Würfels.
Kann mir jemand sagen, ob und was ich falsch gemacht habe?
Gruß
MazzMan