
Re: essai de bidouillage 360°
le principe est assez simple : comme pour tout panorama, il faut prendre plusieurs clichés, et les assembler. Pour un panorama de paysage à 360°, il est recommandé de faire un cliché tous les 30° environ, soit 12 photos, afin d'avoir assez de zone de recouvrement entre chaque photo.
Sauf que là, des clichés, on va en faire le plus possible : des centaines, des milliers si possible ! chaque photo ne correspondra qu'à un degré minime de la rotation de l'objet.
mais rassurez-vous, on va pas faire ça à la main : on va faire de la vidéo.
mais il faut un accessoire indispensable : un plateau tournant motorisé à vitesse lente.
c'est là le problème, il faut un truc qui tourne doucement ! le gars avait bricolé un truc à partir d'une boule disco ; j'ai utilisé un truc presque similaire que j'avais la chance d'avoir à disposition : un gadget de déco acheté y'a 15 ans qui trainait dans un carton, qui tourne doucement.
donc une fois qu'on a ça :
- on place l'objet sur le plateau qui tourne, on place un caméscope (ou APN en mode vidéo) devant, avec un bon éclairage (ce qui manquait à mon test...)
- on filme une rotation complète.
puis (c'est là qu'on rigole)
- on extrait chaque image de la vidéo obtenue (VirtualDub fait très bien ça à partir d'un AVI, nécessite donc une re-compression pour d'autres formats)
- puis on extrait de chaque image la bande verticale de 1px de large située au centre de l'image ! L'image fait 1920*1080 : on gardera une bande 1x1080 pixels.
heureusement, VirtualDub (encore lui) permet de découper la vidéo avant export en séquence d'image, donc on fait les 2 d'un coup. Ouf !!
chaque image de 1px de large (en hauteur, la résolution verticale de la vidéo) correspond donc à une portion précise de l'objet, d'un angle très serré, selon un angle de vue qui change à chaque fois.
- dernier truc logiciel à appliquer : il faut assembler les X images de 1px de large les unes avec les autres afin de reconstituer le panoramique, qui est en fait constitué de centaines de bandes verticales de 1px collées ensemble : on ne peut pas faire plus propre en raccord !! (enfin du moins en théorie...)
pour le moment, j'ai bricolé un script en PHP, mais on doit pouvoir simplifier avec ImageMagick, je verrai çà.
et voilà !
la vitesse de rotation est primordiale pour le résultat. Petit calcul de résolution, admettons:
- vidéo en 25 image par seconde en 640*480
- le plateau fait un tour complet en 30 secondes
- on aura donc une vidéo de 25*30 = 750 images
- chaque bande verticale extraite au centre de chacune des images correspond donc à une portion équivalente à 360°/750 = 0.48 ° (c'est beaucoup plus fin que les panoramiques photos, et on a pas de problème de parallaxe)
- ces 750 bandes de 1px de large assemblées formeront une image de 750x480 pixels (la résolution verticale ne change pas)
donc plus le plateau tourne lentement, plus on a d'image pour faire la rotation de 360°, plus la résolution horizontale sera élevée (chaque bande de 1px représentera un angle encore plus petit)
si votre plateau tourne en 10 secondes, à 25fps, vous n'aurez que 250 pixels de large pour représenter une rotation complète de votre objet.
usages :
- des photos loufoques comme mon premier essai
- récupérer des textures d'objets cylindriques ! ça tombe bien, j'ai plein de bouteilles de whisky à modéliser, mais ce n'est pas toujours facile de décoller les étiquettes pour les scanner sans les abîmer. Et quand elles sont larges (des fois ça fait le tour de la bouteille) il faut les assembler, et en assemblage photo classique, c'est toujours foireux à cause des variations de perspectives (parallaxe...)
bref, de quoi jouer comme il faut
