Die glTexImage2D
Funktion übernimmt unter anderem die so genannte „innere Basis-Formate“ unten aufgeführt:Wie funktionieren interne Basisformate?
GL_DEPTH_COMPONENT
GL_DEPTH_STENCIL
GL_RED
GL_RG
GL_RGB
GL_RGB
Diese erscheinen für jede Art und Größe Informationen fehlen. Zitieren der Dokumentation:
Wenn eine Anwendung die Textur in einer bestimmten Auflösung oder in einem bestimmten Format speichern möchte, kann sie die Auflösung und das Format mit InternalFormat anfordern. Der GL wählt eine interne Repräsentation, die der von internalFormat angeforderten entspricht, aber möglicherweise nicht genau übereinstimmt. (Die Darstellungen von
GL_RED
angegeben,GL_RG
,GL_RGB
undGL_RGBA
müssen genau übereinstimmen.)
Diese Formate sind nicht für glTexStorage2D
in der Dokumentation aufgeführt sind, und ich kann nichts genauer über sie finden. Ich habe anscheinend GL_RGBA
Arbeit durch dummes Glück gemacht, aber ich würde gerne besser verstehen, was ich hier mache.
Was passiert genau, wenn ich ein internes Basisformat verwende?
Wie werden Art, Größe und Layout des Speichers ausgewählt?
Muss ich das gewählte Format anschließend abfragen und den Rest meines Programms anpassen, zB GLSL-Sampler-Typen?
Danke! Nur um klar zu sein, ich bin besser dran, ständig von diesen Formaten weg zu bleiben, richtig? – Quentin