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

Aktuelle Zeit: Di Jul 15, 2025 21:04

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Client-State changes
BeitragVerfasst: Mo Jun 28, 2004 17:16 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Ich hätte da mal 'ne Frage:

Im algemeinen sagt man ja, dass man State-Changes nicht all zu oft durchführen sollte, weil die ein oder anderen zu viel Zeit verbraten. Aber wie sieht das mit den ClientStates aus? Ich frage, da ich in den Verschiedensten Tutorials zu Vertex-Arrays immer gesehen hab, dass der Vertex-Array State gesetzt wurde, das Array mit glDrawElemtents gezeichnet und dann der ClientState (glDisableClientState) wieder deaktiviert wurde. Muss das sein oder reicht es nicht, die States wie GL_VERTEX_ARRAY, GL_COLOR_ARRAY usw. einmal zu setzen solange sich die verwendeten VertexArray Elemente nicht ändern? Oder ist der Client-State-Change zu vernachlässigen (was die Zeit angeht)?

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 28, 2004 17:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wenn du nur Vertexarrays (gepaart mit den anderen aktiven Arrays) renderst, kannst du die Clientstates natürlich aktiviert lassen. Warum die in den meisten Tutorials nach dem Rendern wieder deaktiviert werden liegt wohl daran das die meisten Einsteiger das sonst evtl. vergessen und dann böse Fehler machen.
Allerdings ist ein einfaches glEnable/glDisable (egal ob Server-/oder Clientstate) im Normalfall so schnell ausgeführt dass es eigentlich kaum was ausmachen dürfte ob du das nun nach dem Rendern des VAs abschaltest oder nicht.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 28, 2004 20:26 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Wenn man VBO's verwendet dann wird zumindest bei NVidia Karten mit den gl*Pointer Befehlen der State tatsächlich akualisiert und das sind die Befehle die Zeit kosten.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 28, 2004 21:21 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jul 12, 2002 07:15
Beiträge: 916
Wohnort: Dietzhölztal / Hessen
Programmiersprache: C/C++, Obj-C
Im Klartext: die VAs/VBOs sortiert nach deren Vertex-Typen (also mit Textur, mit Farbe etc.) rendern um möglichst unnötigt State-Changes zu vermeiden. Aber gut zu wissen, dass man die States NICHT deaktivieren muss (dachte mir's zwar schon, aber wollte nochmal sicher gehen). Besten Dank auf jeden Fall, dann kann ich ja munter weiter Proggen...

_________________
Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]