PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Multitexturing


Matti
2003-08-30, 14:23:55
Wieviele Texturen kann man unter OpenGL auf 1 Polygon kleben? Gibts da irgendwelche Einschränkungen durch die Grafikkarte? Ich will Multitexturing für weiche Schatten verwenden, und da wären 9 Texturen schon sinnvoll (1 normale Textur und 8 Texturen für den Schatten, damit's wirklich weich wird).

ScottManDeath
2003-08-30, 14:38:42
int tex_count;

glGetInteger(GL_MAX_TEXTURE_UNITS,&tex_count);



hier kannst du rausfinden welche karte welche textureinheiten hat

http://www.delphi3d.net/hardware/listreports.php

auf GeforceFX karten musst du fragmentprogramme nutzen um über 4 texturen zu nutzen

Matti
2003-08-30, 14:54:20
also wenn das so ist, kann ich die weichen Schatten doch nicht mit mehreren Schatten-Texturen machen...
...da muß ich mit 1 Schatten-Textur auskommen. Aber da weiß ich nicht, wie man dann entfernungsabhängige Unschärfe hinkriegt...

Wenn man beim Multitexturing viele (>=5) Texturen verwenden könnte, kann man die gleiche Schatten-Textur von mehreren leicht versetzten Positionen aus in Richtung des Objekts auf den Untergrund projizieren und hat dann einen sehr realistischen weichen Schatten.
Ich hab schon mal ein Programm geschrieben, das einen Schattten nach diesem Verfahren erzeugt, aber ohne Multitexturing, sondern durch mehrfaches Rendern der Szene. Aber in größeren Szenen verbietet sich das wegen der Geometrie-Last...

ScottManDeath
2003-08-30, 19:17:36
machst du die schatten mittels shadowmapping und den ARB_depth_texture /ARB_shadow extenions

Matti
2003-09-01, 14:10:10
nein, ich erzeuge vom Schatten-werfenden Objekt eine Textur (von der Lichtquelle aus gerendert, Objekt grau und Hintergrund weiß) und projiziere diese Textur auf den Untergrund.

...aber ich hab dabei noch ein Problem: mit Multi-Texturing kriege ich GL_CLAMP nicht hin. Deshalb hat ein Würfel bei mir jetzt mehrere Schatten...

...muß man beim Multi-Texturing noch was beachten, wenn man die TexParameter setzt? Oder vielleicht hab ich noch nen anderen Bug drin, ist ja mein erstes Multi-Texturing-Programm...

zeckensack
2003-09-01, 14:59:44
Original geschrieben von Matti
nein, ich erzeuge vom Schatten-werfenden Objekt eine Textur (von der Lichtquelle aus gerendert, Objekt grau und Hintergrund weiß) und projiziere diese Textur auf den Untergrund.

...aber ich hab dabei noch ein Problem: mit Multi-Texturing kriege ich GL_CLAMP nicht hin. Deshalb hat ein Würfel bei mir jetzt mehrere Schatten...

...muß man beim Multi-Texturing noch was beachten, wenn man die TexParameter setzt? Oder vielleicht hab ich noch nen anderen Bug drin, ist ja mein erstes Multi-Texturing-Programm...
GL_CLAMP (oder allgemein "repeat modes") gehört zum per-texture-object state, dh du mußt diesen Parameter für die Texturen setzen, nicht für die 'TMU'.

Das macht man am besten direkt beim Erzeugen der Textur, weil man sie dabei ja sowieso gebunden hat.

Matti
2003-09-03, 15:06:58
ja, daran lag's. :)
...ich frag mich nur, wieso mir das noch nicht eher aufgefallen ist, schließlich muß man ja auch bei Single-Texturing GL_CLAMP an der richtigen Stelle setzen...