texture openGL che non sono 2 ^ x nelle dimensioni
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?
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.