Aller au contenu


Score en overlay ??


  • Vous ne pouvez pas répondre à ce sujet
7 réponses à ce sujet

#1 Quatre1124

    Ceinture Blanche

  • Members
  • 10 messages

Posté 10 juillet 2009 - 11:05

bonjour a tous et toutes
après avoir éplucher ce forum, j'ai pas vraiment trouvé de réponse à ma question..

je développe un petit jeu en 3D sous MX2004..
j'avais prévu des images PNG pour afficher les logos 'SCORE' et 'HISCORE' en haut de mon écran de jeu.
j'arrive a les afficher grace à un overlay, mais le format ne correspond plus à celui prévu et la commande .scale n'est pas top (ou alors je l'utilise mal..) pour dimensionner mes images...
si quelqu'un a une autre solution a me proposer....???

autre souci, toujours pour mes scores..
en 2D, j'aurai utiliser un champ remis a jour a chaque 'exitframe' mais en 3D comment faire??
je n'ai pas besoin que cela soit affiché en 3D.. je suis preneur de toute idée..

merci de m'avoir lu

Quatre


#2 dZastreux

    Ceinture Marron

  • Members
  • 162 messages

Posté 11 juillet 2009 - 03:16

Selon les ressources nécessaires à l'exécution de ta 3D, tu peux peut-être gagner du temps et de la souplesse en décochant le DTS (Direct-to-stage) de ton shockwave3D, de façon à pouvoir afficher directement des Sprites ( .png, champs de texte, etc... ) par dessus.
Pour le moment, c'est la méthode que j'emploie et c'est vraiment pratique... Reste que j'ignore l'impact exact que ça a au niveau des performances... icon_confused.gif

P.S. Je ne veux pas dire de bêtises, puisque donc je n'ai pas encore essayé d'optimiser mon shockwave avec l'overlay, mais il me semble bien que le OverLay est une "Texture comme une autre" ; autrement dit, que son UVmap va se déformer en fonction du ratio de ton _movie ...
Les textures sont censées avoir pour dimension des "carrés" de 2 ; si ton _movie n'est pas carré, tu dois sûrement adapter le UVmapping comme tu le ferais avec une autre texture ?

Modifié par dZastreux, 11 juillet 2009 - 03:21 .


#3 dZastreux

    Ceinture Marron

  • Members
  • 162 messages

Posté 11 juillet 2009 - 03:48

Je viens de vérifier et effectivement, dans mon cas, lorsque je ne suis pas en DTS et que j'affiche un Sprite devant mon shockwave-3D, j'ai une utilisation CPU qui passe de env.23% à 27%
En passant mon shockwave3D en "direct-to-stage", je reste à env.19% en permanence ( mais sans utiliser d'overlay pour le moment)
Note : J'ai un très gros CPU donc ces résultats seraient certainement encore + significatifs sur une petite machine.

Bref, du coup, même si l'overlay en lui-même n'est pas forcément moins gourmand qu'un Sprite placé devant au moment précis où on "affiche les scores", ça fait quand même une grosse différence globalement le reste du temps...
Le seul hic, effectivement, c'est si on veut afficher des textes dynamiques ou des menus interactifs par-dessus la 3D :
Là, ça va demander nettement plus de travail de créer à la volée une texture avec des scores ou du texte dynamiquement crée en Lingo, et/ou de délimiter des parties de l'overlay sur lesquelles un clic aurait un effet donné... bandit.gif

Ce qui serait vraiment bien, ce serait de pouvoir, via le code, activer ou désactiver à la volée la propriété DTS du Sprite-3D : Ainsi pour un menu ou des scores, on pourrait utiliser d'autres Sprites devant la 3D sans que ça affecte les performances le reste du temps.
...ça resterait peut-être un poil + lourd en CPU au moment même de l'appel au menu/score MAIS à ce moment précis, c'est peut-être un peu moins important et ça permettrait une souplesse beaucoup plus grande.
Puisque ça me concerne aussi, je vais chercher un peu dans cette direction et je te tiens au courant si je trouve quelque-chose icon_biggrin.gif


Edit : Apparemment ce serait en effet possible et, je crois dans nos cas respectifs, le meilleur compromis à faire en terme de rapport quantité de travail / performances :


Modifié par dZastreux, 11 juillet 2009 - 03:53 .


#4 dZastreux

    Ceinture Marron

  • Members
  • 162 messages

Posté 11 juillet 2009 - 04:10

(Triple-post, désolé)
...Je confirme, ça marche d'enfer icon_twisted.gif

Lingo

on beginSprite me
gSprite3D = Sprite(spriteNum)
gSprite3D.member = member("shockWave3D_BlankWorld")
gWorld3d = gSprite3D.member
me.backToPure3D()
End

On display2D me
sprite("ScoresTxt").text = monScore & " points !"
gWorld3d.directToStage = FALSE
End

On pure3D me
gWorld3d.directToStage = TRUE
End
...ça n'empêche pas de garder un overlay pour certains éléments ( croix de visée sur un First Person Shooter, ou "simple" carte de labyrinthe, etc... Par exemple )
De plus, pour les éléments n'ayant pas absolument besoin de prendre place directement par-dessus de la 3D elle-même, il reste le moyen d'utiliser des cadres de bordure hors du Sprite-3d.

Reste le cas le plus embêtant :
Celui où les scores apparaissent en permanence par dessus la 3D et non seulement dans un tableau récapitulatif se superposant à la 3D à la seule fin d'une partie...
Dans ce cas très précis, obligé de passer par l'overlay en recalculant avec de l'imaging LINGO le texte à afficher dans la "nouvelle" texture...
Pour ça, par contre, je pense que quelques vieux roublards du forum seront mieux t'aiguiller que moi icon_wink.gif
Peut-être est-ce possible de "capturer l'image" du _Stage et des Sprites de texte contenant les scores, même s'ils sont "sous la 3D" , avec la fonction copyPixels, puis de changer la propriété ".image" de la texture d'overlay avec celle de l'image "capturée" ?

Modifié par dZastreux, 11 juillet 2009 - 04:13 .


#5 Quatre1124

    Ceinture Blanche

  • Members
  • 10 messages

Posté 12 juillet 2009 - 10:22

salut
je te remercie pour toutes tes réponses..
je vais regarder ça des que j'ai un peu de temps

pour mon cas, j'aimerais pouvoir afficher en permanence devant mon acteur 3D , 2 images png fixes et 2 champs variables (l'un mis a jour a chaque 'gototheframe' selon une variable et l'autre mis à jour uniquement si la variable du premier dépasse la valeur de base)

j'ai trouvé ici
http://pagespro-orange.fr/freextras/lingo_fr.html#lauch

un script permettant d'afficher un texte dynamique sur la scène 3D mais je n'ai pas encore essayer.. a suivre..


Quatre



#6 dZastreux

    Ceinture Marron

  • Members
  • 162 messages

Posté 17 juillet 2009 - 01:13

Citation (Quatre1124 @ Jul 12 2009, 11:22 AM)

Salut Quatre1124 ; merci pour ce lien très sympathique : Je n'ai pas encore pu regarder les codes sources en détail, mais je crois qu'avec tout ça, y aura plus besoin de jouer sur le DTS et que tout devrait pouvoir se faire directement et optimalement avec l'overlay icon_biggrin.gif

#7 Quatre1124

    Ceinture Blanche

  • Members
  • 10 messages

Posté 24 juillet 2009 - 12:03

je suis de retour
en fait j'ai trouvé encore plus simple pour mon application...
dans l'inspecteur des propriétés de ma scène 3D, j'ai décoché "1°plan"
j'ai donc pu insérer mes acteurs 2D de manière classique et interagir avec eux...

#8 dZastreux

    Ceinture Marron

  • Members
  • 162 messages

Posté 24 juillet 2009 - 02:58

??? 1°Plan ???
J'ai ça nulle part dans le Property Inspector de mon shockwave-3D !
J'utilise Director 11.5 en anglais (version tryout) et tout ce que j'ai dans les paramètres qui me permette de faire ce que tu dis , c'est le DTS (Direct To Stage) mais, donc, avec les impacts de performances décrits plus hauts... icon_surprised.gif





1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS - Tel. 0826 466 613 - Fax. 01 72 70 31 38

FFP