Du bist nicht angemeldet.

Werbeanzeige

1

29.10.2018, 08:51

Gestrichelte Linie mit OpenGL 3.0?

Ich portiere gerade eine alte OpenGL 1.1 Applikation nach 3.0, wie im wesentlichen Wireframes verwendet. Unter 1.1 konnte man mit folgenden Kommandos für die folgenden Zeichenoperationen eine gestrichelte Linie erzeugen

C-/C++-Quelltext

1
2
3
glPushAttrib(GL_ENABLE_BIT); 
glLineStipple(1, 0x0F0F);
glEnable(GL_LINE_STIPPLE);


Meine Frage: wie geht das mit OpenGL 3 wenn ich nicht mehr den alten Stack-Modus verwende sondern die Koordinaten an glBufferData() übergebe? Gibt es da einen ähnlichen Parameter oder muss ich mir meine Modelle wirklich manuell in einzelne Linien zerhacken?

Danke!

BlueCobold

Community-Fossil

Beiträge: 10 842

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

29.10.2018, 09:49

Naiver Ansatz: Du übergibst an den Fragment-Shader einen Endpunkt der Linie, berechnest die Distanz zum aktuellen Fragment und erzeugst basierend darauf entweder ein transparentes oder ein opakes Fragment.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

29.10.2018, 13:10

Also mit anderen Worten: das Line-Stipple-Feature gibt es nicht mehr und man muss sich was selber basteln?

BlueCobold

Community-Fossil

Beiträge: 10 842

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

29.10.2018, 14:22

Ich bin mir unschlüssig, was genau an meiner Antwort unklar war.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 845

Wohnort: Graz

  • Private Nachricht senden

5

29.10.2018, 17:08

Also mit anderen Worten: das Line-Stipple-Feature gibt es nicht mehr und man muss sich was selber basteln?

glLineStipple() wurde in OpenGL 3.2 core removed, in OpenGL 3.0 und in compatibility profiles sollte es noch existieren…

6

15.11.2018, 16:42

Sollte man dann aber trotzdem lieber nicht mehr nutzen.
Weißt du zufällig wieso es removed würde?
Indie Game-Dev Programmierer beim 2D MMORPG Pentaquin | Pentaquin Foren Vorstellung

David Scherfgen

Administrator

Beiträge: 10 175

Wohnort: Bonn

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

Gestern, 09:24

Diese ganzen Features werden entfernt, um OpenGL zu entschlacken und auf das Wesentliche zu konzentrieren. Solche Features bedeuten für die Treiberentwickler viel Aufwand, und man kann sich nie ganz sicher sein, dass das Ergebnis überall gleich aussieht. Die Idee ist, dass man möglichst viel mit Shadern selber macht.

Werbeanzeige