Hallo, ich habe gerade etwas in dem Multitexturing Tutorial gelesen das mich etwas verwirrt. Dort stand:
Zitat:
Auf die Texturstufen wird in OpenGL mit Hilfe der Konstanten GL_TEXTURE0...GL_TEXTURE31 zugegriffen.
Heisst das man kann nur maximal 32 Texturen im Speicher behalten? Wenn ja, bin ich sehr sehr verwirrt. Man stelle sich mal einen Raum vor, allein schon Boden Wände und die Decke bräuchte Texturen. Dann hat man vielleicht noch eine kleine verbeulte Dose da rum liegen, ne Zeitung und die Texturen für die Personen die da rum laufen.
Da braucht man doch viel mehr Texturen oder verstehe ich da was falsch?
Registriert: Sa Mär 14, 2009 17:48 Beiträge: 99
Programmiersprache: D, Java, C++
Das heißt, dass du "maximal" 32 Texturen an 1 (!!) Vertex binden kannst.
Ansonsten renderst du deine Geometrie ja der Reihe nach, demnach kannst du an die Texture-Unit 0 (oder 1, 2, 3, ...) immer eine andere Textur binden und mit dieser dann deine Geometrie rendern.
Du darfst nur die Begriffe Texture-Unit und Texture nicht durcheinander werfen, Texturen kannst du faktisch beliebig viele im GPU Speicher halten, die Zahl ist nur von deinem Grafikspeicher begrenzt (wobei nachher einfach auf den Hauptspeicher ausgelagert wird, also ist der GPU Speicher auchnich wirklich die Grenze). Die Texturen werden dann an die Texture-Units gebunden, wovon es in der Fixed-Function Pipeline wohl 32 Stück gibt (zumindest 32 Stück die via Konstanten referenziert werden können) - die Texture-Units wiederum an die einzelnen Vertices.
wovon es in der Fixed-Function Pipeline wohl 32 Stück gibt (zumindest 32 Stück die via Konstanten referenziert werden können
Es sind bis zu 32 vorgesehen, allerdings implementieren alle Hersteller für die FixedFunction-Pipeline nur das Minimum, nämlich 8. Wenn du sämtliche TexturEinheiten deiner Hardware nutzen willst musst du Shader verwenden.
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
Coolcat hat geschrieben:
das Minimum, nämlich 8.
Äh... wieso ist das das Minumum? Findest du, dass das das Minumum ist oder steht das in irgendeiner Spezifikation? Für die (zugegeben inzwischen relativ alte) GeForce-7-Reihe implementiert der Nvidia-Treiber nämlich maximal 4 Textureinheiten in der Fixed-Pipeline.
mrtrain
Zuletzt geändert von mrtrain am Mi Aug 31, 2011 18:47, insgesamt 1-mal geändert.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Acht ist das Lichterminimum. Aber meine GF7k-irgendwas macht auch 4, das ist meines Wissens nach bei nVidia Standard und ich hätte jetzt auch getippt, dass das irgendwo in den Specs steht … zwei sind doch eher schon wenig. Naja, wobei, für Fixed Function…
greetings
_________________ 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
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
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.