Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-07-22 09:49:08 Videoplane et point d'ancrage : Zoomer dans une image à partir du bas

Jitcode
membre
Date d'inscription: 2010-08-19
Messages: 50

Videoplane et point d'ancrage : Zoomer dans une image à partir du bas



Bonjour,

Pour un spectacle, j'envoie une vidéo d'un personnage (sur fond noir) qui grandit sur une durée de 2 minutes.
J'ai utilisé l'outil "jit.rota" (voir 1er patch).
Avec les messages "Anchor_x" et "Anchor_Y" j'ai pu décaler le point d'ancrage de l'image vers le bas de l'écran.
Ainsi quand je zoome, l'agrandissement se fait à partir du bas de l'image resizée et non de son centre.
Le bas de l'image reste en bas de l'écran et ne disparaît pas, donc le personnage n'a pas les jambes coupées (le fichier "bball.mov" se prête à la situation).

Je voudrais faire la même chose avec "jit.gl.videoplane" pour faire travailler la carte graphique plutôt que le processeur.
Je n'arrive pas à faire la même chose, le zoom se fait toujours à partir du centre de l'image résizée et non en bas.
Le personnage se retrouve les jambes coupées.

Je m'y perds avec tous les paramètres openGL.
Avez-vous une idée ? D'avance merci.


Patch avec Rota :

----------begin_max5_patcher----------
1322.3oc0ZtsaaaCF.9ZWf9NPXLfdiqg3AQItqxdB1tbXEEAxVLNLSRTkhNI
sE6cY2tmi9hMdP9ThTrhijp8MVRTG3++G+OQR+82+tISWHejWME7qfOAlL46
lVl3Zy1xjMMLYZdxiKyRpbO3zkx7bdgd5r5ap4Opc23ujx7ssJRcsIWb2Ggj
ssdirPWI9F2dOHYdvl1KVmKJx3ZWO.2zZYhd4shhUWq3K0dgjRvl2BvnyoHV
HLZF.xBssfLsC97deO4Z8lO31t4F0pEtF10yVIpHI2IQS+MkHIap6N+y6em8
n4vr2NY98atohqMmk9i+aYRVxJNHkCx9PxhpkhpJN3O29NYhB9R45B2KhZhl
v9iljHKI.PH1efYOfYmwj7OjUBsPV.RWCJkhBMH8CIEKUVjVJWq.eyXDxUfe
7ufxDkVnrO3hjpty2n9CuHLYe75MTOGvaUlHkqZxWEuS6yjIZirUtVefdtkH
mt2q0P6ItuD59TwLzYzTMWcMuHYQF+.1bHx11cRkvXwjXMNNrc2yp+ZI2KCS
mB97ICtB9CFJ8byRCqRy4UU.DInwPf39ypBagHgwhiMzKLddbTnIfX7wBB9h
.YHLxLc+hlMxfwCDMhYysvHL34v3UXRgZkTBaHIvzEIEqFHnYMhLwxdtElIH
2sR00eE7KvlPJh1LRQsfTTGQJBEL2PznHmea74j40wbEMYJwMgJRT+m.ciaH
L.d94GdLPAoMFyhP6+LgWjgqP392f4xOR0Kvq92t4xGWlxoLBSS3JJn2mdDL
hXiZCIgCDubEGNzFXsD25NgdtRpS.WsvTGeZtzLUplyI1iy6DxvyQFjhnT2Q
XH4XQvZmdFM357DsR7nEgickD1YH0ZcDXX+UGAM1yHeIDT1YWIDuLhdrMDg5
QDEv7Hx9xWTHR5VRiVgDLp+fTcNyZ6n3fKGHUWzdqVR8HjpyTd9VutVtZUFu
ILP2Emt6EFD5CCC2tPBHuQRvadcDZp1fAXIC9hQvTR.twZuouxZuQGGU3cKY
ZD4zq99mwbeU7jzFCxzRkS3SfRPSjXKkh2RIr2GhcALUNaIQeQOOWdufCtJU
jCvn.6ZQAtJYsVVoSTZ.DbUlTV1bsRguNR1AWyn5BlX9YDCOaKTpLofm0DSX
mPXIeTHX.xZLgvH+rdi5vR9tX0RYlT4+NAyQQwDLbl4LFBFRY1ynXy4T6YgA
PFE9FhJ0pRCQudslP2WqgjfSVqYjv.VrSqg3Hq8SvbRfEE8hVa8SJePTjJen
wnt6z8REuZyxIueTBbcVF+7qp06CS5rHY4euRYmZxAb60mZKt89nEGHSpJtp
7Hgll81VB7ivPxwPXHhUmOh5B3Vm2lzqLb6z0Xj43nV6ldGi9OsaSld5tp5j
R6MdBbqjqUK27U2rd.f8DxTdkVTrciM9ztYgr+ScqHMkWbfuUpnxVziCgAsO
d22BFbzELa0RGWvBOpbkKRc6oX0l0A2unS9cEc2E60Q8shP5hh7T0syZhw32
4Kr2UCmtD1IUY7sh6jbgHmHhgA9ZqMoB2d4vwX6VYzAkAO5PlzIOxwevGGML
i9HB1UvWHZ+Qe2kC2n+SSAzWJC0W4AJDdnx.GTkANPJC6mwHSWzkmlNcDL+Q
zAJ3mAmga1w3Q0rA0oLljwmzcxD.FM9BVmpga7kK6+IjNXZRGeAafRYPhXie
TVX2LKiGeJGLHkvW+WZjFsWI7zntR35YykTVdOWUUKJdcvLm367KaAcl+ZQg
+ZunLUwuWr4UhMs39ple9erhtSVN
-----------end_max5_patcher-----------


Essai avec Videoplane :

----------begin_max5_patcher----------
1546.3oc4Z1rbahDD.9rSU4cXJcIWbnleXFf8jySvtG2Z2JkqQvXYbPLjAjs
2jZeW1q6yQdw14GzOXgjPJ.R1qJWVLCBn6O5tmta36u+cWMYp7YQ4Dvu.9Sv
UW8c8LWYmyLyUKm3pIy4OGmwKs+vI4hmjSeXx006qR7bkc9LIOYtnrD.8Hq1
aZhce5C3i99ql8NYdUY52Dl8g78fKmOew7z7LQk8BgVNaAuJ99z7Y2pDwUNY
M.x7PX50.THQe3fHyIAf0aC97FmL4hpsNat4p9qBg6TMYx5CwHW47418L4Sp
Td1D6d962+Ny25utt+vzGgdz1AEo+.EE6EnwDloQCLBRHZjoY2qQX42Jqv8O
qhr7IJ7hiRwx4yE4Uaio+PJm2FcP8pKGzBDjkNzZ+u8wmUWi6TylZmX8kcTv
xud2ckhJ8VI+3ei4Y7YBPh.j8A9zx3zxRA32WcLYo4hX4hb6AhaAkjn9Ck9Q
ZW+UnDghLeQhtfI4uISyq.IefmGqLXrPtPA9l1pSn.+3e.EbUUpBjr.LkW1c
lFzeHE6Gtg0IJhdofz6xj5KbaNmDVOF5J.YUecXdsgEEtcnK8sHsFUIT2Jx4
SyDMXPSzf2YbMsxv0VGfIS44yFnfb6AX8n8BEE3wzevr2FTaWKfVv+h1YsLs
JUlqMwc+0JbCON35uu3agZTp+PPqVMEQvWbKmtaKMbv.jpJ12eUNXuYs0J0q
yJ1qgFtGMzXL+Z1FRcKkxdMYk0iYmQnz5D8eiXjsGr0ikGQfT25lu8oFt+S1
h8+f.Z5LduWp1eDMT+EQaIZqW0D+JrTcTqoWzmNs9Q1XcLuvvPpdivKubKpj
ylos3agDr0Q8OZMlnwEJDxLIs5b3fmnC2tARpodsO26lGUfo.ghqK5dZqTg1
+1GQl943BOEDbHKDxNAhMviN.jU5OSQh9p91pRBPzVY2QVHItK9V5DqHVmqf
ehVqdFH0CoUdyx7Th7DgB7o7XU6dgA8u8FxOvitrIqtl5rOrgOnE24AcOllH
jEY7bwtwW.rGKEGh7L4vSBQq6QczOA9z5wsy4UpzmOSP7oz7D4SN5Atw.GSI
w.BCBtYpTYLLacQxdsW1zlqQhCtbMHMoMvmI1FlkUxhV6q8NHE4Dh3gPPq4G
VaExbqsRpah3ET9D6AQbUUqLB0eLhQbEWtAhBd8fHkfmzJgf8GgzIhc4Sn8E
y5qUdykOlpiWkjNec3J9hJo0DCf.2jIkEsG4hdbjDcXRxBWE4Jx0aazE6ZAF
9U3B52tm35jMJThRQdE2zO1MTZax71+gXtuZlY+Td7WlojKxSZfutCUjKCED
c8Rrsdg1AW0EEHTEGvn0A3SlhE5LNxZieQGeASXR8yxEt94diwtdDR5xirb5
rXYlTs7tCNHz2zManWDFQYQlsXD81LyV5LXhXngP08gGuta69dSUWKxmrpG4
qyoMzp5HRfYkRnmOzvi8n5tKh8I.9x2tDqDa1wK.RobgJdoszxxZ.aHtIhxp
zbqmyl+JZye08oIIh7FJTRZooZXKUg69dT2ELZmDrfCJXM3LzO.RiZx4ka0H
z27zjByiisbYmeir4ufLK3Te+d641PZGBZftXnQX31zfgbV+aOktxssX1p4F
XlgODynGCxPtUPHFDYoES6XBC2Os7QANc10mQBFsQWGqGQs0+SbIIaFLfXwu
SNVrCxkc3hXeFIMuauZpgSq5TzBSA0GoR4tifftle552PyQDl8kiihboTYGd
l0SatPib7Z+NYVgOCBFoSBF4XMMXXWEsggKeKXd4.+5lA32xHWnQBx29NJwP
CoMi402qCD.ehDfPfanYMGUqmXZvHnml2thgHHfeXjNEL2aZAgwZ5syFTMJn
KZjUuQipSEg0YACOtBVm71e4ZfiffgGHiSV.wigoiskItSVl3w2x7HDrw0xD
2sEHQ5eEYbELRmErQlX3NKXirMFZX7kqWlbbynD0IJSOVcw7r4BbEyT2hw0U
2XmX.0HzfnQ5.s3yjBAGDE5Ex+IpP0cghWT7nPUVKRNcYxb9CtRmYW6Fml6F
6DoIJwioKOjP8L1yp9e+GXjDrfA
-----------end_max5_patcher-----------

Hors ligne

 

#2 2014-07-22 13:24:16 Re : Videoplane et point d'ancrage : Zoomer dans une image à partir du bas

reno-
membre
Date d'inscription: 2010-01-12
Messages: 114

Re: Videoplane et point d'ancrage : Zoomer dans une image à partir du bas



tu peux utiliser le videoplane pour faire le rendu, mais utiliser des jit.gl.slab ou jit.gl.shader ou jit.gl.pix pour faire des traitements via la carte graphique.
pour l'exemple du rota, il y a déjà un shader rota qui existe.
td.rota.jxs-help.maxpat
tu le trouve dans les exemples jitter livrés avec Max

Hors ligne

 

#3 2014-07-22 18:03:15 Re : Videoplane et point d'ancrage : Zoomer dans une image à partir du bas

Jitcode
membre
Date d'inscription: 2010-08-19
Messages: 50

Re: Videoplane et point d'ancrage : Zoomer dans une image à partir du bas



Cool merci !
J'avais survolé les jxs l'année dernière et j'avais complètement oublié ces outils.

Ca marche bien avec les paramètres "anchor x = 0.5" et "anchor y = 1.", le point d'ancrage est bien en bas au milieu (c'est évident en agissant sur "theta" ou "zoom").

Tout en gardant ce point d'ancrage sur l'image resizée, j'ai essayé de déplacer cette image vers la gauche en jouant sur "offset", malheureusement ça agit sur le point d'ancrage !

J'ai utilisé un second "jit.gl.slab" en cascade en utilisant son "offset x" et ça fonctionne.
Ce n'est pas un peu tordu ? On ne peut pas le faire avec un seul "jit.gl.slab" ?

Hors ligne

 

#4 2014-07-22 19:14:18 Re : Videoplane et point d'ancrage : Zoomer dans une image à partir du bas

reno-
membre
Date d'inscription: 2010-01-12
Messages: 114

Re: Videoplane et point d'ancrage : Zoomer dans une image à partir du bas



Non, c'est même normal d'utiliser une succession de shaders pour modifier ta texture.
Tu pourrais le faire en modifiant le jxs et en rajoutant un offset après l'opération de anchor… Ca serait un (tout petit) peu efficace… mais rien de très important.
Ca ne "coûte" pas grand chose en terme de performance.

Hors ligne

 

#5 2014-07-23 11:24:02 Re : Videoplane et point d'ancrage : Zoomer dans une image à partir du bas

Jitcode
membre
Date d'inscription: 2010-08-19
Messages: 50

Re: Videoplane et point d'ancrage : Zoomer dans une image à partir du bas



Alors je vais m'en contenter, ça marche.
Bizarre tout de même que l'offset du shader ne réagisse pas de la même manière qu'avec le "jit.rota". C'est comme si on réglait le point d'arrivée lors d'un zoom.

"Tu pourrais le faire en modifiant le jxs et en rajoutant un offset après l'opération de anchor" : je ne sais pas modifier un jxs !

Merci encore et bel été.

Hors ligne

 

#6 2014-08-07 22:00:46 Re : Videoplane et point d'ancrage : Zoomer dans une image à partir du bas

Derrgis
modérateur
Lieu: Lyon, France
Date d'inscription: 2009-09-14
Messages: 118
Site web

Re: Videoplane et point d'ancrage : Zoomer dans une image à partir du bas



On peut aussi utiliser [jit.anim.node] sous Max 6 pour ce genre de choses (si j'ai bien compris, lecture en diagonale …)

{
    "boxes" : [         {
            "box" :             {
                "maxclass" : "message",
                "text" : "grow 0.01 0.01 0.01",
                "numoutlets" : 1,
                "fontsize" : 13.0,
                "outlettype" : [ "" ],
                "numinlets" : 2,
                "patching_rect" : [ 253.0, 161.0, 125.0, 19.0 ],
                "id" : "obj-16",
                "fontname" : "Arial"
            }

        }
,         {
            "box" :             {
                "maxclass" : "newobj",
                "text" : "loadbang",
                "numoutlets" : 1,
                "fontsize" : 12.0,
                "outlettype" : [ "bang" ],
                "numinlets" : 1,
                "patching_rect" : [ 629.0, 124.0, 60.0, 20.0 ],
                "id" : "obj-9",
                "fontname" : "Arial"
            }

        }
,         {
            "box" :             {
                "maxclass" : "newobj",
                "text" : "jit.noise 4 char 10 10",
                "numoutlets" : 2,
                "fontsize" : 12.0,
                "outlettype" : [ "jit_matrix", "" ],
                "numinlets" : 1,
                "patching_rect" : [ 629.0, 290.0, 121.0, 20.0 ],
                "id" : "obj-4",
                "fontname" : "Arial"
            }

        }
,         {
            "box" :             {
                "maxclass" : "newobj",
                "text" : "jit.anim.node @scale 0.1 @anchor 0. -0.2",
                "numoutlets" : 2,
                "fontsize" : 12.0,
                "outlettype" : [ "", "" ],
                "numinlets" : 1,
                "patching_rect" : [ 253.0, 199.0, 232.0, 20.0 ],
                "id" : "obj-2",
                "fontname" : "Arial"
            }

        }
,         {
            "box" :             {
                "maxclass" : "newobj",
                "text" : "jit.gl.videoplane",
                "numoutlets" : 2,
                "fontsize" : 12.0,
                "outlettype" : [ "jit_matrix", "" ],
                "numinlets" : 1,
                "patching_rect" : [ 253.0, 329.0, 93.0, 20.0 ],
                "id" : "obj-1",
                "fontname" : "Arial"
            }

        }
,         {
            "box" :             {
                "maxclass" : "newobj",
                "text" : "jit.window",
                "numoutlets" : 2,
                "fontsize" : 12.0,
                "outlettype" : [ "bang", "" ],
                "numinlets" : 1,
                "patching_rect" : [ 72.0, 226.0, 63.0, 20.0 ],
                "id" : "obj-8",
                "fontname" : "Arial"
            }

        }
,         {
            "box" :             {
                "maxclass" : "newobj",
                "text" : "jit.gl.render",
                "numoutlets" : 2,
                "fontsize" : 12.0,
                "outlettype" : [ "bang", "" ],
                "numinlets" : 1,
                "patching_rect" : [ 72.0, 199.0, 70.0, 20.0 ],
                "id" : "obj-7",
                "fontname" : "Arial"
            }

        }
,         {
            "box" :             {
                "maxclass" : "newobj",
                "text" : "t b b erase",
                "numoutlets" : 3,
                "fontsize" : 12.0,
                "outlettype" : [ "bang", "bang", "erase" ],
                "numinlets" : 1,
                "patching_rect" : [ 72.0, 133.0, 67.0, 20.0 ],
                "id" : "obj-6",
                "fontname" : "Arial"
            }

        }
,         {
            "box" :             {
                "maxclass" : "toggle",
                "numoutlets" : 1,
                "outlettype" : [ "int" ],
                "numinlets" : 1,
                "patching_rect" : [ 72.0, 66.0, 20.0, 20.0 ],
                "id" : "obj-5",
                "parameter_enable" : 0
            }

        }
,         {
            "box" :             {
                "maxclass" : "newobj",
                "text" : "qmetro 33",
                "numoutlets" : 1,
                "fontsize" : 12.0,
                "outlettype" : [ "bang" ],
                "numinlets" : 2,
                "patching_rect" : [ 72.0, 103.0, 65.0, 20.0 ],
                "id" : "obj-3",
                "fontname" : "Arial"
            }

        }
,         {
            "box" :             {
                "maxclass" : "message",
                "text" : "scale 0.1",
                "numoutlets" : 1,
                "fontsize" : 12.0,
                "outlettype" : [ "" ],
                "numinlets" : 2,
                "patching_rect" : [ 406.0, 161.0, 59.0, 18.0 ],
                "id" : "obj-11",
                "fontname" : "Arial"
            }

        }
],
    "lines" : [         {
            "patchline" :             {
                "source" : [ "obj-16", 0 ],
                "destination" : [ "obj-2", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-2", 0 ],
                "destination" : [ "obj-1", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-11", 0 ],
                "destination" : [ "obj-2", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-9", 0 ],
                "destination" : [ "obj-11", 0 ],
                "hidden" : 0,
                "midpoints" : [ 638.5, 153.5, 415.5, 153.5 ],
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-6", 1 ],
                "destination" : [ "obj-16", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-4", 0 ],
                "destination" : [ "obj-1", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-9", 0 ],
                "destination" : [ "obj-4", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-6", 0 ],
                "destination" : [ "obj-7", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-6", 2 ],
                "destination" : [ "obj-7", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-5", 0 ],
                "destination" : [ "obj-3", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
,         {
            "patchline" :             {
                "source" : [ "obj-3", 0 ],
                "destination" : [ "obj-6", 0 ],
                "hidden" : 0,
                "disabled" : 0
            }

        }
],
    "appversion" :     {
        "major" : 6,
        "minor" : 1,
        "revision" : 7,
        "architecture" : "x86"
    }

}

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024