Domanda

Sto cercando di visualizzare un'immagine in un ambiente OpenGL. Dimensioni origninal del quadro sono 3648x2432, e voglio visualizzarlo con un'immagine di 256x384. Il problema è, 384 non è una potenza di 2, e quando provo a visualizzarla, sembra teso. Come posso risolvere questo?

È stato utile?

Soluzione

Ci sono tre modi per farlo, che io sappia -

  • L'unica Albert ha suggerito (ridimensionare fino a quando non si adatta).
  • suddividere la texture in 2 ** rettangoli n-dimensioni, e pezzo insieme in qualche modo.
  • Vedere se è possibile utilizzare GL_ARB_texture_non_power_of_two. E 'probabilmente meglio evitare, però, dal momento che sembra che sia un'estensione Xorg-specifici.

Altri suggerimenti

È possibile ridimensionare la vostra struttura in modo che è una potenza di due (inclinare la vostra struttura in modo che quando si è mappato sull'oggetto sembra corretto).

ARB_texture_rectangle è probabilmente quello che stai cercando. Esso consente di associare a GL_TEXTURE_RECTANGLE_ARB invece di GL_TEXTURE_2D, ed è possibile caricare un'immagine con dimensioni non potere-su-2. Essere consapevoli che le coordinate di texture varieranno da [0..w] x [0..h] invece di [0..1] x [0..1].

Se è vero GL_EXT_texture_rectangle quindi utilizzare GL_TEXTURE_RECTANGLE_EXT per la prima param in glEnable () e glBindTexture () chiama.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top