Frage

Wer weiß, wie eine Textur mit einem YUV-Farb zu schaffen, so dass wir Hardware-basierte YUV auf RGB-Farbraumkonvertierung, ohne bekommen kann ein Fragment-Shader zu benutzen? Ich verwende eine NVidia 9400 und ich habe nicht eine offensichtliche GL Erweiterung sehen, dass der Trick zu tun scheint. Ich habe Beispiele gefunden, wie ein Fragment-Shader zu verwenden, aber das Projekt arbeite ich zur Zeit an unterstützt nur OpenGL 1.1 und ich habe keine Zeit, es zu 2.0 zu konvertieren und alle Regressionstests erforderlich zuführen. Dies zielt auch Linux. Auf anderen Plattformen Ich habe eine MESA-Erweiterung wurde verwenden, aber es funktioniert nicht auf der Nvidia-Karte.

War es hilfreich?

Lösung

Da Sie mit der Verwendung von Erweiterungen in Ordnung sind, aber Sie sind besorgt über das Gehen all-out mit OpenGL 2.0, sollten Sie einen einfachen Fragment-Shader mit der alten Schule bietet ARB_fragment_program Erweiterung.

Alternativ können Sie eine Bibliothek wie DevIL, ImageMagick, oder verwenden Sie die Freeimage Konvertierung für Sie durchzuführen.

Andere Tipps

die MESA Erweiterung, die Sie erwähnen, ist für YCrCb? Wenn Ihre nvidia Karte nicht aussetzen wird, bedeutet sie nicht die Unterstützung für diese Textur Format belichten hat (es ist die Art und Weise der Karte unterstützt, es zu sagen).

Ihre einzige Option ist außerhalb des Texturfilterblock die Farbumwandlung zu tun. (Vor den Texturdaten zu GL Vorlage oder nach den Werten aus dem Texturfilterblock immer)

GL kann noch helfen, da dabei die linearen ist in GL1.1, vorausgesetzt, Sie haben die richtigen Erweiterungen (Punkt3 Textur-Kombinierer-Erweiterung) machbar verwandeln. Das heißt, es ist weit vom Allheilmittel.

Für das, was es wert ist, die BINK Implementierung scheint, wie es um die Umwandlung mit der CPU tut unter Verwendung von MMX (das ist allerdings zwischen den Zeilen zu lesen). Ich würde wahrscheinlich das Gleiche tun, mit SSE Umwandlung vor dem Laden auf OpenGL. Ein CPU ist schnell genug, um jeden Rahmen, dies zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top