2 Texturen, 1 Shader - OpenGL ES 2.0

8

ES 2.0 Neuling hier. Ich versuche derzeit, mit ES 2.0 und dem PowerVR SDK 3D-Interlaced-Bilder aus Stereobildern zu erstellen. Ich kann eine Bildtextur gut ausgeben, aber wenn ich versuche, die zweite auszugeben, scheint ich die erste zu überschreiben. Also, meine Frage ist, kann ich mit dem fraglichen Shader unten zwei Texturen zeichnen, oder kann der sampler2d nur an eine Textureinheit gebunden sein? Hier ist der Fragment-Shader (entnommen aus den PowerVR-Trainingsprogrammen):

%Vor%

Und so lade ich die Bildtexturen in den Shader:

%Vor%

Also, überschreibt dieser Code die sampler2d-Uniform? Benötige ich eine andere Uniform oder einen Shader für das zweite Bild?

    
Stereoscopic 29.01.2012, 13:59
quelle

2 Antworten

7

Ok, wie ich im obigen Kommentar erwähnt habe, fand ich schließlich die Antwort hier: Ссылка . Wie von dem Benutzer "Profet" in diesem Forum erwähnt, besteht eine Möglichkeit, den Fragment-Shader wiederzuverwenden, darin, die glUriform1i () -Aufrufe auf die Renderfunktion zu verschieben, dh glUriform1i () aufzurufen, um die erste Textur an den Shader-Aufruf zu übergeben GlDraw (zeichne deine Textur), dann rufe glUtiliform1i () auf und übertrage die zweite Textur an den Shader (und zeichne). So, jetzt ist mein initialise () Code wie folgt:

%Vor%

Und mein render () Code geht wie folgt:

%Vor%

Hoffe das hilft jemandem irgendwann! :)

    
Stereoscopic 14.02.2012, 10:53
quelle
1

Der richtige Weg ist, wenn Sie die gewünschte Textur an die gewünschte Textureinheit senden: Ссылка

    
Andrei Petrovici 16.01.2013 20:12
quelle