Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Verzichte ich auf GL_POLYGON_SMOOTH, sieht das Ergebnis wie erwartet 'normal' aus.
Sonst bekomme ich merkwürdige Linien zu sehen, die jede Fläche des Würfels durchschneiden und wohl die Kanten der Dreiecke sind, aus denen der Würfel besteht:
Gibt es eine Möglichkeit, GL_POLYGON_SMOOTH zu verwenden, ohne mit diesem Phänomen rechnen zu müssen?
Bei dem obigen Bild rendere ich außerdem ein rotes Viereck mittels GL_LINE_LOOP.
Obwohl Z-Buffer & Co. aktiviert sind, sehe ich diese Markierung auch wenn sie eigentlich auf der Rückseite des Würfels ist.
Woran liegt das? Wie korrigiere ich das?
Wenn ich die Markierung einfach vor dem Würfel zeichne, dann verschwimmen 2 der 4 Seiten stets mit dem Würfel, so dass sie kaum sichtbar sind.
Vielen Dank im Voraus
<< an dieser Stelle ist eine Signatur verstorben >>
Das Problem mit den Polygonkanten ist bekannt. Es resultiert vermutlich aus dem Versuch heraus die Polygonkanten geglättet (d.h. semitransparent Pixel werden eingerechnet) darzustellen. Bei adjazenten Dreiecken passiert das eben genauso, und die Übergänge sind nicht mehr fließend.
Wieso willst du überhaupt POLYGON_SMOOTH verwenden? Oft gibt es dafür nichtmal Hardwareunterstützung.
Es handelt sich um SFML 2.0 wenn ich mich nicht täusche.
Zu meinem zweiten Problem: Ich denke ich werde nachher mal eine Minimalanwendung erstellen, wo dieses Verhalten gezeigt wird.
Hier aber schon mal etwas Code aus der jetzigen.
Diese Prozedur wird für jede Würfelseite ausgeführt:
C-/C++-Quelltext
1
2
3
glBegin (GL_QUADS);
// Hier werden mit glVertex3f die 4 Vertices der Würfelseite angegeben
glEnd ();
Direkt im Anschluss dann, wobei face.vertices eine Liste der Vertices einer Würfelseite referenziert: