![]() |
OpenGL entscheidet willkürlich, ob es zeichnen soll
Es klingt unglaublich, aber OpenGL zeichnet Dreiecke bei mir nur, wenn ich bestimmte Koordinaten eingebe. Bei manchen klappts, bei manchen einfach nicht! Wie ist das möglich???
Folgendes Dreieck wird ohne Probleme angezeigt:
Delphi-Quellcode:
Dieser Code, aus einem Tutorial, ergibt nur den schwarzen Hintergrund:
glBegin(GL_TRIANGLES);
glColor3f(1,0,0); glVertex3f(-4, 0, 0); glColor3f(1,1,0); glVertex3f( 0, 0, 0); glColor3f(1,1,1); glVertex3f(-2, 2, 0); glEnd;
Delphi-Quellcode:
glBegin(GL_TRIANGLE_STRIP);
glColor3f(1,0,0); glVertex3f(-1,0,0); glColor3f(1,1,0); glVertex3f(0,1,0); glColor3f(1,1,1); glVertex3f(1,0,0); glColor3f(0,1,1); glVertex3f(2,1,0); glColor3f(0,1,0); glVertex3f(3,0,0); glEnd; |
Re: OpenGL entscheidet willkürlich, ob es zeichnen soll
Und wenn du die Punkte in der umgekehrten Reihenfolge angibst? Also so:
Delphi-Quellcode:
glBegin(GL_TRIANGLE_STRIP);
glColor3f(1,0,0); glVertex3f(-1,0,0); glColor3f(0,1,0); glVertex3f(3,0,0); glColor3f(0,1,1); glVertex3f(2,1,0); glColor3f(1,1,1); glVertex3f(1,0,0); glColor3f(1,1,0); glVertex3f(0,1,0); glEnd; |
Re: OpenGL entscheidet willkürlich, ob es zeichnen soll
HI,
OpenGL entscheidet, ob etwas von vorne sichtbar ist oder von hinten richtbar ist, allein daran, wie ein "Objekt" definiert wurde. Standardmäßig ist für OpenGL alles, was gegen den Uhrzeiger definiert wurde, vorne and vice versa. Bernhard |
Re: OpenGL entscheidet willkürlich, ob es zeichnen soll
Stimmt, ihr habt grundsätzlich recht. Die Teile, die ich nicht gesehen habe waren auf der anderen Seite (glRotatef), aber der Autor des Tutorials hat dann wohl mächtig was falsch gemacht. Ich hab die Punkte in ihrer Reihenfolge umgedreht, wie du gesagt hast, und siehe da, jetzt ist der andere Teil der gesamten Figur sichtbar, aber nie alles auf einmal!
|
Re: OpenGL entscheidet willkürlich, ob es zeichnen soll
Das ganze nennt sich Cullface !
Alles was im Uhrzeigersinn gezeichnet wird, wird als Vorderseite betrachtet und umgekehrt Falls du das aus irgendeinem Grund bei der Initialisierung aktiviert hast - deaktivieren: glDisable( gl_Cull_Face ); Falls das nicht hilft, schlage ich vor, dass du deine Render-Methode hier reinpostest ;) MfG, ich geh mir mal n Kaffee machen :) |
Re: OpenGL entscheidet willkürlich, ob es zeichnen soll
mr_emre_d
hat zwar mit dem Abschalten des Cullfacings recht. Dauerhaft würde ich dir aber davon abraten. Denn das Cullfacing ist eine sehr elegante Methode wie OpenGL relativ Früh entscheiden kann ob Polygone gerendert werden müssen oder nicht. Deaktivierst du diese Eigenschaft kann es unter umständen passieren das deine Framerate merkbar einbricht, je nach dem wie viele Polygone du renderst. Zum Testen ist es daher OK, aber für dein Fertiges Programm solltest du auf jedenfall wieder das Cullfacing einschalten. Und dann must du natürlich auch die Vertices in Richtiger Reihenfolge übergeben. |
Re: OpenGL entscheidet willkürlich, ob es zeichnen soll
Ich glaube er ist gerade dabei, die Grundlegenden Begriffe / Methoden von OpenGL
zu erlernen - dh zurzeit ist eine Optimierung nicht wichtig, er sollte lieber sich mal mit der Materie vertraut machen und schon ein paar Resultate sehen Optimieren kann er nachher eh noch :P :D MfG |
Re: OpenGL entscheidet willkürlich, ob es zeichnen soll
Genau eben darum ist es wichtig zu wissen wie etwas funktioniert.
Lernt man es falsch, denkt man später nicht daran es richtig zu machen. :warn: :P |
Re: OpenGL entscheidet willkürlich, ob es zeichnen soll
Liste der Anhänge anzeigen (Anzahl: 1)
Später er wird er mehr oder weniger damit konfrontiert - er wird gar nicht ohne können :P:P
PS: Welche Tutorials ziehst du dir gerade rein ? Ich würde dir die von delphigl.com empfehlen ! EDIT: Ich habe mal etwas geuppt. Leider weiß ich den Link dazu nicht, sonst würde ich es verlinken :) MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz