Ciao, sono abbastanza nuovo per OpenGL.Ripetizione trame in OpenGL
Il mio compito è quello di implementare i pennelli GDI in OpenGL per disegnare su MAC OS X. Così ho girato su textures in OpenGL per disegnare il pattern e quindi questo deve essere mappato a primitive di disegno come un poligono (rettangolo a caso in questione). Sto creando una texture texels 8x8 e quindi la mappo su un poligono con coordinate in basso su una finestra di 500x500 pixel.
glVertex3f (0,35, 0,35, 0,0);
glVertex3f (0,35, 0,65, 0,0);
glVertex3f (0,65, 0,65, 0,0);
glVertex3f (0,65, 0,35, 0,0);
Da quando ho bisogno di un effetto pennello, il motivo deve essere ripetuto lungo il rettangolo. Il rettangolo/quadrato è 0,3 x 0,3 e l'intera finestra è 500 x 500 quindi in termini di pixel del poligono è 150 x 150.
quindi ripetizioni sono richiesti 150/8
pertanto impostare la grana coordinate come segue:
glTexCoord2f(0.0, 0.0); glVertex3f(0.35, 0.35, 0.0);
glTexCoord2f(0.0, 150/8); glVertex3f(0.35, 0.65, 0.0);
glTexCoord2f(150/8, 150/8); glVertex3f(0.65, 0.65, 0.0);
glTexCoord2f(150/8, 0.0); glVertex3f(0.65, 0.35, 0.0);
sto avendo un problema che il tratteggio verticale (uno texel trasparente l'altro colore) modello ho creato dal tessuto non viene adeguatamente mappato nel senso che alcune linee verticali sono sempre più ampia di altri (una sorta di problema di aliasing). È così che devo impostare le coordinate della texture durante la mappatura?
Grazie per le eventuali risposte
al
Come non trattare correttamente i texcoords? fa esattamente quello che suggerisci ?? E le chiamate di TexCoord vengono _prima_ delle chiamate di vertice. – Bahbar
Sta usando 150/8 invece di 8. Un buon punto sull'ordine di chiamata però - Non ho usato la modalità immediata da anni! – Pike65
grazie Bahbar Mi ero appena reso conto di quale fosse il problema e stavo per postare la soluzione. Sì, questo era il problema! Grazie comunque – user461426