Vertex Arrays - Es wird nichts angezeigt (Erledigt)

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

FreakForFreedom

Betreff: Vertex Arrays - Es wird nichts angezeigt (Erledigt)

BeitragMo, Sep 17, 2007 1:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute!
Ich poste ja eigentlich nicht gerne, sondern suche lieber die Weiten des mächtigen Googles ab, jedoch komm ich jetzt nicht mehr weiter.
Ich möchte ganz einfach eine Heightmap laden und dann alle X,Y,Z-Werte in ein Array schreiben, dass dann mit glDrawArrays() gerendert wird.

Anfangs wollte ich es mit VBO's machen. Es wurde nichts angezeigt.
Dann hab ichs mal mit Vertex Arrays ausprobiert, hat leider nichts geändert.

Wie bereits gesagt, ist mein Problem ganz einfach: Es wird was berechnet, die FPS sinken merklich, jedoch wird nichts angezeigt.
Ich bin sicher, es ist nur ein ganz kleines Problem, etwas, was ich übersehen habe. Aber ihr wisst ja selbst, wie "blind" man sein kann. Wink

Würd mich sehr über jede Hilfe freuen.
Hier mal der wichtigste Teil des Codes, hoffe es fehlt nichts:

Edit: Habs gefunden. Hatte die Function zum Erstellen des Vertex Arrays von einem Tutorial, desshalb dachte ich, sie würde ohne weiteres gehen. Tja, hab sie umgeschrieben, nun läufts. Smile

Code: [AUSKLAPPEN]
SuperStrict
Import pub.glew
//includes

Global ScreenWidth:Int = 800
Global ScreenHeight:Int = 600
Global Screendepth:Int = 0
Global HertzPerSec:Int = 60
Global Wireframe:Byte = 0
Global Camera:TCamera = TCamera.Create(ScreenWidth, ScreenHeight, 45.0, 0.1, 5000)
       Camera.PZ = 5

InitGl()

Global HM_URL:String = "data/Terrain.bmp"
Global HeightMap:TPixmap
Global Width:Int = 512
Global Height:Int = 512
Global Map:Float[Height,Width]
Const Resolution:Int = 4                                    ' Pixel per Vertex
Global SX:Float = 1.0, SY:Float = 1.0, SZ:Float = 1.0            ' Skalierungsfaktor des Terrains
   'Vertices
Global NumberOfVertices:Int = Width*Height*3
Global Vertices:float[NumberOfVertices]
   
   'Heightmap laden
HeightMap = LoadPixmap(HM_URL)
For Local x:Int = 0 To (Width - 1)
   For Local z:Int = 0 To (Height - 1)
      Map[x,z] = ReadPixel(HeightMap,x,z)
   Next
Next
HeightMap = Null
        'Vertexarray erzeugen
For Local x:Int = 0 To Width-1 Step Resolution
   For Local y:Int = 0 To Height-1 Step Resolution
      Vertices[(y+x*Height)*3] = (x*SX)
      Vertices[((y+x*Height)*3)+1] = (Map[x,y]*SY)
      Vertices[((y+x*Height)*3)+2] = (y*SZ)
   Next
Next

While Not KeyHit( KEY_ESCAPE )

   Clear()
   Controls()
   UpdateCamera()
   
   glEnableClientState(GL_VERTEX_ARRAY)

   glVertexPointer(3,GL_FLOAT,0,Vertices)
   glDrawArrays(GL_TRIANGLES,0,300)                    '300 ist nur eine Zahl zum testen...
   
   glDisableClientState(GL_VERTEX_ARRAY)

   Flip 0

Wend
//Alle Variablen und Pointer werden = Null gesetzt.
EndGraphics()
End
Mfg
F.F.F.
"Try and ERROR!"

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group