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

Aktuelle Zeit: So Jul 20, 2025 04:55

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: VBO und Texturen
BeitragVerfasst: Mo Feb 15, 2010 11:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

ich bin grad dabei ne Klasse zu implementieren, die mit VBOs und Texturen arbeitet. Also erhält das VBO beim erzeugen von mir auch die Texturkoordinaten. Jedoch kann man die Texturen auch deaktivieren. Macht es da Leistungsmäßig Sinn, das VBO neu zu erzeugen, bloß ohne Texturkooridnaten, oder bringt das nich so viel? Eh ich das Ganze ausprobiere und daran vlt nur meine Zeit verschwende wollt ich hier erstma nachfragen.

MfG Bergmann.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VBO und Texturen
BeitragVerfasst: Mo Feb 15, 2010 11:51 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Also Leistungsmäßig dürfte der Unterschied auf aktueller Hardware kaum auffallen. Trotzdem, du könntest Vertexkoordinaten, Normalen und Texturkoordinaten getrennt in einem Buffer speichern. Also der Buffer könnte statt so
Code:
  1. VNTVNTVNTVNTVNTVNTVNTVNT.......VNT

so aussehen:
Code:
  1. VNVNVNVNVNVNVNVNVNVN.....VNTTTTTTTTTTT.....T

Der Trick ist einfach nur den Stride und Offset korrekt zu setzen. Stichworte: glVertexPointer, glNormalPointer und glTexCoordPointer. Wenn du die Texturkoordinaten nicht benötigst, tust du einfach so als wären diese gar nicht da. Du brauchst also nur einen Buffer und kannst trotzdem beides rendern ohne zu viel Speicherbandbreite zu verschwenden.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VBO und Texturen
BeitragVerfasst: Mo Feb 15, 2010 12:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

gute Idee, werd ich ma ausprobieren. Ma guckn ob ich das hin bekomm... Danke

MfG Bergmann.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VBO und Texturen
BeitragVerfasst: Mo Feb 15, 2010 12:48 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Achso, du kannst natürlich auch die Texturkoordinaten nicht angeben, wenn du im VNT Format speicherst. Es liegt einfach daran was du häufiger benötigst.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VBO und Texturen
BeitragVerfasst: Mo Feb 15, 2010 12:59 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

ich denk ma die Texturen brauch ich relativ häufig, aber halt nicht immer. ich probier mich ma an den Pointer-Methoden, wenn ich damit nich klar kommt bleiben die TexturenCoords halt erstma mit drin :)

MfG Bergmann

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: VBO und Texturen
BeitragVerfasst: Mi Feb 17, 2010 15:58 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

ich hab mich jetz ma dran versucht. Erstmal nur an den Vertecs, aber ich bekomms nich zum laufen :(
Ich hab mir 2 Klassen gemacht:
  • eine BasisKlasse TVertexBufferObject, von dieser Klasse erben alle weiteren (speziellen) VBOs. Sie erzeugt den Buffer und initialisiert/reserviert den Speicher.
  • eine spezielle Testklasse TMyVBO, diese erbt von TVertexBufferObject, activiert beim Binden GL_VERTEX_ARRAY un übergibt die Daten mit glVertexPointer. Weiterhin kann man in dieser Klasse die Vertecs in den Speicher schreiben.
Die beiden Klassen hab ich ma als Anhang gemacht, weil ich hier nich alles mit Code zubomben will ^^

Und so wird das ganze dann initialisiert und gezeichnet:
Code:
  1.   //initialisieren
  2.   VBO := TMyVBO.Create;
  3.   VBO.InitDirectWrite(24, 3*SizeOf(TGLFloat), GL_STATIC_DRAW);
  4.   //würfel aus Linien gezeichnet (12 Kanten * 2 Vertecs = 24 Vertecs)
  5.   VBO.AddVertex(gluVector3f( 1, 1, 1)); VBO.AddVertex(gluVector3f( 1, 1,-1));
  6.   //[...]
  7.   VBO.FinishDirectWrite;
  8.  
  9.   //Zeichnen
  10.   VBO.Bind;
  11.   glDrawArrays(GL_LINES, 0, 24);
  12.   VBO.Unbind;
so passiert aber gar nix, schwarzer Bildschirm. Wäre nett wenn da ma jmd n Auge drauf werfen kann.

€: wenn ichs mit glInterleavedArrays mache gehts?! Was macht das genau? Ich date immer das übernimmt nur die funktion von glArrayPointer und glEnableClientState...

€2: ah habs gefunden, ich darf beim glVertexPointer die Adresse nicht mit übergeben, da er ja den ArrayBuffer nehmen soll, also muss da ein nil rein...
Wäre gut, wenn man das im Wiki noch nachtragen könnte, da Fehlt bei der Parameterbeschreibung die Zeile für _pointer.

MfG & Thx Bergmann.


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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 | 14 Queries | GZIP : On ]