anamorphose #2 le retour de la revanche du fils maudit
ou de la ténacité du myrmidon
Il va s’agir de tordre du pixel via un spectrum en polarisant l’image… ça peut paraître débile comme ça mais je t’assure qu’on va bien rigoler!
tlecoz avait relancé le post sur l’anamorphose en proposant une version largement plus clean de mon pauvre script et ça faisait un bail que j’avais ça dans un coin de la tête. http://www.nicoptere.net/blog/index.php/2007/06/20/6-anamorphose#c151 alors franchement niveau rendu c’est très propre, parcontre niveau temps voila ce qu’il m’a sorti : “la polarisation a pris 9823 millisecondes” hors 10secondes (compilation dans FD3 comprise), ça fait un peu beaucoup même pour de la très haute qualité.
J’ai téléchargé PV3D hier soir (tard) pour commencer à jouer avec et dans le dossier d’install il y avait un pack de classes estampillé blitzagency. donc je suis allé voir il font des trucs bien pointus en PV3D ( à voir : http://labs.blitzagency.com/ ) et je suis tombé sur un article à propos de la combinaison polarisation - soundspectrum qui m’a mis la larme à l’oeil et le feu au slip : http://labs.blitzagency.com/?p=118
donc je me suis empressé de regarder comment était foutu le script et évidemment, il y a 2 lignes que je n’aurais pas trouvées mais le reste, plus tout con tu meurs. la grosse différence c’est que ça permet de traiter la même image (1000*500pix) en 250 millisecondes ce qui est beaucoup plus raisonnable.
En fait j’ai repris la fonction proposée par blitzagency et j’ai typé les variables Number en int et uint, enlevé des trucs de ci de là et au final, j’ai réussi à dégraisser 30% de temps de calcul ce qui est très très bien pour une fin de semaine
Le prix à payer c’est une approximation parfois un peu plus abrupte des valeurs mais au final le résultat est comparable
ci dessous un exemple du truc :
j’ai laissé l’original pour comparer, commenté la source. dans la version modifiée, j’ai mis une booléenne resize et le diviseur pour le rayon … à tester.
Un exemple valant mieux que de longs discours, voila une appli :
attention en appuyant sur webcam tu vas multiplier la consommation de ton CPU par 2 mais comme c’est hyper trop beau tu ne pourras pas résister j’en suis sà»r.
Alors sinon le principe :
- on prend un son et on le charge
- on instancie polo, un objet de type Polo, comme le bonbon le plus trou qui est une variation sur Polarize là haut
- a la mise à jour:
- on fait un computeSpectrum
- en fonction des sliders RGB et de l’intensité on obtient une valeur ARGB
- on dessine un rectangle de cà´té pasH et de hauteur pasV dans le bitmap du spectre
- on copie le bitmap du spectre dans un autre qui s’appelle transfert
- on demande à polo de le polariser le bitmap transfert
- + si la vidéo est activée, on calcule un displacementMapFilter à partir du bitmap de sortie et on l’applique à la vidéo ce qui donne un effet fleubeuleub
les sliders sont relativement explicites je crois. Le displacementMap est indexé sur les canaux vert et bleu donc en les passant à zéro, ça annule l’effet sur la vidéo… tu verras quoi … au final sur ma machine, l’animation se traîne autour de 30% et monte à 70% avec la webcam mais ça reste moins que chez blitzagency o๠c’est du 100% direct.
Donc pour la musique j’ai mis des trucs assez différents :
- _ghost - lullaby qui est plutà´t dans les basses fréquences et ici http://ccmixter.org/media/files/_ghost/3631
- (re) Opérateur Fotokopieur - DCC : les gros breaks au début qui feront toujours la différence : http://www.midinetterecords.net/midi06.html#bas
- Besh o drom - koczkaé : un groupe Hongrois qu’il faut avoir vu en live avant de mourir. l’instrument dans cette chanson est un cymbalum, instrument à cordes frappées, assez bizarre. en tous cas les fréquences sont très très très différentes de celles du lullaby et c’est pour ça qu’il est là .
- Mr Bungle - california juste parce que j’aime bien
non, en fait plusieurs ambiances très variées dans la même piste. à écouter.
Alors là pour le coup celui là ne sert vraiment, mais alors vraiment à rien…
j’adooooooooore ! ! !
oui j’adore ce genre d’expérimentation ! c’est à la fois technique et poétique.
Bravo Nicop et bravo labs.blitzagency
"ou de la ténacité du myrmidon"
j’aime aussi cette phrase
mais moi, dans ce genre d’exercice, je me qualifierai plus de beotien plutot que myrmidon
^^
merci JP
je me suis plongé dans la mythologie grecque eh ben c’est plus complexe que l’actionscript dis donc
Myrmidon, le peuple des fourmis, assidus, ténaces, éaque (le fondateur) est le grand père d’Achille et de … AJAX !
Béotien (réputés rustres et incultes), c’est vrai que tu l’utilises souvent… en même temps la Béotie a donné Cadmos, Oedipe et Hercule…ça va
et c’est Hercule qui tâtait bien en AS3 je crois :p
WAOW, euh ca claque pas mal !
J’ai pas le temps d’etudier le code ce soir, un peu overbooké en ce moment, mais j’ai vraiment hate de voir comment tu as fait pour gagner 10 secondes sur l’anamorphose de base °_°
Bravo en tout cas et merci pour le partage ! Je sens que ca va resservir vite ce machin
salut Thomas, ben de rien pour le partage, c’est grâce à toi que ça a rebondi
Franchement tu vas voir que c’est rien du tout et que l’un comme l’autre on s’est égarés dans des trucs super compliqués pour… rien.
C’est la même technique qu’utilise EDWIN HEIJMEN pour sa spirale ici ) mais en plus simple puisqu’il n’y a pas d’offset à calculer. Je reste assez sceptique quant aux utilisations mais si tu sors quelque chose de beau, je veux bien voir :).
Pense tu qu’il soit possible de creer le genre de photo necessaire à la realisation d’une panoramique a 360 degré directement en AS3, a partir d’une photo rectangulaire lambda ? J’ai pensé tout de suite a ca quand j’ai vu la premiere anamorphose, mais j’avais laché l’affaire vu le temps que prenait mon machin
(exemple sur MB avec une photo zarbi : flash.mediabox.fr/index.p… )
salut,
oui c’est possible de polariser comme ça aussi
ça correspond à : déformations -> coordonnees polaires -> poalire en rectangulaire dans photoshop.exemples : toshop.free.fr/technique/…
De base, il faut intervertir cartesianX/Y dans getPixel32 avec X/Ydans setPixel32. Il faut surtout trouver comment ‘boucher’ les vides et recentrer le bouzin.
hello ! ca fait un peu beaucoup meme pour de la tres haute qualite : certaines parenthèses en dsent + que tout le reste
merci pour ton billlet ! toujours un lpaisir de te lire.