Page 8 sur 14

Re: Pure_anaglyphe

Publié : sam. 08/janv./2011 20:13
par venom
bonjour,

je ne suis pas chez moi, je testerais avec les lunettes debut de semaine prochaine. :wink:
En attendant ça sera lunette de soleil 8) :lol: mais ça donne rien de 3D :P







@++

Re: Pure_anaglyphe

Publié : dim. 09/janv./2011 10:13
par Noos88
Bonjour Dobro

Je trouve tres sympa ton idée.
J'ai essayer de créer un code pour avoir une image 3d avec une image 2d mais apres 3 essais ca ne donne toujour rien !

Comment fais tu?????

Code : Tout sélectionner

Largeur = 512
Hauteur = 512
Decalage = 20

Enumeration 
 #image_0 
 #image 
 #image_1 
 #window_0 
 #button_1 
 #button_2 
 #button_3 
 #button_4

EndEnumeration 

UseJPEG2000ImageEncoder() 
UseJPEGImageEncoder() 
UsePNGImageEncoder() 
UseJPEGImageDecoder() 
UseTGAImageDecoder() 
UsePNGImageDecoder() 
UseTIFFImageDecoder() 


Procedure ConvertirNormal(ImageID,Decalage) ; Milieu de plus pret
 StartDrawing(ImageOutput(ImageID)) 
  HauteurImage=ImageHeight(ImageID)
  LargeurImage=ImageWidth(ImageID)
  
 For y = 0 To HauteurImage-1 
   For x =0  To LargeurImage-1
     
     If x<LargeurImage/2 ;Calcul du la première moitier de l'image
       x2=  Decalage-Round(x*(Decalage/(LargeurImage/2)), #PB_Round_Down)+x
       
     EndIf
     
     If x>LargeurImage/2 ;Calcul du la deuxieme moitier de l'image 
       x2= Decalage-Round((LargeurImage-x)*(Decalage/(LargeurImage/2)),#PB_Round_Down)+x
     EndIf 
     
      If x2>LargeurImage-1
        x2=LargeurImage-1
      EndIf 
  
     
    Plot(x,y,RGB(Red(Point(x,y)),Green(Point(x2,y)),Blue(Point(x2,y))))
   
  Next 
 Next
 
 StopDrawing() 
EndProcedure

Procedure ConvertirInverse(ImageID,Decalage) ;Milieux le plus loin
 StartDrawing(ImageOutput(ImageID)) 
  HauteurImage=ImageHeight(ImageID)
  LargeurImage=ImageWidth(ImageID)
  
 For y = 0 To HauteurImage-1 
   For x =0  To LargeurImage-1
     
     If x<LargeurImage/2 ;Calcul du la première moitier de l'image 
       x2=x+Round(x*(Decalage/LargeurImage), #PB_Round_Down)
     EndIf
     
     If x>LargeurImage/2 ;Calcul du la deuxieme moitier de l'image 
       x2=x+Round((LargeurImage-x)*(Decalage/LargeurImage), #PB_Round_Down)     
     EndIf  
     
     
    Plot(x,y,RGB(Red(Point(x2,y)),Green(Point(x,y)),Blue(Point(x,y))))
   
  Next 
 Next
 
 StopDrawing() 
EndProcedure

Procedure ConvertirIdem(ImageID,Decalage) ;Pareil partout
 StartDrawing(ImageOutput(ImageID)) 
  HauteurImage=ImageHeight(ImageID)
  LargeurImage=ImageWidth(ImageID)
  
 For y = 0 To HauteurImage-1 
   For x =0  To LargeurImage-1
     
     If x>Decalage And LargeurImage>x+Decalage
       x2=x+Decalage
    Plot(x,y,RGB(Red(Point(x2,y)),Green(Point(x,y)),Blue(Point(x,y))))
  
  EndIf 
    
  Next 
 Next
 
 StopDrawing() 
EndProcedure

CreateImage(#image_0,Largeur,Hauteur) 
If OpenWindow(#Window_0, 0, 0, Largeur+100, Hauteur+30, "Créateur de terrain",#PB_Window_ScreenCentered| #PB_Window_TitleBar ) 
 ImageGadget(#image_1, 80, 0, Largeur, Hauteur, ImageID(#image_0)) 
 ButtonGadget(#button_1,0,10,80,20,"Normal") 
 ButtonGadget(#button_2,0,40,80,20,"Inverse")
 ButtonGadget(#button_3,0,70,80,20,"IDEM")
 ButtonGadget(#button_4,0,100,80,20,"Fermer") 
  
Repeat  
    Event = WaitWindowEvent() 
   If Event = #PB_Event_Gadget 
       
   If EventGadget()=#button_1 
    fichier$=OpenFileRequester("ouvrir image","c:\","*.*",0) 
    LoadImage(#image,fichier$) 
    ResizeImage(#image,Largeur,Hauteur) 
    SetGadgetState(#image_1,ImageID(#image))     
    ConvertirNormal(#image,Decalage)  
    SetGadgetState(#image_1,ImageID(#image))  
   EndIf 
   
   If EventGadget()=#button_2
    fichier$=OpenFileRequester("ouvrir image","c:\","*.*",0) 
    LoadImage(#image,fichier$) 
    ResizeImage(#image,Largeur,Hauteur) 
    SetGadgetState(#image_1,ImageID(#image))     
    ConvertirInverse(#image,Decalage)  
    SetGadgetState(#image_1,ImageID(#image))  
   EndIf
   
   If EventGadget()=#button_3 
    fichier$=OpenFileRequester("ouvrir image","c:\","*.*",0) 
    LoadImage(#image,fichier$) 
    ResizeImage(#image,Largeur,Hauteur) 
    SetGadgetState(#image_1,ImageID(#image))     
    ConvertirIdem(#image,Decalage)  
    SetGadgetState(#image_1,ImageID(#image))  
   EndIf
   
   If EventGadget()=#button_4 
    End 
  EndIf
  
   EndIf 
   ForEver 
    
EndIf 

Re: Pure_anaglyphe

Publié : dim. 09/janv./2011 12:11
par Backup
Noos88 a écrit :Bonjour Dobro

Je trouve tres sympa ton idée.
J'ai essayer de créer un code pour avoir une image 3d avec une image 2d mais apres 3 essais ca ne donne toujour rien !

Comment fais tu?????

Contrairement a pas mal de bêtises qu'on peux lire sur internet ,a propos des anaglyphes

ON NE PEUX PAS faire du relief avec une image 2D simplement en décalant la composante rouge d'une image !!

un decalage des composantes couleurs d'une seule image, ne donne que la Meme image
decalé dans l'espace , mais nos yeux ne fonctionnent pas comme ça !


on a 2 yeux , chacun voit le monde avec un petit décalage lateral de 6.5 mm mais aussi angulaire qu'on appel la convergence :

ceci est tres bien expliqué dans cette video :
http://www.dailymotion.com/video/x6ybt7_3d_shortfilms
(une des rares information sur les anaglyphes qui soit rigoureuse sur internet...)

la seule solution pour rendre une image 2D en 3D est d'ajouter une information qui n'existe pas dans l'image !!!
cette information , c'est la profondeur
pour savoir si un objet est devant ou derriere un autre ,et pour ça , il faut utiliser un masque !

ce masque va indiquer au prg si un objet est devant ou derriere

ex :

une image 2D :

Image

+ le masque qui indiquera qu'elle partie d'image est devant ou derriere

Image

= un Vrai Anaglyphe !! :D

Image

pour la Video j'utilise un autre principe,(qui ne peut marcher QUE sur les videos) car je ne me voyais pas en train de faire un masque par image !! ... ;)


désolé , je n'ai pas l'intention de mettre le code source de mon prg "Pure Anaglyphe"
du moins.... pas pour le moment....

Re: Pure_anaglyphe

Publié : dim. 09/janv./2011 19:04
par Backup
suite de mes tests video

Cet aprem sous la pluie, j'ai fait un petit tour et a 200 metres de chez moi
j'ai fait une petit rencontre

alors j'ai testé la video 2D mis en anaglyphe par mon procedé ;)
a voir ici : (la video est tres courte, pour ne pas avoir a attendre 3 plombes a l'Upload) :)

http://www.youtube.com/user/DobroMG

Re: Pure_anaglyphe

Publié : lun. 10/janv./2011 2:05
par Ar-S
C'est sympa :)

Re: Pure_anaglyphe

Publié : lun. 10/janv./2011 10:37
par Backup
il faut encore ameliorer, mais c'est une voie a suivre...

j'ai une autre idée, mais qui va me demander de coder un peu plus :lol:

Re: Pure_anaglyphe

Publié : lun. 10/janv./2011 17:43
par venom
Le rendu est sympa 8)
Bravo Dobro






@++

Re: Pure_anaglyphe

Publié : lun. 10/janv./2011 18:05
par Backup
Merci

j'ai finalisé une autre méthode qui donne un résultat plus précis :)

mais j'ai encore un soucis avec la génération de la video
un peut trop saccadée pour moi...
je pense que certaines images ne sont pas sauvegardé ,
enfin plutot c'est surement un problème de synchro, entre la génération
des images , et la lecture du la video d'origine ...

je bosse toujours dessus des que j'ai du temps :)

Re: Pure_anaglyphe

Publié : mar. 11/janv./2011 1:06
par Backup
bon en attendant voici une video du cheval
avec le dernier algo

http://www.youtube.com/watch?v=eYleKbTRvKA

la grosse différence viens du fait que chaque image est travaillé par ce nouvel algo ;)
(principe du masque expliqué ci dessus)

ce qui donne une image plus nette qu'avec l'ancien algo... :)



j'ai 2 modes de fonctionnement , ceci est le mode 1
qui augmente le relief pour les parties claires ...

le mode 2 faisant la meme choses pour les partie foncé...
(scene de nuit ou objets filmés sombres.. )

Re: Pure_anaglyphe

Publié : mar. 11/janv./2011 2:30
par Ar-S
Le rendu de cette dernière vidéo est déjà meilleur. Même si l'arrière plan parait plus flou, le cheval lui ressort bien mieux.

Re: Pure_anaglyphe

Publié : mar. 11/janv./2011 11:05
par Backup
excellent ton prg LDVM Reminder

il viens de me permettre d'eviter d'oublier un anniversaire important pour moi demain
que j'aurai a coup sur oublié !! :roll:

j'avais pas entendu les samples :lol:


.... et Merci pour vos retours ...

Re: Pure_anaglyphe

Publié : mar. 11/janv./2011 15:40
par Ar-S
Dobro a écrit :excellent ton prg LDVM Reminder

il viens de me permettre d'eviter d'oublier un anniversaire important pour moi demain
que j'aurai a coup sur oublié !! :roll:

j'avais pas entendu les samples :lol:


.... et Merci pour vos retours ...
Content qu'il te serve, j'avais le même problème que toi pour les anniv'

Re: Pure_anaglyphe

Publié : jeu. 13/sept./2012 22:02
par Backup
Nouvelle Version

Pure_Anaglyphe V 3.20
http://michel.dobro.free.fr/download.php?view.10

Image


V3.20
pour le mode 2D -> 3D
ajout de 2 couches de profondeurs (ce qui fait 7 couches au total ) ...
cela permet des transitions plus douce d'un plan a l'autre
ajout de message dans la conception de la Map qui indique l’outil utilisé
puis corrections de plusieurs choses
comme par exemple la resizing de la fenetre qui perdait les GAdgets de droite et en bas
on ne peux plus faire un Remplissage intempestif car ce mode est quitté des qu'on change de couleur ou de taille

Re: Pure_anaglyphe

Publié : ven. 14/sept./2012 8:08
par Cool Dji
Merci Dobro, je suis fan !

Merci pour les explications et les liens...

Re: Pure_anaglyphe

Publié : ven. 14/sept./2012 8:41
par Backup
Merci a toi ,

cette nuit j'ai pensé a une nouvelle méthode de creation d'image 2D->3D

je vais expérimenter ça , et ferai une nouvelle version si ça marche

et selon moi, si ça marche , ça va envoyer du bois ... :)