Seite 1 von 1

OpenGL 3.3+ States

Verfasst: 11.02.2012, 16:46
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

Re: OpenGL 3.3+ States

Verfasst: 11.02.2012, 17:46
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.

Re: OpenGL 3.3+ States

Verfasst: 11.02.2012, 17:53
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.

Re: OpenGL 3.3+ States

Verfasst: 11.02.2012, 17:55
von dot
Ich wüsste nicht welche States an ein FBO gekoppelt wären, abgesehen natürlich von den Attachements...

Re: OpenGL 3.3+ States

Verfasst: 11.02.2012, 17:56
von Artificial Mind
Mich würde z. B. interessieren, ob der Viewport da dran gekoppelt ist. (Was ich durchaus vernünftig fände)

Re: OpenGL 3.3+ States

Verfasst: 11.02.2012, 17:57
von dot
Nein ist er nicht (afaik).

Re: OpenGL 3.3+ States

Verfasst: 11.02.2012, 17:59
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?

Re: OpenGL 3.3+ States

Verfasst: 11.02.2012, 18:12
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 ;)