Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jul 15, 2025 19:00

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 15:20 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 23, 2003 21:08
Beiträge: 19
Wohnort: Schwitzerland wo alle schwitzen.
Hallo zusammen

Ich habe waehrend dem coden einer C++ (hoert auf zu buhen ;)) Klasse zum 1. Initialisieren und 2. Primitives Erstellen ploetzlich bemerkt, dass ich die DisplayLists neu implementiere. Da ich bisher mehr Theorie der Display Lists genossen habe als Erfahrungen damit gesammelt, wollte ich mal fragen wie ihr so ueber Display Lists denkt? Implementiert ihr eher selber diese Dinge oder verlaesst ihr euch auf die Display Lists? Kann man ueberhaupt noch definierte Punkte (z.B. von einem Quadrat) aendern nachdem die Displaylist definiert wurde?

Ich zeig euch mal wie das bei mir geht:

Punktedefinition:
Code:
  1.  
  2.     glprim.GLPrimNew( 0, 0, 0 );
  3.     glprim.GLPrimNew( 1, 0, 0 );
  4.     glprim.GLPrimNew( 1, 1, 0 );
  5.     glprim.GLPrimNew( 0, 1, 0 );
  6.  

-> GLPrim verwaltet intern einen struct-Vektor welcher x,y und z Variablen abspeichert (muss natuerlich noch erweitert werden). So lassen sich spaeter jederzeit Punkte oder Eigenschaften aendern.
Natuerlich kann man diese auch Kopieren:
Code:
  1.  
  2. glcopy = glprim;
  3.  

Das Anzeigen sieht so aus:
Code:
  1. glprim.GLPrimDraw( GL_LINE_STRIP );

Wobei man natuerlich ausser GL_LINE_STRIP alles moegliche benutzen kann (solange es "kompatibel" ist... also GL_LINE_STRIP koennte man hier ohne weiteres durch GL_LINE_QUADS ersetzen).

War das sinnvoll oder nur fuer meinen Lerneffekt? ;)
Ist moeglicherweise eine Kombination von Displaylisten und meinem Ansatz eine Idee?

_________________
I don't want to know how to copy rights, I want to know how to copy beer!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 15:30 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also ich würde mal sagen, dass es immer darauf ankommt was du damit tun möchtest. Allerdings eine Displayliste selber zu Implementieren macht recht wenig Sinn. Also mal von dem Lerneffekt abgesehen. Eine Displayliste im nachhinein noch mal zu ändern geht nicht. Man kann aber wie gewohnt Transformationen, Rotationen etc. anwenden.

Für dynamische Fälle würden sich aber VertexArrays (VertexBufferObject, VertexArrayObject u. VertexArrayRange) anbieten. Da du ein Stück Speicher "dein eigen" nennen darfst. Dieses befindet sich auf der Grafikkarte. Wodurch die Renderoperationen um ein vielfaches schneller sind als der iterative Modus per glBegin glVertex ... glEnd.

Und logischerweise kann man VertexArrays und DisplayListen in einer Klasse kappseln die dann beim Generieren die jeweiligen OpenGL Objekte erstellt und diese beim Rendern nur aufruft. Der Fantasie eines Entwicklers sind kaum Grenzen gesetzt. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 15:34 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 23, 2003 21:08
Beiträge: 19
Wohnort: Schwitzerland wo alle schwitzen.
Shit. Und ich war so stolz auf mein Speicherjonglieren ;)! Naja, back to the tutorials!!!!

Wenigstens meine OpenGL Initialisierungsklasse taugt scheinbar was ;)

_________________
I don't want to know how to copy rights, I want to know how to copy beer!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 15:41 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
tr0nix hat geschrieben:
Shit. Und ich war so stolz auf mein Speicherjonglieren ;)!

Da kannst du auch ruhig stolz drauf sein. Es gibt einige Entwickler die können absolut nicht mit Pointern umgehen. Und das obwohl die lieben Kleinen so ziemlich das schnellste sind was man machen kann. Und sofern es funktioniert kannst du da ruhig stolz drauf sein. :D

Und noch mal zu deiner Klasse. Es kann durchaus sein, dass deine Klasse, für das was du vor hast, vollkommen ausreichend ist. Der iterative Modus ist bei nVidia karten sehr gut Optimiert und sofern du nicht unbedingt 1 Mio Flächen darstellen willst ist der teilweise auch vollkommend ausreichend.

VertexArray bzw. Displaylisten sind aber dennoch das schnellst auf dem Markt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 28, 2003 15:49 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 23, 2003 21:08
Beiträge: 19
Wohnort: Schwitzerland wo alle schwitzen.
Jup, ich habe gerade noch ein C++ optimierteres Displaylist Tut gefunden (http://www.lighthouse3d.com/opengl/displaylists/ <- uns gehts ja um den Lerneffekt, muss ja nicht alles aus einem Guss kommen um was zu lernen ;)). Dort steht auch, dass die Lists noch im Graka Memory gespeichert werden und schon derb optimiert waeren. Ich verlass mich mal darauf ;)

Achja.. apropos Speicher... ich hatte zuerst mal 3 Segfaults weil ich meine Pointer nicht sauber initialisierte *lol*

_________________
I don't want to know how to copy rights, I want to know how to copy beer!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 16 Queries | GZIP : On ]