LWJGL, flackern nach verschieben des Fensters

Guten tag.
Ich versuche mich gerade in OpenGl einzuarbeiten und folge dazu einer Tutorial Serie auf Youtube. 3D Game Engine Development Tutorial.

Momentan befinde ich mich im Tutorial 11 habe allerdings Probleme beim rendern.
[SPOILER][/SPOILER]
Es bestehen zwei Probleme:

[ol]
[li]Manche der faces werden nicht gerendert. Zuerst dachte ich, dass liegt am culling. Aber auch wenn ich selbiges expliziert deaktiviere ändert dies nichts.
[/li][li]Wenn man das Fenster bewegt und loslässt, beginnt das ganze Bild teilweise heftig zu flackern. Dieser Effect ist ziemlich zufällig. Manchmal verschwindet er durch erneutes bewegen sogar wieder. Das Flackern ist ziemlich unstetig. Kommt meiner Meinung nach also nicht vom double buffering.
[/li][/ol]

Hier ein Archiv mit einer jar zum testen und dem source Code.
Der meiste Code wurde aus den Tutorials abgetippt. (Außer die Mathe-classen. Die sind kopiert, ich war zu faul zum tausendsten mal eine Matrix-classe zu schreiben :o). Teilweiße mit leichten veränderungen. Lediglich die classen im package c.j.g.d3.util stammen von mir.

Solltet ihr die test jar ausführen wollen, müsst ihr das Archiv zuerst entpacken.
Das Programm erstellt einen Ordner:

new File(System.getProperty("user.home")
		+ "/.cjg/natives/lwjgl2.9.1")

Davon abgesehen hinterlässt es keine Artefakte auf eurem System.

Ich wäre froh wenn jemand helfen könnte.
ratlos

(wenn dies das falsche Subforum ist tut mir das leid)

Ist schon spät, die JAR schau’ ich morgen mal an (Code ist hoffentlich drin?), vielleicht wird auch @Fancy getriggert, bis dahin nur kurz: Flackern beim oder nach dem Verschieben des Fensters kenne ich so nicht, aber du kannst (weil’s einfach ist) mal testweise

System.setProperty(“sun.awt.noerasebackground”, “true”);

als erste Zeile in die “main” einfügen. (Wenn’s nix bringt, gleich wieder raus … und bei den anderen “üblichen Verdächtigen” in solchen Fällen weitersuchen: Ist der Grafikkartentreiber up to date? ;))

Vllt mal den opengl extension viewer runterladen, ein paar rendering tests durchführen, evtl graka bug, alte treiber oder sonstiges? Mal drübergucken mit dem tool…

Das erste Problem habe ich gelöst. Es handelte sich nicht um einen Bug sonder schlicht um menschliches Versagen.

In der Mesh classe beträgt size beim rendern einen falschen Wert.
glDrawElements(GL_TRIANGLES, size, GL_UNSIGNED_INT, 0);
Da ich ihn in Zeile 21 falsch setze.
Es heißt also nicht size = vertices.length * Vertex.SIZE; sondern size = indices.length;.
Beim zweiten Problem muss ich mal gucken.
Das wird auch durch menschliches versagen entstanden sein, mal gucken.

Auf jeden Fall, scheint es (subjectiv) nicht unbedingt unabhängig aber auch nicht abhängig vom Fensterbewegen zu sein. Alle Sekunde kommt das flimmern ganz periodisch.
Eventuell hängt das ganze von der Rotation also einem Fehler in der Quaternion classe ab?.
Das würde auch die Abhängigkeit zum Fenster bewegen erklären, da der Gameloop danach aufholen müsste. Mal gucken…

Tatsache. Wenn man schon Matheklassen kopiert, sollte man sich wenigstens die Api angucken :rolleyes:
Quaternion(vector3f, float) != Quaternion(float, float, float, float)
Also auch das Problem gelöst.
(beim Verfassen des Posts, deswegen sieht der text oben so ein bisschen aus wie eine Gedankenkette.
-weil er eine ist-

Vielen Dank für eure Hilfe.
Tut mir leid, das ich euch damit jetzt unnütz genervt habe. Mir hat das Fragen und Antworten aber auf alle fälle geholfen, außerdem hat mymaksimus Antwort dazu geführt, dass mein pc jetzt auch OpenGl 4.3 unterstützen und 4.4 zu immerhin 40%. Davor wars noch 4.0.

[SPOILER]ps. jetzt wo ich weiß, was Problem 1 verursacht, lassen sich damit ganz lustige Effekte erzeugen:

[/SPOILER]