[résolu] : 3D interlacée ?
#1
Posté 08 octobre 2011 - 10:04
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
Posté 08 octobre 2011 - 10:20
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
Posté 08 octobre 2011 - 10:28
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
Posté 08 octobre 2011 - 11:20
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
#5
Posté 08 octobre 2011 - 06:03
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
Posté 09 octobre 2011 - 12:33
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
Posté 09 octobre 2011 - 01:43
Merci de vos messages et je renouvelle l'invit pour un apéro aquitain !
#8
Posté 09 octobre 2011 - 04:17
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
Posté 10 octobre 2011 - 09:51
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
Posté 10 octobre 2011 - 12:20
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
Posté 12 octobre 2011 - 06:27
#12
Posté 12 octobre 2011 - 07:27
1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)









