Pure_anaglyphe

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Pure_anaglyphe

Message 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







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Noos88
Messages : 59
Inscription : lun. 14/juin/2010 19:16
Localisation : Belrupt (Vosges)

Re: Pure_anaglyphe

Message 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 
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_anaglyphe

Message 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....
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_anaglyphe

Message 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
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Pure_anaglyphe

Message par Ar-S »

C'est sympa :)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_anaglyphe

Message 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:
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Pure_anaglyphe

Message par venom »

Le rendu est sympa 8)
Bravo Dobro






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_anaglyphe

Message 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 :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_anaglyphe

Message 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.. )
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Pure_anaglyphe

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_anaglyphe

Message 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 ...
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Pure_anaglyphe

Message 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'
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_anaglyphe

Message 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
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: Pure_anaglyphe

Message par Cool Dji »

Merci Dobro, je suis fan !

Merci pour les explications et les liens...
Only PureBasic makes it possible
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_anaglyphe

Message 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 ... :)
Répondre