FinalbrainXP schrieb:
Soweit ich dieses Beispiel verstanden habe, wird ja mit glBindTexture anfangs das Texture mit der ID 100 aktiviert und kann beladen werden. Alle Operationen beziehen sich somit auf diese ID 100.
Kurz vor dem zeichnen aber wird glBindTexture erneut aufgerufen. Warum ? Reicht hier nicht noch der erste glBindTexture-Aufruf aus ? Wenn nein, kan mir jemand erklären warum ?
Du definierst und verwendest hier das Textur-Objekt mit dem "Namen" 100. Wenn das das einzige Textur-Objekt ist welches das Programm verwendet reicht ein "bind" aus. Die EXT_texture_object (die glBindTexture überhaupt eingeführt hat - ist erst ab Version 1.1 im Standard) wurde aber genau dafür gemacht dass man Textur-Objekte definieren kann, zwischen denen man dann "hin und her schalten" kann, ohne jedesmal glTexImageXD aufrufen zu müssen.
Wenn also in dem Programm mehrere Texturen verwendet werden, dann macht es Sinn vor dem Rendern die für den jeweiligen Teil der Geometrie passende Textur mit glBindTexture wieder auszuwählen, sonst wird u.U. mit der falschen Textur gerendert.
BTW: du solltest u.U. nicht einfach 100 reinschreiben, sondern glGenTextures/glDeleteTextures verwenden um "Texturnamen" zu verwalten.