Hallo,
ich bin gerade dabei die Anzahl der OpenGL-States zu minimieren, die ich jeden Frame setze und dabei bin ich auf ein ganz fieses Problem gestoßen.
Wo werden welche States in OpenGL 3.3 gespeichert, bzw. wo kann ich dies nachgucken?
Konkrete Frage: sind Culling, Depth Testing/Writing, Viewport, ClearColor Context-globale States oder werden die per Framebuffer Object gespeichert?
Es sind nämlich nicht alle States global, z. B. wird BindBuffer pro VertexArrayObject gespeichert, genauso wie EnableVertexAttribArray und VertexAttribPointer pro VertexArrayObject gespeichert sind.
Ich habe versucht, die OpenGL-Spezifikation zu konsultieren, allerdings habe ich das entweder überlesen oder es steht nicht drin (ich vermute ersteres), wo diese States gespeichert werden.
Falls jemand genaueres weiß, bitte bringt Licht in meine OpenGL-Dunkelheit ;)
Cheers,
Mind
OpenGL 3.3+ States
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
- dot
- Establishment
- Beiträge: 1746
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: OpenGL 3.3+ States
Alle States sind global, zumindest fällt mir grad keiner ein der's nicht wäre. Vertex Array Objects sind mehr oder weniger nur eine Art mehrere States auf einmal zu setzen.
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: OpenGL 3.3+ States
Ja ok, aber selbst wenn man das so betrachtet, sind dann Framebuffer auch eine Art, mehrere States auf einmal zu setzen? (Immerhin werden ja die Attachements als States im Framebufferobject gespeichert)
Ich weiß halt nicht, welche States dann alle gesetzt werden, wenn ich die Framebuffer wechsel. Und das ist wichtig zu wissen, wenn ich unnötige OpenGL-Aufrufe vermeiden will.
Ich weiß halt nicht, welche States dann alle gesetzt werden, wenn ich die Framebuffer wechsel. Und das ist wichtig zu wissen, wenn ich unnötige OpenGL-Aufrufe vermeiden will.
- dot
- Establishment
- Beiträge: 1746
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: OpenGL 3.3+ States
Ich wüsste nicht welche States an ein FBO gekoppelt wären, abgesehen natürlich von den Attachements...
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: OpenGL 3.3+ States
Mich würde z. B. interessieren, ob der Viewport da dran gekoppelt ist. (Was ich durchaus vernünftig fände)
- dot
- Establishment
- Beiträge: 1746
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: OpenGL 3.3+ States
Nein ist er nicht (afaik).
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: OpenGL 3.3+ States
Gut, danke für die Antwort.
Wo könnte ich denn sowas zuverlässig nachgucken (also halt auch die anderen States)? Steht das in der Spec?
Wo könnte ich denn sowas zuverlässig nachgucken (also halt auch die anderen States)? Steht das in der Spec?
- dot
- Establishment
- Beiträge: 1746
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: OpenGL 3.3+ States
Ja natürlich steht das in der Spec. Es gibt eigentlich zu jedem Objekt eine Tabelle mit dem ganzen Sate der dranhängt ;)