Question

Est-ce que quelqu'un sait comment créer une texture avec un espace de couleur YUV afin que nous puissions obtenir une conversion d'espace de couleur YUV en RVB basée sur le matériel sans avoir à utiliser de fragment shader? J'utilise un NVidia 9400 et je ne vois pas d'extension GL évidente qui semble faire l'affaire. J'ai trouvé des exemples d'utilisation d'un fragment shader, mais le projet sur lequel je travaille ne supporte actuellement qu'OpenGL 1.1 et je n'ai pas le temps de le convertir en 2.0 et d'effectuer tous les tests de régression nécessaires. Ceci vise également Linux. Sur d’autres plates-formes, j’utilise une extension MESA mais elle ne fonctionne pas sur la carte Nvidia.

Était-ce utile?

La solution

Puisque vous êtes prêt à utiliser des extensions, mais que vous craignez de perdre du poids avec OpenGL 2.0, envisagez de fournir un fragment shader simple avec l'extension old-school ARB_fragment_program .

Vous pouvez également utiliser une bibliothèque telle que DevIL, ImageMagick ou FreeImage pour effectuer la conversion à votre place.

Autres conseils

l’extension MESA que vous avez mentionnée est pour YCrCb? Si votre carte nvidia ne l'expose pas, cela signifie qu'elles n'ont pas exposé le support de ce format de texture ( est le moyen de dire que la carte le supporte).

Votre seule option est de convertir les couleurs en dehors du bloc de filtrage des textures. (avant de soumettre les données de texture à GL ou après avoir extrait les valeurs du bloc de filtrage de texture)

GL peut toujours vous aider, car la transformation linéaire est réalisable dans GL1.1, à condition que vous disposiez des extensions adéquates (extension du combinateur de textures dot3). Cela dit, c'est loin d'être la panacée.

Pour ce qui en vaut la peine, la implémentation de BINK donne l'impression de faire la conversion avec le processeur. , en utilisant MMX (c'est lire entre les lignes bien). Je ferais probablement la même chose, convertir avec SSE avant de charger OpenGL. Un processeur est suffisamment rapide pour le faire à chaque image.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top