Ich bin sehr neu in der OpenGL API und habe gerade Texturen entdeckt und wie man sie benutzt. Die generierten Texturpuffer sind nicht auf die gleiche Weise gebunden wie reguläre Uniformen und verwenden stattdessen glActiveTexture
, gefolgt von einer Bindung, anstatt nur die Textur über glUniform
an die Shader zu liefern, wie wir es mit anderen Konstanten tun.Was sind die Gründe für OpenGL-Textureinheiten im Gegensatz zu regulären Puffern und Uniformen?
Was ist der Grund für diese Konvention?
Der einzige Grund, den ich mir vorstellen kann, ist die volle Nutzung der Grafikkartenpotential- und Texturverarbeitungsfähigkeiten, anstatt nur Puffer direkt zu binden. Ist das richtiger Beweis, oder ist es einfach die Art, wie die API implementiert wurde?
Keine Argumentation auf der offiziellen Wiki gegeben wird, sagt nur, dass es seltsam ist: „für Texturen Binding Verwendung in OpenGL ist ein wenig seltsam“ https://www.khronos.org/opengl/wiki/Texture
[Verwandte wenn nicht duplizieren] (https://stackoverflow.com/questions/45233643/opengl4-5-bind-multiple-textures-and-samplers/45240467#45240467) – Borgleader
Ich gucke mal, ob es beantwortet meine Frage, danke. Hab das nicht gesehen. – Timothy
Wenn Sie "direkten Statuszugriff" (DSA) verwenden, ist die API viel sinnvoller. Angenommen, Sie verwenden GL Core 4.5 oder höher. – Robinson