Ich glaube, 32 ist die maximale Anzahl von Texturen, die derzeit gebunden werden können. Soweit ich das beurteilen kann, hatte sogar die 8800er Serie 32 Textureinheiten.
Soweit ich weiß, benötigen Sie für die Unterstützung von openGL 4.x eine Fermi-Karte oder eine neuere nvidia-Karte (oder eine entsprechende amd-Karte). Die Modelle der höheren Klasse scheinen alle 32 Einheiten zu haben, während die Karten der niedrigsten Klasse (z. B. GT 430) ) haben 16. In den AMD-Datenblättern werden jedoch Zahlen wie 80 oder 128 Textureinheiten aufgeführt, jedoch 32 Farb-ROP-Einheiten, die über Generationen hinweg konstant geblieben zu sein scheinen.
Die GTX 480 hingegen ist mit 60 Textureinheiten und 48 ROP-Einheiten aufgeführt, während Karten für das untere Ende wie die 430 Berichten zufolge nur 16 Textureinheiten und 4 ROP-Einheiten haben. Im Großen und Ganzen bin ich nicht wirklich davon überzeugt, dass diese Nummer die Nummer ist, nach der Sie tatsächlich suchen.
Sie können jedoch die Anzahl der Textureinheiten überprüfen, die für das Rendern von Pipelines ohne feste Funktion verfügbar sind. glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &texture_units);
Wenn Sie also Zugriff auf verschiedene Hardware haben, können Sie dies selbst überprüfen.
BEARBEITEN: Auf dieser Website können Sie die gemeldeten OpenGL-Funktionen aller Arten von Grafikkarten vergleichen, die Ihnen die benötigten Zahlen liefern sollten: http://feedback.wildfiregames.com/report/opengl/device/GeForce%20GTX%20580
PS: AMD und nvidia haben kürzlich "bindless textures" eingeführt (amd hat einen anderen Namen dafür), mit dem Sie eine große Anzahl von Texturen verwenden können, ohne sie an Texture Units zu binden. Momentan ist dies nur in openGL verfügbar.