Registriert: Mo Nov 08, 2010 18:41 Beiträge: 769
Programmiersprache: Gestern
Nein, das solltest du unter gar keinen Umstaenden machen. Solche Sachen sind nur Namen und kein konkreter Wert oder Datentyp. Wenn du also so etwas machst, dann ignorierst du die Kapselung und somit das Verhalten des jeweiligen Moduls. Sprich das Modul ist kein Modul mehr sondern ein fester Bestandteil deiner Software (monolithische Architektur). Das wuerde aber nur gehen wenn das entsprechende Modul (opengl32.dll) von dir selbst hergestellt wird.
Wenn du meinst das die For-Schleife dein Programm verbessert, solltest du vorher ein Array mit den entsprechenden Werten von GL_TEXTURE0-N aufbauen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Wenn es im Standard festgeschrieben wäre, dass GL_TEXTUREn fortlaufend sind (und afaik ist das der fall, sonst könnte man mehr als 8 Texturunits nicht addressieren, und der Standard erlaubt dies afaik), dann ist das kein Problem. Dann bindest du dich lediglich an das Modul OpenGL-Standard, und das tust du schon, indem du glActiveTexture aufrufst.
viele Grüße, Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
texture must be one of GL_TEXTUREi, where i ranges from zero to the value of GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS minus one. The initial value is GL_TEXTURE0.
D.h. darfst du eine Schleife von GL_TEXTURE0 + i ; i < GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS machen, es ist schließlich so vorgesehen.
_________________ offizieller DGL Compliance Beauftragter Never run a changing system! (oder so)
Registriert: Fr Aug 26, 2011 09:26 Beiträge: 25
Programmiersprache: FreePascal
Zitat:
The number of texture units is implementation dependent, but must be at least 80
Ich habe bisher keinen Header gesehen, der tatsächlich alle GL_TEXTURE0 bis GL_TEXTURE80 definiert, zumal abhängig von der Grafikkarte viel mehr Texturen möglich sind (momentan bis zu 192)
Registriert: Mo Nov 08, 2010 18:41 Beiträge: 769
Programmiersprache: Gestern
Lord Horazont hat geschrieben:
Wenn es im Standard festgeschrieben wäre, dass GL_TEXTUREn fortlaufend sind (und afaik ist das der fall, sonst könnte man mehr als 8 Texturunits nicht addressieren, und der Standard erlaubt dies afaik), dann ist das kein Problem. Dann bindest du dich lediglich an das Modul OpenGL-Standard, und das tust du schon, indem du glActiveTexture aufrufst.
viele Grüße, Horazont
Also ich weiß das es für ES ab 1.1 tatsächlich mit GL_TEXTUREi = GL_TEXTURE0+i definiert ist. Aber für die anderen Versionen habe ich das noch nie richtig fest gelesen.
Wen ich es richtig verstehe könnte ich Multitexturing mit 96 Texturen machen ?
GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS bezieht sich auf die Anzahl der gleichzeitig in Shadern nutzbaren Texturen. In der festen Funktionspipeline ist die Zahl weitaus niedriger (via GL_MAX_TEXTURE_UNITS).
Also rein theoretisch ja, dann aber halt über einen Shader.
Mitglieder in diesem Forum: Bing [Bot] und 47 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.