IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

3D Python Discussion :

[VPython] Exporter une animation réalisée


Sujet :

3D Python

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut [VPython] Exporter une animation réalisée
    Bonjour à tous,

    Je crois que tout est dans le titre... Donc je voullais savoir s'il était possible d'exporter "proprement" une animation réalisée avec la bibliothèque vpython.
    Si vous pouvez également m'indiquer comment fermer une fenetre d'animation ce serait gentil

    Merci @ tous d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Pour information
    En fouillant un peu plus dans la doc de vpython, j'ai vu qu'il est possible d'exporter la scene sous forme d'images au format POV. Ceci se fait à l'aide du module povexport disponible sur le site officiel.

    Pour ce qui est de la reconstitution de la séquence video, je n'ai pas encore trouvé la solution qui me satisfasse (sur le site officiel ils proposent de télécharger un logiciel payant dont je ne fairais pas la publicité ici )

    Je pense qu'il existe une solution du côté de Blender. Si vous en savez un peu plus, n'hésitez pas à m'en faire part

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut A noter
    Visiblement, povexport présente un bug avec la dernière version de vpython. Pour éviter ce désagrément, il faut modifier vers la ligne 351 la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    obj_name = str(obj.__class__)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	if obj.__class__==box:
    		obj_name ='box'
    	elif obj.__class__==cone:
    		obj_name ='cone'
    	elif obj.__class__==sphere:
    		obj_name ='sphere'
    	elif obj.__class__==cylinder:
    		obj_name ='cylinder'
    	elif obj.__class__==curve:
    		obj_name ='curve'
    	elif obj.__class__==ring:
    		obj_name ='ring'
    	elif obj.__class__==arrow:
    		obj_name ='arrow'
    	else : obj_name=''
    Voilà voilà...

  4. #4
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Si tu as tes images et que tu souhaites reconstruire ta vidéo, c'est simple, il suffit de faire un convertisseur Image-->video avec Pymédia....

    Il y ades source sur pymedia.org.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Merci
    Citation Envoyé par parp1
    Si tu as tes images et que tu souhaites reconstruire ta vidéo, c'est simple, il suffit de faire un convertisseur Image-->video avec Pymédia....

    Il y ades source sur pymedia.org.
    Merci pour l'info, je vais regarder tout de suite

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Problèmes
    Après avoir regardé un peu mieux la problèmatique, j'arrive à récupérer des fichiers .bmp issus d'une capture d'image .pov. Pour ce faire, j'ajoute le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.popen("D:\Program Files\POV-Ray for Windows v3.6\bin\pvengine.exe monVpython.Pov")
    Qui exporte l'image.pov en image.bmp.

    La phase suivante consite donc à utiliser pymédia comme indiqué. Or, plusieurs problèmes se posent. Tout d'abord, il est regrétable que ce module ne soit pas disponible pour Python25 Ensuite, j'ai un soucis dans le code présenté par le site officiel (même problème avec le code trouvé dans le forum ici) lors de l'écriture des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    def makeVideo( inPattern, outFile, outCodec ):
      # Get video stream dimensions from the image size
     
      pygame.init()
      i= 1
      # Opening mpeg file for output
     
      e= None
      i= 1
      fw= open( outFile, 'wb' )
      while i:
        if os.path.isfile( inPattern ):
          s= pygame.image.load( inPattern )
          if not e:
            if outCodec== 'mpeg1video':
              bitrate= 2700000
            else:
              bitrate= 9800000
            params= { \
              'type': 0,
              'gop_size': 12,
              'frame_rate_base': 125,
              'max_b_frames': 0,
              'height': s.get_height(),
              'width': s.get_width(),
              'frame_rate': 2997,
              'deinterlace': 0,
              'bitrate': bitrate,
              'id': vcodec.getCodecID( outCodec )
            }
            print 'Setting codec to ', params
            e= vcodec.Encoder( params )
            t= time.time()
     
          # Create VFrame
     
          ss= pygame.image.tostring(s, "RGB")
          bmpFrame= vcodec.VFrame( vcodec.formats.PIX_FMT_RGB24, s.get_size(), (ss,None,None))
          yuvFrame= bmpFrame.convert( vcodec.formats.PIX_FMT_YUV420P )
          d= e.encode( yuvFrame )
          fw.write( d )
          i= 0
        else:
          print '%d frames written in %.2f secs( %.2f fps )' % ( i, time.time()- t, float( i )/ ( time.time()- t ) )
          i= 0
     
      fw.close()
      pygame.quit()
    Erreur lors de l'écriture dans le fichier :
    fw.write( d )
    TypeError : argument 1 must be string or read-only buffer, not pymedia.video.vcodec.VFrame

    A ce stade, je ne sais plus comment faire, please help.

  7. #7
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    C'est dommage.. As tu installé pygame?

    Je ne comprends pas de quoi cela peut il venir car je n'ai jamais eu de soucis avec pymédia...

    Tu peux nous donner un peu plus d'informations...
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Je ne sais que dire de plus,
    Salut,
    Merci pour l'info, concernat pygame, je l'ai effectivement installé avec succes, mais mon erreur est plus loin dans le déroulement du programme lorsque j'écris dans le fichier. J'ai fais un essais avec le script ci-dessous qui est le plus simple possible avec une seule image, et il me sort toujours la même erreur lors du fw.write(d).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    #D:/Python24/python.exe
    import sys, os, time
    import pymedia.video.vcodec as vcodec
    import pygame
     
    pygame.init()
    fw= open( 'test.mpeg', 'wb' )
    s= pygame.image.load( "D:/Sauvegardes/Python/pov/test.jpg" )
    bitrate= 2700000
    params= { \
    	'type': 0,
    	'gop_size': 12,
    	'frame_rate_base': 125,
    	'max_b_frames': 0,
    	'height': s.get_height(),
    	'width': s.get_width(),
    	'frame_rate': 2997,
    	'deinterlace': 0,
    	'bitrate': bitrate,
    	'id': vcodec.getCodecID( 'mpeg1video' )
    }
    print 'Setting codec to ', params
    e= vcodec.Encoder( params )
    t= time.time()
    ss= pygame.image.tostring(s, "RGB")
    bmpFrame= vcodec.VFrame( vcodec.formats.PIX_FMT_RGB24, s.get_size(), (ss,None,None))
    yuvFrame= bmpFrame.convert( vcodec.formats.PIX_FMT_YUV420P )
    d= e.encode( yuvFrame )
    fw.write( d )
    fw.close()
    pygame.quit()
    Merci quand même pour les infos, je jetterrai un oeuil à ce module à l'occasion, et pour ce qui est d'exporter mes animations, je vais oublier pour quelque temps...
    Je posterai quand même bientôt un code pour montrer ce qu'on peut faire du point de vue de la 3D avec vpython et une jolie interface graphique Tkinter histoire de faire un peu de pub pour ce superbe language

Discussions similaires

  1. Exporter une animation Blender vers OpenGL
    Par poliok dans le forum OpenGL
    Réponses: 23
    Dernier message: 17/01/2011, 10h27
  2. Exporter une animation
    Par slim_java dans le forum 2D
    Réponses: 6
    Dernier message: 25/03/2009, 00h35
  3. Réaliser une animation
    Par Diningdead dans le forum Flash
    Réponses: 7
    Dernier message: 08/03/2007, 08h03
  4. exporter une animation sans arrière plan
    Par fenryo dans le forum Flash
    Réponses: 2
    Dernier message: 11/12/2006, 02h50
  5. Comment réaliser une animation ?
    Par julien.jonard dans le forum MATLAB
    Réponses: 1
    Dernier message: 09/10/2006, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo