OpenGL 3.3+ States

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

OpenGL 3.3+ States

Beitrag von Artificial Mind »

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
Benutzeravatar
dot
Establishment
Beiträge: 1746
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: OpenGL 3.3+ States

Beitrag von dot »

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.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: OpenGL 3.3+ States

Beitrag von Artificial Mind »

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.
Benutzeravatar
dot
Establishment
Beiträge: 1746
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: OpenGL 3.3+ States

Beitrag von dot »

Ich wüsste nicht welche States an ein FBO gekoppelt wären, abgesehen natürlich von den Attachements...
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: OpenGL 3.3+ States

Beitrag von Artificial Mind »

Mich würde z. B. interessieren, ob der Viewport da dran gekoppelt ist. (Was ich durchaus vernünftig fände)
Benutzeravatar
dot
Establishment
Beiträge: 1746
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: OpenGL 3.3+ States

Beitrag von dot »

Nein ist er nicht (afaik).
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: OpenGL 3.3+ States

Beitrag von Artificial Mind »

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?
Benutzeravatar
dot
Establishment
Beiträge: 1746
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: OpenGL 3.3+ States

Beitrag von dot »

Ja natürlich steht das in der Spec. Es gibt eigentlich zu jedem Objekt eine Tabelle mit dem ganzen Sate der dranhängt ;)
Antworten