bonjour,
Dans un premier temps, je cherche à savoir comment écrire du texte sur chaque face d'un cube avec Glscene. Quel composants doit-on utiliser pour celà (s'il y a lieu d'en utiliser).
merci par avance
bonjour,
Dans un premier temps, je cherche à savoir comment écrire du texte sur chaque face d'un cube avec Glscene. Quel composants doit-on utiliser pour celà (s'il y a lieu d'en utiliser).
merci par avance
moi je sais
enfin non pas vraiment, je n'utilise pas GLScene, mais OpenGL sous Delphi
alors, le cube n'a pas de face sur laquelle on peut écrire...à moins que tu n'utilises une texture sur laquelle tu écris et que tu appliques sur les faces du cube.
tu peux aussi venir écrire un texte en 3D au même endroit que la surface du cube, ce qui présente quelques petits inconvénients...
1) tu devras jouer avec le DepthTest pour permettre au texte de s'afficher alors que le cube a déjà remplit le ZBuffer
2) si ton texte dépasse du cube, il ne sera pas tronqué.
3) il faut retrouver la position des faces du cube, ou au minimum la matrice de transformation au moment du rendu de chaque face du cube...c'est d'ailleurs parceque je trouvais OpenGL bien fait et suffisant que je ne me suis jamais embêté avec des objets GLScene
voir par exemple Snake3D
Je ne connais pas Glscene mais si chaque face du cube correspond au canvas d'un BitMap pour écrire en rotation sur un canvas tu peux trouver un bon exemple téléchargeable dans la discussion intitulée "[D7] comment dessiner du text le long d'un polyline" qui figure encore aujourd'hui Samedi 30 juin en page 4 du forum : telécharger le fichier DemoTextEnAngle.zip d'Eric Boisvert.![]()
merci pour vos réponses.
Je porte particuliérement mon attention sur l'idée de créer un texture avec le texte sur chaque face. cependant lorsque j'applique une texture a un cube cele-ci se multiplie sur toute la surface du cube.
Prenons un exemple. Avec une image représentant un chat, appliqué a mon cube je retrouve le chat sur chaque face du cube....vous voyez le soucis.![]()
Alors qu'en réalité je devrai avoir le chat "étalé" sur le cube![]()
![]()
c'est exactement pour cela que je n'utilise pas GLSceneEnvoyé par fred7
je ne sais pas comment on étale une texture sur un cube GLScene, mais tu as trois millions d'exemples OpenGL
un cube, c'est 6 carrés, un carré c'est simple à faire sous OpenGL
x,y,z c'est biensur la position 3D d'un somment du cube
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 glBegin(GL_QUADS); // premier point glTexCoord2f(u,v); glVertex3f(x,y,z); // idem pour les 3 autres points ! ... glEnd();
u,v c'est la position dans la texture, en considérant que les coordonnées vont de 0 à 1 (donc 0.5 c'est la moitié)
donc ton problème se résume à ne pas donner 0 ou 1 aux valeurs (u,v) des sommets mais une valeur qu'il t'appartient de déterminer en fonction de comment tu veux afficher la texture (c'est comment un chat étalé sur un cube ?!)![]()
hum hum...je comprend le raisonnement logique où la simplicité l'emporte mais.....oui il y a un "mais" et j'en suis navrélol
La raison de ce "Mais" est que j'utilise Glscene pour que mon cube soit esthétiquement au top du top....qu'il en jette un max quoi!(je n'utilise dailleur aucune texture).
Bref si quelqu'un connait un peu...beaucoup GLscene hé bien qu'il se manifeste![]()
![]()
D'autre part l'utilisation d'openGl sous delphi m'interesse quels composants faut-il?
merci
ps: un chat étalé sur un cube ça ressemble à rien! sauf à un chat étalé sur un cube lol![]()
![]()
![]()
Partager