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

1

01.10.2015, 12:44

OpenGL Polygone

Hi,

da Google mir nicht weitergeholfen hat, muss ich mal hier mit meinen OpenGL-Anfängerfragen nerven:

1. Wenn ich ein Polygon zeichne, dann muss ich immer Anfang und Ende jeder Linie dieses Polygons angeben:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
glBegin(GL_LINES);
     glVertex3f( 0.5f, 0.5f, 0.5f);
     glVertex3f(-0.5f, 0.5f, 0.5f);

     glVertex3f(-0.5f, 0.5f, 0.5f);
     glVertex3f(-0.5f,-0.5f, 0.5f);

     glVertex3f(-0.5f,-0.5f, 0.5f);
     glVertex3f( 0.5f,-0.5f, 0.5f);

     glVertex3f( 0.5f,-0.5f, 0.5f);
      glVertex3f( 0.5f, 0.5f, 0.5f);
glEnd();


Geht das auch einfacher? Also in der Art, dass der Endpunkt einer Linie automatisch der Anfangspunkt der nächsten Linie ist?

2. Kann ich irgendwie die Breite der Linien angeben?

3. Bietet OpenGL eigentlich auch Funktionen für grundlegende geometrische Elemente oder muss ich mir das immer aus nackten Polygonen selber zusammenbauen?

Danke!

Tobiking

1x Rätselkönig

  • Private Nachricht senden

2

01.10.2015, 13:56

1. GL_LINE_STRIP. https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml für volle Liste der Möglichkeiten.

2. https://www.opengl.org/sdk/docs/man/html/glLineWidth.xhtml

3. Mehr als Polygone bietet dir OpenGL nicht.

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

3

01.10.2015, 14:11

Eigentlich bietet OGL noch nicht mal Polygone.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

01.10.2015, 17:06

glBegin und glEnd ist übrigens absolut veraltet. Wo auch immer du das gelernt hast, such dir eine neuere Quelle.
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]

5

02.10.2015, 07:07

glBegin und glEnd ist übrigens absolut veraltet.


Hm, ich habe es aus einer wxWidgets Beispielimplementierung für die OpenGL-Integration. Was verwendet man denn jetzt?

7

02.10.2015, 08:22

Zitat

This site is dedicated to tutorials for OpenGL 3.3 and later !


Da liegt der Hase im Pfeffer: meine Applikation muss mit OpenGL 2.1 kompatibel bleiben, da es noch jede Menge Umgebungen gibt, die nicht mehr als das können.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

02.10.2015, 10:47

Shader und Vertex Buffer Objects gibt es auch schon in OpenGL 2.1; ein gutes Tutorial, das auf OpenGL 2.1 baut, findest du hier. glBegin() etc. ist seit ca. den 90er Jahren des letzten Jahrhunderts veraltet, selbst Quake 2 hat schon Vertex Arrays verwendet... ;)

9

02.10.2015, 12:51

Ich habe mir die Vertex Buffer Objects jetzt mal angesehen und bin mir nicht wirklich sicher. In meiner Applikation liegen die Vektordaten in einem eigenen Format vor (ein Array einer speziellen Struktur, die neben X, Y und Z noch ein paar Zusatzinformationen enthält. Das heißt, zum Zeichnen habe ich jetzt zwei Möglichkeiten:

1. Mit den veralteten glBegin() und glEnd() arbeiten und zwischendrin die Koordinaten aus diesem Array einzeln direkt an glVertex() übergeben

2. Einen neuen Speicherbereich für den Vertexbuffer alloziieren, die Koordinaten aus dem Array da hinein konvertieren (wobei eine einfache Kopieroperation über das ganze Array nicht möglich ist), das neue Array dann an OpenGL übergeben und wieder freigeben.

So spontan kommt mir die erste Variante jetzt schneller und einfacher vor. Deswegen: ist glBegin()/glEnd() nur veraltet oder auch deprecated?

Von meiner internen Vektordatenstruktur komme ich übrigens nicht weg, das wäre kein Lösungsansatz.

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

10

02.10.2015, 13:06

So spontan kommt mir die erste Variante jetzt schneller und einfacher vor.
The First and Only Rule of IBO: You are wrong.

Werbeanzeige