Wie interpoliere ich effizient zwei Texturen A und B pro Pixel durch eine dynamische Textur C und zeichne sie auf einem einfachen Quad? Multi-Pass-Algorithmen akzeptiert.Interpolation von zwei Texturen durch eine dritte Textur (Faktor ist in Helligkeit, nicht Alpha)
Ich hatte mäßigen Erfolg bei der Berechnung der C-Textur pro Frame auf der CPU und beim Hochladen mit glTexImage2D
in eine Alpha-only-Textur.
Während dies funktionierte, fehlte die Leistung und ich musste die Abmessungen von C auf die Hälfte der vollen Größe reduzieren, um den Engpass bei der Kopierbandbreite zu umgehen.
Aus Gründen der Leistung versuche ich alle meine C-Textur-Updates mit Render-to-Texture zu tun.
ich war in der Lage, die notwendigen Puffer für das Rendering, aber im Grunde einzurichten, bekomme ich eine Textur in RGB oder RGBA-Format mit dem Maske codierte in Leichtigkeit/RGB-Informationen, nicht alpha.
Wie konvertiere ich das effizient in die Alpha-Textur, die ich in die Texturing-Pipeline einstecken muss? Denken Sie daran, dass es keine programmierbare Pipeline (Shader) und nur zwei Textureinheiten auf dem iPhone gibt.
Aktualisierung: A und B sind nur RGB-Texturen, dh kein Alpha.
Ehrfürchtige Post. Dachte daran, so etwas zu tun. Weder A noch B haben einen Alpha-Kanal. Wie kann ich "C in den unbenutzten Alpha-Kanal eines Bildes rendern"? –