Frage

Ich bin sehr sehr neu in OpenGL, so wenden Sie sich bitte mit mir tragen. :) Ich arbeite durch NeHe OpenGL-Tutorials, und ich habe meine eigene Version von Lektion 5 entwickelt, in dem Sie eine 3D-Form um den Ursprung drehen. Ich bin mir nicht sicher, was ich falsch gemacht habe, habe ich den Code fast Zeile für Zeile kopiert, aber ich sehe seltsame Überschneidungen in meiner Oberflächen.

Hat jemand irgendwelche Vorschläge, was solch ein Problem verursachen würde?

War es hilfreich?

Lösung 3

Wow, vollständig fixiert es mit einer Zeile:

gl.glEnable(GL.GL_CULL_FACE);

Ich habe keine Ahnung, was es tut, aber es wurde in allen Tutorials, die ich verwenden, aber meine Demo funktioniert perfekt jetzt nicht erwähnt. Off zu Google, um herauszufinden, was das tat. : D

Andere Tipps

Für mich sieht es aus wie Sie fehlt ermöglichen den Puffer Tiefe oder vielleicht ein Framebuffer mit einem Z-Puffer zu schaffen. (Dies ist ähnlich dem, was Troubadour ist schriftlich)

glEnable(GL_DEPTH_TEST);

Sieht aus wie Sie ein Problem mit dem Tiefenpuffer haben. Insbesondere sieht es wie jedes Polygon ohne Rücksicht auf die Tiefe gezogen wird, das heißt jedes Fragment aus den Polygonen kommenden der Tiefentest passiert. Dies würde bedeuten, dass die Polygone einfach übereinander eingezogen werden, was auch immer, um passieren sie in gerendert werden.

Haben Sie in den Tiefenpuffer Schreiben deaktivieren mit so etwas wie

glDepthMask( GL_FALSE )

durch Zufall?

Wenn es nicht, dass dann hast du daran denken, die Tiefenpuffer jedes Rahmens zu Beginn zu klären? Die Nehe Tutorial beginnt mit

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

, die löscht sowohl die Tiefe und die Farbpuffer. Stellen Sie sicher, dass Sie haben nicht von dem GL_DEPTH_BUFFER_BIT Teil davon befreien.

HTH

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top