hab gerade mittels glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, @TMUs) die Nachricht bekommen das meine Graka 4 TMUs besitzt. Doch SiSoftware-Sandra sagt mir was von 16 Einheiten.. Woran liegt das?!
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Wenn du eine NVidia-Karte hast sind beide korrekt. Auf denen kann man in der festen Funktionspipeline nur 4 TMUs nutzen (GL_MAX_TEXTURE_UNITS), und im Shader dann alle (16).
wie du sicher vermutest gehts noch um meine Scheinwerferprojektion... dafür brauch ich ja so viele TMUs wie's nur geht.
Ausserdem kann man doch die automatische Texturkoordinaten generierung nur in der FixedPipe machen oder? Also bringen mit die 16 nix wenn ich da nur auf 4 zugreifen kann..
Also muss ich bei 40 Scheinwerfern meine Szene 10x rendern..
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Im Shader kannst du berechnen was du willst, auch so viele projezierte Texturkoordinaten wie du willst. Dafür gibts dann die projezierenden Texturlookups (z.b. texture2DProj). Und die 16 TMUs im Shader sind bei 40 Scheinwerfern eigentlich auch kein Problem, du kannst ja z.b. jede Scheinwerfertextur in einen Slice einer 3D-Textur packen und dann im Shader sampeln, so könntest du rein theoretisch alle deine Scheinwerfertexturen in einer Textur unterbringen.
Im Shader kannst du berechnen was du willst, auch so viele projezierte Texturkoordinaten wie du willst. Dafür gibts dann die projezierenden Texturlookups (z.b. texture2DProj). Und die 16 TMUs im Shader sind bei 40 Scheinwerfern eigentlich auch kein Problem, du kannst ja z.b. jede Scheinwerfertextur in einen Slice einer 3D-Textur packen und dann im Shader sampeln, so könntest du rein theoretisch alle deine Scheinwerfertexturen in einer Textur unterbringen.
mensch, sonst mist das ich noch nicht wirklich durch die Shadermaterie durchblicke... ADD Aber das wäre genau das was ich bräuchte.. Wäre es denn viel Aufwand so einen Shader zu erstellen?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Nein, im Endeffekt sogar weit weniger aufwendig als in der festen Funktionspipeline und auch einfacher. Schwer sind Shader nämlich sind, und in unserem Wiki gibts ja auch zwei umfangreiche Tutorials. Wenn man sich da mal ein Wochenende dransetzt hat mans schnell drauf und muss nicht umständlich über mehrere Passes kompliziert was in der FFP implementieren.
P.S. : In neueren OpenGL-Versionen gibts eh keine feste FFP mehr, von daher ist es also ne Überlegung wert, dass wenn man jetzt mit OpenGL anfängt, man direkt mit Shadern beginnt.
Mitglieder in diesem Forum: Bing [Bot], Google [Bot] und 18 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.