Question

Je suis en train d'afficher une image dans un environnement openGL. Dimensions Origninal de l'image sont 3648x2432, et je veux afficher une image 256x384. Le problème est, 384 n'est pas une puissance de 2, et lorsque je tente de l'afficher, il semble tendu. Comment puis-je résoudre ce problème?

Était-ce utile?

La solution

Il y a trois façons de le faire que je connais -

  • L'un Albert suggéré (redimensionnez jusqu'à ce qu'il soit).
  • raffinons la texture en 2 rectangles ** n de taille, et assemblez-les ensemble en quelque sorte.
  • Voyez si vous pouvez utiliser GL_ARB_texture_non_power_of_two. Il est probablement préférable d'éviter cependant, car il semble que ce soit une extension spécifique à Xorg.

Autres conseils

Vous pouvez redimensionner votre texture il est une puissance de deux (biaiser votre texture de sorte que lorsqu'il est mis en correspondance sur l'objet, il semble correct).

ARB_texture_rectangle est probablement ce que vous cherchez. Il vous permet de lier à la place de GL_TEXTURE_RECTANGLE_ARB GL_TEXTURE_2D, et vous pouvez charger une image non mise sous tension de 2 dimensions. Sachez que vos coordonnées de texture vont de [0..w] x [0..h] au lieu de [0..1] x [0..1].

Si GL_EXT_texture_rectangle est alors utilise GL_TEXTURE_RECTANGLE_EXT pour la première dans glEnable param () et glBindTexture () appelle.

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