kostenloser Webspace werbefrei: lima-city


OpenGL glDrawArrays zeichnet nicht richtig?

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    Wenn ich ein Vertex/Normalen Array erzeuge und binde, wenn man das so nennt
    glNormalPointer(GL_FLOAT, 0, normals);
    glVertexPointer(3, GL_FLOAT, 0, vertices);

    und ich es mit
    glDrawArrays(GL_TRIANGLES, 0, 120);

    darstellen will erzeugt es nur schei*e (soll eine Kugel sein):
    http://krisi12345.lima-city.de/Screen-Pics/opengl-fehler1.png

    Die Daten der Kugel sind hier (erste Zeile Vertex und zweite Normalen):
    http://krisi12345.lima-city.de/Model.txt

    Woran liegt das??? Und wie genau berechnet man den Wert des dritten Parameters von glDrawArrays?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich weiß nicht, woher du die Daten für die Vertices bekommst aber ich würde dir aus Performance-Gründen empfehlen, dass du die Arrays indizierst. Dazu solltest du dich mal über die Funktionalität von glDrawElements informieren. Auf diese Weise würdest du eine menge Speicherplatz sparen. Was dein Bild angeht vermute ich, dass du die Vertices nicht in der Reihenfolge abgespeichert hast, dass sie als die richtigen Dreiecke ausgelesen werden können. Bedenke, dass jeder Vertex für mehrere Dreiecke benötigt wird und du die Daten direkt eingibst, was bedeutet, dass du ihn für jedes Dreieck erneut speichern musst.

    Der dritte Parameter von glDrawArrays gibt an, wieviele Vertices eingelesen werden. Das bedeutet bei GL_TRIANGLES, dass pro Dreieck 3 Vertices eingelesen werden. 120 und GL_TRIANGLES erzeugt also 40 Dreiecke. Damit ist klar, dass du abhängig von der Anzahl N der Dreiecke, die du mit GL_TRIANGLES zeichnen willst, als Parameter für glDrawArrays der Wert (3 * N) übergeben werden muss.
  4. Autor dieses Themas

    krisi12345

    Kostenloser Webspace von krisi12345

    krisi12345 hat kostenlosen Webspace.

    Hab das problem grad gelöst:
    Beim öffnen haben sich die Daten verschoben also war der anfang bei 1 und nicht bei 0.

  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!