Minib3d Triangle löschen problemchen
Übersicht

![]() |
AnniXaBetreff: Minib3d Triangle löschen problemchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi =)
zum löschen eines einzelnen triangles aus einer surface in minib3d hab ich folgende funktion geschrieben: Code: [AUSKLAPPEN] Function DelTriangle(Surface:Tsurface, ToDelTri:Int)'geht alle tris durch, löscht sie alle, und erstellt alle neu (auser das zu löschende)
'ermitteln Local NumberOfTriangles = CountTriangles(Surface:Tsurface) - 1' (minus 1 weil eines ja dann entfernt wird 'arrays erzeugen Local TriangleArrayA:Int[NumberOfTriangles] Local TriangleArrayB:Int[NumberOfTriangles] Local TriangleArrayC:Int[NumberOfTriangles] 'alle tris merken, also die 3 ekpunkte eines jeden tri´s For i = 0 To NumberOfTriangles -1 '-1 weil es bei 0 zu zählen beginnt 'fragen ob aktuelles triangle "i" das zu löschende ist: If i = ToDelTri Then 'wenn ja, dieses nicht merken! evtl -2 ? Else TriangleArrayA:Int[i] = TriangleVertex(Surface:Tsurface,i,0) TriangleArrayB:Int[i] = TriangleVertex(Surface:Tsurface,i,0) TriangleArrayC:Int[i] = TriangleVertex(Surface:Tsurface,i,0) EndIf Next 'alles aus der surface löschen :( ClearSurface (Surface:Tsurface,False,True)'also alle tris, nich aber die vertex dings 'nun alle tris wieder neu erstellen, aus den gemerkten daten: For i = 0 To NumberOfTriangles -1 '-1 weil es bei 0 zu zählen beginnt AddTriangle(Surface:Tsurface,TriangleArrayA:Int[i],TriangleArrayB:Int[i],TriangleArrayC:Int[i]) Next End Function erst werden alle eckpunkte aller tri´s gemerkt, auser das zu löschende, das wird nicht gemerkt, dann werden alle tri´s mit clearsurface entfernt, und dann aus den gemerkten eckpunkten alle wieder hergestellt. aber irgendwie funktioniert es nicht, es werden immer alle tri´s gelöscht, und keine wiederhergestellt. wo hat sich mein fehler versteckt? wenn ich die zeile mit ClearSurface zu testzwecken auskommentiere bleibt das programm hängen (keine rückmeldung), es sei denn ich verwende ein simples mesh z.B. einen würfel. bei eine mesh aus z.b. 2 würfeln bleibt es hängen. |
||
|moonForge|
Ich bin Pokémon Meisterin seit 1998! |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] TriangleArrayA:Int[i] = TriangleVertex(Surface:Tsurface,i,0) TriangleArrayB:Int[i] = TriangleVertex(Surface:Tsurface,i,0) TriangleArrayC:Int[i] = TriangleVertex(Surface:Tsurface,i,0) sollte: Code: [AUSKLAPPEN] TriangleArrayA:Int[i] = TriangleVertex(Surface:Tsurface,i,0) TriangleArrayB:Int[i] = TriangleVertex(Surface:Tsurface,i,1) TriangleArrayC:Int[i] = TriangleVertex(Surface:Tsurface,i,2) sein. mit oberen Code wären alle deine Tris nur auf einem Punkt konzentriert (also für das jeweilige Vertex). |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
AnniXa |
![]() Antworten mit Zitat ![]() |
---|---|---|
ach du schreck, das habe ich übersehen :O
war wohl etwas spät gestern nacht ![]() nun klappt es auch so einigermasen :O |
||
|moonForge|
Ich bin Pokémon Meisterin seit 1998! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group