Bonjour à tous,
J'essai depuis quelques jours d'appliquer une texture à une surface NURBS, mais sans résultat.
Le développement se fait en java avec JOGL 1.1.1.
Le chargement des textures se fait bien. Les textures s'affichent sans problème dans des polygones.
La création d'une surface NURBS et son affichage fonctionnent aussi.
Mais le mixte des 2 n'est pas concluant.
Le chargement de la texture se fait de la manière suivante :
L'affichage de la surface NURBS sans texture :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 gl.glEnable(GL.GL_TEXTURE_2D); gl.glBindTexture(GL.GL_TEXTURE_2D, texture1); TextureReader.Texture ltexture1 = null; try { ltexture1 = TextureReader.readTexture("./src/t004/IMG_1075.png"); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } makeRGBTexture(gl, glu, ltexture1, GL.GL_TEXTURE_2D, false); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR);
J'ai complété de la manière suivante pour la texture :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 glu.gluBeginSurface(theNurb1); glu.gluNurbsSurface(theNurb1, 4, knots2, 4, knots2, 2 * 3, 3, ctlpoints2, 2, 2, GL.GL_MAP2_VERTEX_3); glu.gluEndSurface(theNurb1);
La surface est bien présente, mais sans la texture et dans une couleur que je n'ai pas sélectionné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 glu.gluBeginSurface(theNurb1); glu.gluNurbsSurface(theNurb1, 4, knots2, 4, knots2, 2 * 3, 3, ctlpoints2, 2, 2, GL.GL_MAP2_TEXTURE_COORD_2); glu.gluNurbsSurface(theNurb1, 4, knots2, 4, knots2, 2 * 3, 3, ctlpoints2, 2, 2, GL.GL_MAP2_NORMAL); glu.gluNurbsSurface(theNurb1, 4, knots2, 4, knots2, 2 * 3, 3, ctlpoints2, 2, 2, GL.GL_MAP2_VERTEX_3); glu.gluEndSurface(theNurb1);
J'ai essayé les différents exemples trouvés sur le net, mais sans succés, par exemple : sans la ligne GL_MAP2_NORMAL, avec des points de contrôles (0,0) (1,0) (1,1)(0,1) pour la surface.
Quelque chose m'échappe... Y'a-t-il une erreur dans la construction de la surface NURBS ou de sa texture ? Quelle peut bien être la subtilité que je n'ai pas vue ?
Merci d'avance.
Benoit.
Partager