Bonjour, je suis assez nouveau pour OpenGL. Ma tâche consiste à implémenter les pinceaux GDI dans OpenGL pour dessiner sur MAC OS X. Je me suis donc tourné vers les textures dans OpenGL pour dessiner le motif, puis mapper les primitives de dessin comme un polygone (rectangle a cas au point). Je crée une texture de 8x8 texels, puis je la mappe sur un polygone avec des coordonnées ci-dessous sur une fenêtre de 500x500 pixels.Répétition de textures dans OpenGL
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);
Depuis que j'ai besoin d'un effet de pinceau, le motif doit être répété le long du rectangle. Le rectangle/carré est de 0,3 x 0,3 et la fenêtre entière est de 500 x 500 puis en termes de pixels du polygone est de 150 x 150.
donc répétitions nécessaires sont 150/8
I donc mis coordonne la texture que suit:
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);
J'ai un problème que le motif de hachures vertical (un texel transparent autre couleur) J'ai créé comme une texture n'est pas correctement mis en correspondance dans le sens que certaines lignes verticales deviennent plus larges que d'autres (une sorte de problème d'aliasing). Est-ce comme ça que je dois définir les coordonnées de texture pendant le mapping?
Merci pour toute réponse
al
Comment est-il pas correctement traiter les texcoords? il fait exactement ce que vous suggérez? Et les appels TexCoord viennent avant les appels Vertex. – Bahbar
Il utilise 150/8 au lieu de 8. Bon point sur l'ordre d'appel cependant - je n'ai pas utilisé le mode immédiat depuis des années! – Pike65
merci Bahbar Je venais de réaliser quel était le problème et allait poster la solution. Oui, c'était le problème! Merci quand même – user461426