Auslesen von Vertexe einer BBSphere

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

HyDr0x

Betreff: Auslesen von Vertexe einer BBSphere

BeitragFr, März 27, 2009 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Ich versuche alle Vertexe einer BlitzBasic Sphere auszulesen um an die globalen Vertexkoordinaten zu kommen. Bei einem BBCube klappte das schon ganz gut, bei einer Sphere ists ne Katastrophe (liegt wohl an der Komplexität der Sphere gegenüber nem Cube).

Folgende Funktion verwende ich dabei:

obj[0] ist dabei die EntityID

Code: [AUSKLAPPEN]

surcount=CountSurfaces(obj[0])

   For sur=1 To surcount
      surface=GetSurface(obj[0],sur)
      
      tricount=CountTriangles(surface)
      For tr=0 To tricount-1
      
         Dim vector(2,2)
      
         v[0]=TriangleVertex(surface,tr,0)
         v[1]=TriangleVertex(surface,tr,1)
         v[2]=TriangleVertex(surface,tr,2)
      
         For k=0 To 2
            TFormPoint(VertexX(surface,v[k]),VertexY(surface,v[k]),VertexZ(surface,v[k]),obj[0],0)
            vector(k,0)=TFormedX()
            vector(k,1)=TFormedY()
            vector(k,2)=TFormedZ()
         Next
                Next
        Next



EDIT: Ich hab mir mal die Vertexkoordinaten im debugger angeschaut, da ist mir aufgefallen, dass die bis zum ca. 15. Triangle vollkommen identisch sind. Danach eiern sie immer an der selben Stelle rum. Mal bei (-1/1-20) dann wieder (1/1/20) dann (1/1/19) wieder (1/1/20) usw. dabai müssten die sich doch mal vom Fleck bewegen ...

Xaymar

ehemals "Cgamer"

BeitragSa, März 28, 2009 0:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics3D 800,600,0,2      ;sorry ist angewohnheit ;)
SetBuffer BackBuffer()

sphere = CreateSphere(32);Tiefe

SurfC = CountSurfaces(sphere)
For SurfA = 1 To SurfC
   Surf = GetSurface(sphere, SurfA)
   VertC = CountVertices(Surf)
   For VertA = 0 To VertC-1
      DebugLog VertA + "|" + VertexX(Surf, VertA)+"/"+VertexY(Surf, VertA)+"/"+VertexZ(Surf, VertA)
   Next
Next

WaitKey()
End


Dein Problem ist: Du benutzt keine Floats. Somit speichert er alles in Integer ab(keine kommazahlen)
Warbseite
 

HyDr0x

BeitragSa, März 28, 2009 0:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, thx! Ja das wars xD. Muss mich erstma wieder an BB gewöhnen. Dadurch das ich den Variablen keinen Typ zuordnen muss wie float x oder int y vergess ich unheimlich schnell das zu tun wenns drauf ankommt Wink. Schande über mich.


EDIT: hat sich erledigt xD

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group