Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey Leute,
wie genau verhält sich das mit den non-byte-aligned Texturformaten, werden die Bits da direkt hinereinander gepackt, oder werden die dann byte-aligned übergeben? Zum Bsp. bei GL_RGB5, das würd ja als GL_UNSIGNED_SHORT_5_5_5_1 übergeben, oder? Aber wie ist das bei GL_ALPHA12, nimmt man da GL_UNSIGNED_BYTE, wobei sich jedes 2. Byte 2 Werte teilt oder werden die gleich als GL_UNSIGNED_SHORT übergeben?
"GL_RGB5" ist ein internes Format auf der Grafikkarte. Wie das da abgelegt wird, ist möglicherweise Treiberabhänig und sollte für dich auch irrelevant sein. "GL_UNSIGNED_SHORT_5_5_5_1" ist ein "Übergabeformat" in dem du die Texturdaten an OpenGL übergibst. Diese Formate haben alle eine Größe die ein Vielfaches von einen Byte sind und somit stellt sich hier deine Frage nicht mehr.
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Ah alles klar. Ich dachte immer das die Daten und das interne Format übereinstimmen müssen. Also muss ich z.B. GL_ALPHA12 als GL_UNSIGNED_SHORT übergeben, damit es byte-aligned is?
Nein, die Formate müssen nicht übereinstimmen. (Wenn sie es müssten, wäre irgendwie die Trennung von internen und "Übergabeformat" relativ sinnlos.) Teilweise gibt es auch keine Übereinstimmung wie zb. bei "GL_RGB5". Wie in der Spezifikation steht, darf der Treiber auch ggf. auf andere Formate ausweichen:
Zitat:
The GL will choose an internal representation that closely approximates that requested by internalFormat, but it may not match exactly. (The representations specified by GL_RED, GL_RG, GL_RGB, and GL_RGBA must match exactly.)
Abgesehen davon das "GL_ALPHA12" nicht mehr Bestandteil des OpenGL Cores ist und man es deshalb in modernen OpenGL eher nicht mehr einsetzen sollte, wäre "GL_UNSIGNED_SHORT" durchaus geeignet. Man könnte aber auch die Daten als "GL_UNSIGNED_INT" oder "GL_UNSIGNED_BYTE" übergeben, wenn man denn möchte. Ob das sinnvoll wäre, ist wieder eine andere Frage.
Mitglieder in diesem Forum: 0 Mitglieder und 46 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.