Du bist nicht angemeldet.

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!

Werbeanzeige

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

1

10.01.2010, 18:36

OpenGL - 2D Rendering Problem [solved]

Hallo,

kann mir jemand sagen, warum mein Bildschirm schwarz bleibt?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
glLoadIdentity();
glDisable   (  GL_CULL_FACE   );
glMatrixMode(  GL_PROJECTION  );
glPushMatrix(                 );
gluOrtho2D  ( 0, 800,  0, 600 );
glColor4f   ( 1.f, 1.f, 1.f, 1.f );
glDisable   ( GL_DEPTH_TEST   );
glBegin     ( GL_TRIANGLE_FAN );
glVertex2f  (  0.5f,    0     );
glVertex2f  (  0.5f, 0.5f     );
glVertex2f  (     0, 0.5f     );
glVertex2f  (     0,    0     );
glEnd       (                 );
glEnable    (  GL_DEPTH_TEST  );
glPopMatrix (                 );
glMatrixMode(  GL_MODELVIEW   );


Danke im Voraus
<< an dieser Stelle ist eine Signatur verstorben >>

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

10.01.2010, 19:16

Das Primitv ist ziemlich winzig (für die Basis) vielleicht fällt es deshalb einfach nicht auf.

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

3

10.01.2010, 19:35

Zitat von »"David_pb"«

Das Primitv ist ziemlich winzig (für die Basis) vielleicht fällt es deshalb einfach nicht auf.


Wenn ich statt 0.5f 9.5f verwende, ändert sich auch rein garnix.
<< an dieser Stelle ist eine Signatur verstorben >>

4

10.01.2010, 19:43

Du hast den Tiefenpuffer aktiviert, übergibst aber nur 2 Werte? Das ist zumindest komisch.
Lieber dumm fragen, als dumm bleiben!

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

5

10.01.2010, 19:47

Der Depth-Test ist ja deaktiviert. Wo meinst du soll da das Problem liegen?

Ich bin im Grunde dem Leitfaden unter 9.030 gefolgt:

Zitat

If you're drawing on top of a 3D-depth buffered image, you'll need to somehow disable depth testing while drawing your 2D geometry. You can do this by calling glDisable(GL_DEPTH_TEST) or glDepthFunc (GL_ALWAYS). Depending on your application, you might also simply clear the depth buffer before starting the 2D rendering. Finally, drawing all 2D geometry with a minimum Z coordinate is also a solution.


Zusätzlich auch noch glDepthMask auf GL_FALSE setzen bewirkt ebenso nix.
<< an dieser Stelle ist eine Signatur verstorben >>

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

10.01.2010, 20:00

Vergisst du vielleicht die Puffer zu Swappen? Dieser Code funktioniert bei mir nämlich.

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

7

10.01.2010, 20:07

Nope, wenn ich einen 3D-Primitiv an genau der selben Stelle im Code rendere, klappt es bei mir!
Ergo muss es irgend etwas mit dem Code, den ich gepostet habe, zu tun haben?

Ist die volle Bildschirmbreite eigentlich 1.0f oder 800 in meinem Beispiel?
<< an dieser Stelle ist eine Signatur verstorben >>

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

10.01.2010, 20:08

800

the[V]oid

Alter Hase

  • »the[V]oid« ist der Autor dieses Themas

Beiträge: 775

Wohnort: Aachen

  • Private Nachricht senden

9

10.01.2010, 20:32

Shader sind übrigens auch keine aktiv und Texturen ausgeschaltet. Lighting wird keins verwendet. Was könnte es noch sein?
<< an dieser Stelle ist eine Signatur verstorben >>

10

11.01.2010, 09:52

Tjo, wahrscheinlich irgendetwas, was du vorher aktiviert hast. Ich sitze gerade an einem ähnlichen Fehler, hatte aber noch keine Zeit, das genauer zu untersuchen.
Es sollte helfen, alles was vorher passiert, Stück für Stück auszukommentieren und gucken ab wo es geht.
Achja, sry wegen dem DEPTH_TEST, hatte nur die zweite Anweisung, wo er wieder aktiviert wird, gesehen.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige