Bonsoir à toutes et à tous,
Préambule :
- DirectX 9.0c (sdk d'août 2007)
- Plateforme windows (2000 et xp)
- Je développe en Delphi avec les lib de Jedi (clottie 92) (mais bon, peu importe je code aussi en c++ je saurais donc déchiffrer vos réponses dans ce language)
- Je réalise un petit (très petit) moteur 3d -Direct3d- que j'utilise dans une appli classique (ma surface directx est placée dans une form contenant d'autres compo MFC)
- View en perspective main-gauche
Ma problématique :
- J'affiche et manipule (translation, rotation, scaling) des primitives : rectangles (plats), triangles, box, pyramides...
- Par scène, je pense avoir de l'ordre de 300 primitives (max tout de même)
- Tous ces objets sont posés sur un plan (une grille qui sert de repère). Les objects ne bougent que ce plan, pas d'élévation. Ils sont posés à plat.
- J'ai besoin d'afficher sur la surface de ces objets la caption (un libellé, un texte) que je donne à ces objets. Obligation : pouvoir afficher ce texte suivant des règles de placement : centré dans la surface ou bien positionné dans un coin.
Quelle serait d'après vous la meilleure méthode à utiliser.
Déjà, après avoir pas mal de papier sur le sujet des fonts, j'en conclu que la classe CD3DFont est la meilleure solution (minimalise l'occupation de la ram puisque fontes bitmap)
J'ai pensé à deux solutions :
- Une texture bitmap par objet (de la taille du texte à afficher) que je positionnerai à la main... mon soucis : faire un texture transparente pour que seul le texte ne soit réellement affiché.
- Trouver le moyen de créer le texte dans une surface (p-e style plane) que je pourrais manipuler par les matrices pour la positionner exactement comme mon objet (propriétaire de cette surface) sur l'une des faces de mon dit objet. J'espère être clair... J'ai cru lire des choses sur une telle technique (texte dans une surface) mais je n'ai pas compris comment faire cela...
- Bien entendu, il resterai la technique du texte to mesh... mais cela me parait très consommateur de ressources, me trouve-je ?
- Si vous connaissez une autre approche, je suis ouvert à toute suggestionEt avide de code pour mettre en évidence les aspects techniques !
Merci par avance ! SixOfOne.
Partager