Aller au contenu


[résolu] :  3D interlacée ?


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

#1 gegedade

    Ceinture Marron

  • Members
  • 125 messages

Posté 08 octobre 2011 - 10:04

Bonjour à toutes et à tous

Pour le post précédent (vues caméra déformées) je pense que le mieux est encore le copypixels en limitant la taille de sa scène. Mais j'ai une autre problématique, quelqu'un a-t-il une idée géniale ?

J'ai deux vues caméra. Comment procéder pour interlacer les deux vues, autrement dit créer une ligne venant d'une caméra puis une ligne venant de l'autre (dans mes rêves sur 1080 lignes, mais plus raisonnablement sur 576, c'est-à-dire 288 lignes = vue de droite alternant avec 288 lignes = vue de gauche), sans pour autant mettre le FPS à 3 im/s ??

Vous me voyez venir bien sûr. Nous savons bien créer une vue stéréo anaglyphe, nous savons à peu près créer une vue stéréo side-by-side ou over-under, il ne nous manque plus que la vue interlacée, et nous aurons quasiment couvert le champ des possibles en stéréoscopie, et surtout nous pourrons utiliser ces applis sur le Net... Qui ne propose pour l'instant, à première vue, que des films (Youtube 3D, jetez-y un oeil, il y a des choses rigolotes).

Je me dis que peut-être, en créant une vue complète de la caméra de gauche et en superposant à cette vue un "peigne" dans lequel on a une ligne de la caméra droite puis une ligne transparente, ça fonctionnerait peut-être ? Je ne me rappelle plus si on peut faire une image en 32 bits... Enfin je réfléchis de mon côté, mais c'est si bon de lire des posts de gens qui ont des idées...

Bon, sachant que beaucoup parmi sont en train de se tourner vers autre chose que Director, si vous voyez une solution autre, je suis preneur aussi...

Mais amitiés directoresques quand même !

#2 Alexx

    Ceinture Noire

  • Members
  • 343 messages

Posté 08 octobre 2011 - 10:20

oui, tu peux créer une image en 32 bits et lui assigner directement une couche alpha prédéfinie
tu peux aussi utiliser une autre ruse qui consiste à utiliser une des encres d'affichage des sprites, mask je crois (à vérifier), qui permet d'utiliser l'acteur suivant dans le casting comme couche alpha.
Par exemple ton sprite affiche l'acteur 1, tu colles alors la couche alpha dans l'acteur 2, et zou... pas besoin de manips compliquées... mais ça ne fonctionne qu'avec des acteur bitmaps, donc ça implique de coller l'image du sprite 3D d'abord dans un acteur bitmap.
A comparer avec des manips en copypixels, pour voir ce qui est le plus rapide.


PS: on dit pas "interlacée" mais "entrelacée"... "interlace" c'est de l'anglais ;)

Modifié par Alexx, 08 octobre 2011 - 10:22 .


#3 gegedade

    Ceinture Marron

  • Members
  • 125 messages

Posté 08 octobre 2011 - 10:28

PS: on dit pas "interlacée" mais "entrelacée"... "interlace" c'est de l'anglais ;)

Oups, pardon, mes doigts dérapent... et les aller-retour entre l'anglais et le français ne favorisent pas le respect de notre belle langue (je pense aux conversations avec mes collègues, quand on se dit les scripts ("alors là, tu mets un repeat with UN to QUATORZE") !

Bon, je vois que tu en es à la même solution que moi, je vais tester... Et je tiens tout le monde au courant (même si on est de moins en moins nombreux, snif !).

Merci - PS : je suis à Pau, toi à Bordeaux, avec Bubar qui est à Oloron, on est quasiment tous pays ! Faudra qu'on se fasse un apéro un de ces jours !

#4 bubarnet

  • Members
  • 594 messages

Posté 08 octobre 2011 - 11:20

Pour une fois que j'interviens sur un sujet 3D, je confirme l'utilisation du mask. Soit par un setalpha(maskentrelacé) soit par im1.copypixels(im2,[#maskimage:maskentrelacé]).
J'aurais une préférence pour le copypixels, qui est extrêmement rapide.

Pour continuer sur un mauvais point, l'arrivée de la vraie 3D dans flash ne va pas aider director, quel dommage.

Et tout à fait d'accord pour un apéro :) A croire que le sud-ouest est le dernier bastion directorien. Reste plus qu'à trouver le temps !

#5 gegedade

    Ceinture Marron

  • Members
  • 125 messages

Posté 08 octobre 2011 - 06:03

Pouf pouf... pas bon en 3D, le gegedade... Pas très bon en autre chose non plus d'ailleurs.
Bon, j'ai créé un maskimage à partir d'une PNG importée dans le cast ("peigne"). Donc, en début de movie, je crée :
tempAlpha = member("peigne").image.createMask()

Je crée d'autre part deux textures :
myVG = member(1).newTexture("MyVG",#renderTexture, 1280, 720)
myVD = member(1).newTexture("MyVD",#renderTexture, 1280, 720)
(1280 x 720 : j'ai baissé mes prétentions...)

ensuite, dans une frame qui boucle, je crée deux rendertotexture des deux caméras (tout ça fonctionne) :
sprite(1).renderToTexture(sprite(1).camera(2), myVG)
sprite(1).renderToTexture(sprite(1).camera(3), myVD)

... et j'applique ces deux images à deux acteurs. Pour le premier (dont le sprite est dessous), pas de problème :
member("gauche").image=myVG.image

pour l'autre (vue de droite) qui est au-dessus, j'essaie d'appliquer mon masque :
member("droite").image.copypixels(myVD.image,member("droite").image.rect, myVD.image.rect,[#maskImage:tempAlpha])
... Ben ça march' pô. Erreur de script, "access not supported".

Qu'est-ce que je fais mal ? Z'avez une idée ?

Merci d'avance...

#6 gegedade

    Ceinture Marron

  • Members
  • 125 messages

Posté 09 octobre 2011 - 12:33

Pardon, le "access not supported", c'était ma faute. Ca c'est réglé. En revanche, je n'arrive pas à appliquer le masque. Mon acteur qui sert de masque est une PNG avec alpha, je dis en début de movie
tempAlpha = member("peigne").image.createMask() (et je mets tempAlpha en globale)

puis j'écris sur le exitframe
member("droite").image.copypixels(myVD.image,rect(0,0,1280,720), rect(0,0,1280,720),[#maskImage:tempAlpha])

Mon acteur "droite" se met bien à jour, mais aucun peigne ne se met en masque...

Une idée ?

#7 gegedade

    Ceinture Marron

  • Members
  • 125 messages

Posté 09 octobre 2011 - 01:43

Et dernier développement, ne vous ennuyez plus, c'est réglé, ça fonctionne. Ouf ! c'est un peu pointu pour moi (entre MaskImage et SetAlpha, 8 bits et 32 bits, la dimension, etc., j'ai mis un moment à m'en dépatouiller).

Merci de vos messages et je renouvelle l'invit pour un apéro aquitain !

#8 bubarnet

  • Members
  • 594 messages

Posté 09 octobre 2011 - 04:17

Tout est une question de couche alpha des membres.

Avec la fonction copypixels, il est essentiel que les images 32 bits issues de rendertotexture n'aient pas de couche alpha, sinon celle-ci va se mélanger avec le maskimage.
Inversement, avec la fonction setalpha, il est essentiel que les images aient une couche alpha, même si celle-ci est entièrement opaque.

Je joins en pj un exemple utilisant les 2 méthodes

#9 gegedade

    Ceinture Marron

  • Members
  • 125 messages

Posté 10 octobre 2011 - 09:51

Merci ! Il ne fallait pas :o) !

On procède à peu près de la même manière, sauf que j'ai créé mon peigne dans Photoshop (idiot) alors que j'aurais pu effectivement le créer dans Director à l'ouverture.

Je t'enverrai un lien lorsque la version stéréoscopique sera en ligne (ah mais il faudrait que tu aies un écran type LG 2342P ou peut-être Zalman Trimon... Bon, on attendra de se voir à Pau !

#10 bubarnet

  • Members
  • 594 messages

Posté 10 octobre 2011 - 12:20

J'ai fait mon peigne directement dans director, pour pouvoir mieux le "contrôler", et aussi parce qu'il est différent selon la méthode choisie. D'ailleurs après test, la version copypixel est très légèrement plus rapide (2 10ème de seconde sur 1000 images).

Par contre, je ne l'aurais pas sauvé en png. Ca reste un format destructeur, et dans un cas comme celui-là, ça aurait pu être gênant (la compression aurait pu créer des tons de gris , alors qu'il est essentiel d'avoir une succession parfaite de noir et blanc). Je parle au conditionnel, car vu ta réponse, je suppose que ça n'a pas été le cas.

Attention aussi si ta finalité est le dcr, car director peut compresser les bitmaps en jpg. Il faudra bien penser à empêcher ça. Le fait de créer le peigne en lingo permet aussi de réduire le poids, et accessoirement de pouvoir s'adapter simplement en cas de changement de taille à l'écran.

Bon ben maintenant, ça me me fait une raison officielle pour passer à Pau :)

#11 Ned.Net

  • Members
  • 727 messages

Posté 12 octobre 2011 - 06:27

heu... je veux bien faire partie de l'apéro :roll:
;-)

#12 gegedade

    Ceinture Marron

  • Members
  • 125 messages

Posté 12 octobre 2011 - 07:27

No problem ! Mais je suis nul pour organiser. Si vous voulez une rencontre directoresque aquitaine, je fournis le vin blanc moelleux, et vous vous chargez de la logistique !





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