Wie man VBO arbeiten
Ich versuche mit diesem tutorial
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=45
Lade ich es in mein visual studio 2008 kompilieren Sie es, und sagt es fehlt die Datei: "GLES/glplatform.h" so, ich google die Datei... dann jammert fehlende Datei: "KHR/khrplatform.h", so dass ich google das auch... dann jammert alles möglich", GLDouble nicht deklarierten Bezeichner" etc etc, obwohl das tutorial ist #include, die sollten ihn haben.
Ich weiß nicht, wo Sie anfangen dies zu beheben, könnte jemand geben Sie mir nur code wie zu verwenden VBO richtig (zeichnen Sie einen Würfel etc), jeden code, den ich versucht habe einfach abstürzt oder nicht kompilieren. ich kann nicht finden, etwas, das funktioniert.
- Wo in Archiv ist glplatform.h #enthalten? Wenn überhaupt sollte es zu Klagen über eine fehlende glaux.h, das ist sehr, sehr veraltet.
- Ja, könnten Sie mir Beispiel, das funktioniert und nicht veraltet? alle die ich finden kann ist alt, Mist...
Du musst angemeldet sein, um einen Kommentar abzugeben.
ok, also lasst uns beginnen mit dem, was Sie sollten überprüfen. In Ihrem compiler-look für gl.h . Wenn Sie es nicht finden, herunterladen Windows SDK. Wenn Sie mithilfe von Visual Studio für Sie gut, wenn nicht nur die OpenGL-Dateien. Ich schlage vor, Sie die volle SDK, weil ich noch nicht gefunden gl.h separatelly, wahrscheinlich, weil jeder hat es.. Wie bei der SDK, Windows Server 2003 R2 Platform SDK diese openGL-Dateien sind sicher, aber Sie sollten versuchen, zuerst Windows 7/Vista SDK.
Nun. Sie erwähnt GLES. Ich weiß nicht, wie GLES arbeiten, weil ich benutze GLEW. In vielerlei Hinsicht NeHe schrieb tolle tutorials, aber Sie sind immer veraltet. Also, wenn du gerne weiter mit mir, nutzen GLEW. Sie werden Sie auf start + Sie müssen die Bibliothek. Wie diese
Auch haben Sie zu kopieren glew32.dll Ordner wo deine EXE ist.
Nun sollten die Einstellungen für die Erstellung von VBO. Ich denke mal, dass du bereits gelernt, wie man erstellen Sie leere Fenster, wenn nicht hier der link. Haben Sie zum download GLUT(oder besser freeglut), wenn Sie nicht bereits, aber es ist weit verbreitet, und Sie müssen es später eh.
Werden wir einige Ergänzungen im code. In der main func, call init() unter der CreateWindow-Aufruf wie dieser
machen und function init wie folgt Aussehen:
machen auch reshape() func:
und fügen Sie diese Zeile unter glutDisplayFunc(display);
Nun sind wir bereit für VBO eigentlich war dies nur trivial-erstellen von Fenster, wo wir sehen können die Ausgabe aber als Sie sagten, Sie hatten einige Probleme, die ich besser schrieb es nieder, als für andere.
So, wie ' s VBO wenn Sie wollen das Ergebnis sehen Sie nun hier den code, ich werde versuchen, Ihnen davon zu erzählen:
machen Globale variable
bevor irgendwelche Funktionen
hinzufügen dieser Teil auf der Unterseite der init () - Funktion:
und dieser Teil, in display-Funktion, die ist leer, in diesem moment:
Sollten Sie sehen schwarze Dreieck.
Also der code. Sie machen eine Art von Daten.
Dann generieren Sie neue VBO-ID, die nicht in Gebrauch ist(1 in unserem Beispiel jedes mal 🙂 ).
Nach dieser mit Binden Anruf, den Sie eigentlich schaffen, das VBO und mit BufferData nennen Sie Zeichen Ihrer Daten an das VBO. In anzeigen, deaktivieren Sie Fenster verwenden, wählen Sie in der Zeichnung Farbe und jetzt das Binden bedeutet, AKTIVIEREN Sie diese Puffer-Objekt. Sie können die Anzahl der VBO in ARRAY_BUFFER aber nur eine aktiv sein kann. VertexPointer ist zu stellen, Anfang der VBO und schreitet zwischen den Elementen an. Wie Sie sehen können, die wir verwendet X-und Y-Koordinaten als Elemente des stride-2*sizeof(float). Das ist, weil der Breite ist in bytes. Finnaly DrawArrays ist render-Aufruf, etwas, was Sie nennen würde glBegin() und glEnd(). Sie sagen, was zu zeichnen, und in welchem Bereich. glFlush() ist nur für die Anzeige gerendert Zeug.
Wenn Sie verloren sich irgendwo im code hier ist es an einer Stelle:
PS: ich weiß, das ist Monat alte Frage, aber ich denke alle Fragen sollten beantwortet werden, damit alle, die sich für das gleiche problem nicht hier zu bekommen, und nichts finden 😉
PSS: Wenn dieses Beispiel fragt DLL müssen Sie diese im freeglut oder GLEW bin-Dateien 😉
Edit1: ich habe vergessen, dafür machen Sie also nicht denselben Fehler, nachdem Sie fertig sind mit VBO zu zerstören, um zu verhindern, dass Speicher-Leck. Als VRAM ist nicht so groß, diese können schwerwiegend sein, hier ist, wie es zu tun: