Triangle de mappage de texture OpenGL
Je suis en train de travailler sur un projet à l'aide du Marching Cubes algorithme et la modification de données dans un modèle 3D. Maintenant je veux utiliser le mappage des textures en OpenGL pour mon modèle 3D. J'ai essayé un exemple simple, pour commencer, qui associe une image sur un triangle.
Voici mon code:
int DrawGLScene(GLvoid) //Here's Where We Do All The Drawing
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //Clear Screen And Depth Buffer
glLoadIdentity(); //Reset The Current Matrix
glTranslatef(1.0f,0.0f,-6.0f); //Move Into The Screen 5 Units
glRotatef(xrot,1.0f,0.0f,0.0f); //Rotate On The X Axis
glRotatef(yrot,0.0f,1.0f,0.0f); //Rotate On The Y Axis
glRotatef(zrot,0.0f,0.0f,1.0f); //Rotate On The Z Axis
glBindTexture(GL_TEXTURE_2D, texture[0]); //Select Our Texture
glBegin(GL_TRIANGLES);
glTexCoord2f(0, 0); glVertex3f( -2, 0, -2 );
glTexCoord2f(1, 0); glVertex3f( 2, 0, -2 );
glTexCoord2f(0.5, 1); glVertex3f( 0, 2, -2 );
glEnd();
xrot+=0.3f; //X Axis Rotation
yrot+=0.2f; //Y Axis Rotation
zrot+=0.4f; //Z Axis Rotation
return true; //Keep Going
}
Maintenant, le problème, c'est que la photo ne correspond pas entièrement à l'intérieur du triangle, et le programme de couper l'image pour le triangle, je suis donc de perdre une partie de mes données.
Comment puis-je faire correspondre l'ensemble de l'image dans le triangle?
Je ne suis pas sûr que je suis de vous suivre. Vous avez créé un triangle avec des coordonnées de texture. La texture elle-même est un rectangle. Si vous êtes plus ou moins la coupe d'une forme triangulaire de la texture de vos cheveux. Quel est le problème? Qu'essayez-vous de réaliser? Pourriez-vous illustrer?
Continue ce que @Bart dit, vous ne pouvez pas avoir tous d'un rectangle de texture mappée à un triangle sans avoir des distorsions majeures ou importantes de texture, espace. Il suffit d'ajouter un plus de coordonnées de texture et un nouveau sommet et vous serez en mesure de tirer l'ensemble de la texture.
Continue ce que @Bart dit, vous ne pouvez pas avoir tous d'un rectangle de texture mappée à un triangle sans avoir des distorsions majeures ou importantes de texture, espace. Il suffit d'ajouter un plus de coordonnées de texture et un nouveau sommet et vous serez en mesure de tirer l'ensemble de la texture.
OriginalL'auteur user261002 | 2011-11-24
Vous devez vous connecter pour publier un commentaire.
Si vous essayez de charger l'intégralité de la texture comme un rectangle/carré, vous devez faire une place dans OpenGL en utilisant soit un quad ou deux triangles, et puis la carte de la moitié de la texture de chaque triangle.
Comme ceci:
OriginalL'auteur Andrew Rasmussen