Page 2 sur 4

Re: Algo Black Hole Spiral

Publié : mar. 27/oct./2009 18:16
par Thyphoon
l'image est dans mon post précédent !

En tout cas chapeau pour quelqu'un qui n'a jamais fait de Trigo ! En tout cas ça me conforte dans mon idée... que ceux qui font des "grandes" études ne sont pas toujours les plus intelligent ! Et que le défaut de notre société c'est de se basé sur un bout de papier et pas sur les compétences !!

tient je remet l'image ici ça sera plus simple : Image

Re: Algo Black Hole Spiral

Publié : mar. 27/oct./2009 18:45
par Backup
:lol: mon nc10 a la lumiere au minimum , et ton soleil blanc n'apparaissait pas sur le fond du forum
je ne l'avais tout simplement pas vu :D
Merci

Re: Algo Black Hole Spiral

Publié : mar. 27/oct./2009 18:53
par Thyphoon
Dobro a écrit ::lol: mon nc10 a la lumiere au minimum , et ton soleil blanc n'apparaissait pas sur le fond du forum
je ne l'avais tout simplement pas vu :D
Merci
lollll j'ai eu le même problème avec mon msi u100 :P

Re: Algo Black Hole Spiral

Publié : mar. 27/oct./2009 21:34
par Thyphoon
Je me demande si il ne va pas faloire que je passe part des vrai calcul 3D ! Car là je bloque.. pour que le centre soit bien au centre et que les étoiles se place bien ...
Car là j'arrive a rien ... grrrrrrr !!!! Par contre j'ai réussi a optimisé un peu le code... je vais faire quelques test et je posterais ça !

Re: Algo Black Hole Spiral

Publié : mar. 27/oct./2009 21:47
par venom
je m'incruste vite fait dans votre discutions :D

le rendu est top je ne pensai pas qu'un tel effet pouvais se faire en ci peut de ligne. Bravo






@++

Re: Algo Black Hole Spiral

Publié : mar. 27/oct./2009 21:50
par Thyphoon
venom a écrit :je m'incruste vite fait dans votre discutions :D
le rendu est top je ne pensai pas qu'un tel effet pouvais se faire en ci peut de ligne. Bravo
Merci ! Et encore j'ai vu une demo sur amiga qui avait fait bien mieux .. dans un 4Ko Intro ... bien plus réaliste !
Mais bon je suis pas aussi doué ! Heureusemnt que Dobro m'a donné un coup de main .. mais bon là j'avance pu trop .... Il parait que la nuit porte conseille !!

Re: Algo Black Hole Spiral

Publié : mar. 27/oct./2009 23:33
par Backup
faudrai utiliser le moteur de Tmyke ;)

N3xtD :)

Re: Algo Black Hole Spiral

Publié : mar. 27/oct./2009 23:45
par djes
Ca commence à bien donner!
Il y a quelques années, j'avais fait deux petits trucs dans le genre, mais ce n'était pas du pure!

Un petit essai en flash (c'était l'occasion de tester les objets)
http://djes.free.fr/nebul4.swf

Un petit rendu avec lightwave
Image

Re: Algo Black Hole Spiral

Publié : mer. 28/oct./2009 7:35
par Thyphoon
Dobro a écrit :faudrai utiliser le moteur de Tmyke ;)

N3xtD :)
Oui j'y ai pensé mais vu l'utilisation que je vais en faire ça sera dommage... En vérité c'est de la pure décoration pour un jeu de Quizz que j'ai développé ! (je le posterais)
djes a écrit :Ca commence à bien donner!
merci ! reste a bien le finir lolllll :lol:
djes a écrit : Il y a quelques années, j'avais fait deux petits trucs dans le genre, mais ce n'était pas du pure!
Un petit essai en flash (c'était l'occasion de tester les objets)
sympa ! :)
djes a écrit : Un petit rendu avec lightwave
Image
Sympa ce rendu ! ça me donne une petite idée je vais essayer ....

Re: Algo Black Hole Spiral

Publié : mer. 28/oct./2009 8:06
par Progi1984
Et voilà, tu viens d'emmener Thyphon dans ta spirale :p

Re: Algo Black Hole Spiral

Publié : mer. 28/oct./2009 8:48
par Thyphoon
Progi1984 a écrit :Et voilà, tu viens d'emmener Thyphon dans ta spirale :p
lolllllllllllll

Bon voici ce que donne mon dernier code (il est pas tres propre faut que je fasse du nettoyage)
voici un nouveau sprite a rajouter a la collection :
l'image est juste ici >>Image (je précise pour Dobro qui voit rien avec sont ecran :P )
Et voilà ce que ça donne comme rendu chez moi (je crois que le rendu est légèrement différent selon la resolution de votre ecran)

Image

Code : Tout sélectionner

UsePNGImageDecoder()
#dobro=1
#Police=1
#sprite=1
; ***********************************
InitSprite()
InitSprite3D()
InitKeyboard()
FontID = LoadFont(#Police, "arial", 50, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN):;=largeur de l'ecran
EcranY = GetSystemMetrics_(#SM_CYSCREEN):;=hauteur de l'ecran
    WindowID = OpenWindow(1, 0, 0, EcranX, EcranY, "hello", #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered )
    WindowID = WindowID(1)
    Result = OpenWindowedScreen(WindowID,0,0, EcranX, EcranY, 1, 0,0)
   
   Structure Prefs
     ScreenWidth.l
     ScreenHeight.l
   EndStructure
   Global Prefs.prefs
   Prefs\ScreenWidth=EcranX
   Prefs\Screenheight=EcranY
      
   CompilerIf Subsystem("Directx9") 
    Structure D3DTLVERTEX
     x.f
     y.f
     z.f
     rhw.f
     Color.l
     tu.f
     tv.f
   EndStructure

   Structure PB_Sprite3D
     TexRes.l                    ; TexRes
     Vertice.D3DTLVERTEX[4]       ; The 4 vertices for the rectangle sprite
     TmpVertice.D3DTLVERTEX[4]   ; The 4 vertices for the rectangle sprite
     Width.l                     ; width set with ZoomSprite3D()
     Height.l                     ; height set with ZoomSprite3D()
     RealWidth.l
     RealHeight.l
     Angle.f
     Transformed.l
   EndStructure 
   
   
     CompilerElse ;Directx7
     
    ;Thanks Cpl.Bator !!!
    Structure vertex
          sx.f
          sy.f
          sz.f
          rhw.f
          Color.l
          specular.l
          tu.f
          tv.f
    EndStructure

    Structure PB_Sprite3D
             Texture.l         
             Vertice.vertex[4]
             Width.w
             Height.w
    EndStructure 
CompilerEndIf

    Procedure SetSpriteLuminosityEx(spriteid.l,lum.c)
      Protected RGB_LUM.l,*S.PB_Sprite3D
      ;doit être dans un Start3D
      ; 255 = Pleine luminosité 0 = noir
      
      RGB_LUM = RGBA(255,Lum,Lum,255)
      *S=IsSprite3D(spriteid)
      *S\Vertice[0]\Color = RGB_LUM
      *S\Vertice[1]\Color = RGB_LUM
      *S\Vertice[3]\Color = RGB_LUM
      *S\Vertice[2]\Color = RGB_LUM
    EndProcedure

    LoadSprite(20,"Gfx/holehand.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
    CreateSprite3D(20,20)
    LoadSprite(21,"Gfx/sun.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
    CreateSprite3D(21,21)
     LoadSprite(22,"Gfx/star.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
    CreateSprite3D(22,22)
Structure MyHole
  Rayon.l
  StarAngle.l
EndStructure

Global NewList MyHole.MyHole()

NbStar=40
For z=NbStar To 1 Step -1
  AddElement(MyHole())
  MyHole()\Rayon=Pow(z,1.3)*(Prefs\ScreenWidth/4)/(NbStar*2)
  MyHole()\StarAngle.l=Random(360)
Next


Procedure Spiral() 
  degres=-15
  Coef=7

  t.f=ElapsedMilliseconds()/10000
  CordX=Prefs\ScreenWidth/2
  CordY=Prefs\ScreenHeight/2
  AngleNova.f=degres*#PI/180
  
  BA.f=#PI
  BB.f=#PI/2
  BC.f=#PI+#PI/2
  
  ForEach MyHole()
    AngleStar.f=t+ListIndex(MyHole())/Coef
    x=MyHole()\Rayon*Cos(AngleStar)
    y=MyHole()\Rayon/2*Sin(AngleStar)
    x2=MyHole()\Rayon*Cos(BA+AngleStar)
    y2=MyHole()\Rayon/2*Sin(BA+AngleStar)
    x3=MyHole()\Rayon*Cos(BB+AngleStar)
    y3=MyHole()\Rayon/2*Sin(BB+AngleStar)
    x4=MyHole()\Rayon*Cos(BC+AngleStar)
    y4=MyHole()\Rayon/2*Sin(BC+AngleStar)
  
  ; ********* voici la formule de la rotation d'image *********
    ;<------------ en degres !!! :o)
    
     x= x * Cos (AngleNova) +( Y)* Sin (AngleNova)
     Y=x * Sin (AngleNova) + (Y)* Cos (AngleNova) 
               
     x2= x2 * Cos (AngleNova) +( y2)* Sin (AngleNova)
     y2= x2 * Sin (AngleNova) + (y2)* Cos (AngleNova) 
                 
     x3= x3 * Cos (AngleNova) +( y3)* Sin (AngleNova)
     y3= x3 * Sin (AngleNova) + (y3)* Cos (AngleNova) 
                 
     x4= x4 * Cos (AngleNova) +( Y4)* Sin (AngleNova)
     Y4= x4 * Sin (AngleNova) + (Y4)* Cos (AngleNova) 
                 
     ;***************************************************** 
  
    size=(ListSize(MyHole())-ListIndex(MyHole()))*128/ListSize(MyHole())
    Angle=(ListSize(MyHole())-ListIndex(MyHole()))*360/ListSize(MyHole())
    Alpha=255-((ListSize(MyHole())-ListIndex(MyHole()))*255/ListSize(MyHole()))
    ZoomSprite3D(20,size,size)
    ZoomSprite3D(22,size,size)
    RotateSprite3D(22,MyHole()\StarAngle,#PB_Absolute)
    RotateSprite3D(20,Angle,#PB_Absolute)
    SetSpriteLuminosityEx(20,Alpha)
    DisplaySprite3D(20,CordX+x-Size/2,CordY+y-Size/2,Alpha)
    DisplaySprite3D(22,CordX+x-Size/2,CordY+y-Size/2,255)
    DisplaySprite3D(20,CordX+x2-Size/2,CordY+y2-Size/2,Alpha)
    DisplaySprite3D(22,CordX+x2-Size/2,CordY+y2-Size/2,255)
    DisplaySprite3D(20,CordX+x3-Size/2,CordY+y3-Size/2,Alpha)
    DisplaySprite3D(22,CordX+x3-Size/2,CordY+y3-Size/2,255)
    DisplaySprite3D(20,CordX+x4-Size/2,CordY+y4-Size/2,Alpha)
    DisplaySprite3D(22,CordX+x4-Size/2,CordY+y4-Size/2,255)
  Next
  ZoomSprite3D(21,32,32)
  DisplaySprite3D(21,CordX-16,CordY-16,200)
  
EndProcedure

    Repeat
        ExamineKeyboard()
        Event=WindowEvent()
        Delay(1)
        ClearScreen(RGB(0,0,0)) ;  *****<------- si tu Rem ceci le sprite laisse une trace :D
        Start3D()
        Spiral()
        Stop3D()
        FlipBuffers():; affiche l'ecran 
     

        Event=WindowEvent()
         If KeyboardPushed(#PB_Key_Escape)
            End
        EndIf
        
        If KeyboardReleased(#PB_Key_Down) And degres>-45
          degres=degres-1
        EndIf 
        
        If KeyboardReleased(#PB_Key_Up) And degres<50
          degres=degres+1
        EndIf 
        
    Until Event=#PB_Event_CloseWindow

Re: Algo Black Hole Spiral

Publié : mer. 28/oct./2009 9:28
par Fred
Sympa !

Re: Algo Black Hole Spiral

Publié : mer. 28/oct./2009 9:46
par Thyphoon
Fred a écrit :Sympa !
Un message de Dieu le père, ça me vas droit au coeur ! Merci beaucoup ! il faut avouer que c'est du a un travail Collectif Dont tu fais aussi parti!
Sans Fred Pas de Purebasic
Sans Dobro je serais encore en train de me demander comme dessiné une spiral
Sans djes et son rendu lightwave j'aurais pas eu l'idée pour faire Des étoiles avec un rendu correcte
Sans Cpl.Bator l'effet sur les Sprites 3D aurait été moins bon etc...

Tient d'ailleur j'en profite J'ai modifier le sprite pour les étoiles le rendu est encore meilleur
Image<<Ici Dobro ! ( :wink: )

J'ai juste fait des points de taille différentes ...le rendu n'en est que meilleur ...
J'ai aussi fait quelques modification dans le code

Code : Tout sélectionner

UsePNGImageDecoder()
#dobro=1
#Police=1
#sprite=1
; ***********************************
InitSprite()
InitSprite3D()
InitKeyboard()
FontID = LoadFont(#Police, "arial", 50, #PB_Font_Bold )
EcranX = GetSystemMetrics_(#SM_CXSCREEN):;=largeur de l'ecran
EcranY = GetSystemMetrics_(#SM_CYSCREEN):;=hauteur de l'ecran
    WindowID = OpenWindow(1, 0, 0, EcranX, EcranY, "hello", #PB_Window_SystemMenu|#PB_Window_BorderLess |#PB_Window_ScreenCentered )
    WindowID = WindowID(1)
    Result = OpenWindowedScreen(WindowID,0,0, EcranX, EcranY, 1, 0,0)
   
   Structure Prefs
     ScreenWidth.l
     ScreenHeight.l
   EndStructure
   Global Prefs.prefs
   Prefs\ScreenWidth=EcranX
   Prefs\Screenheight=EcranY
      
   CompilerIf Subsystem("Directx9") 
    Structure D3DTLVERTEX
     x.f
     y.f
     z.f
     rhw.f
     Color.l
     tu.f
     tv.f
   EndStructure

   Structure PB_Sprite3D
     TexRes.l                    ; TexRes
     Vertice.D3DTLVERTEX[4]       ; The 4 vertices for the rectangle sprite
     TmpVertice.D3DTLVERTEX[4]   ; The 4 vertices for the rectangle sprite
     Width.l                     ; width set with ZoomSprite3D()
     Height.l                     ; height set with ZoomSprite3D()
     RealWidth.l
     RealHeight.l
     Angle.f
     Transformed.l
   EndStructure 
   
   
     CompilerElse ;Directx7
     
    ;Thanks Cpl.Bator !!!
    Structure vertex
          sx.f
          sy.f
          sz.f
          rhw.f
          Color.l
          specular.l
          tu.f
          tv.f
    EndStructure

    Structure PB_Sprite3D
             Texture.l         
             Vertice.vertex[4]
             Width.w
             Height.w
    EndStructure 
CompilerEndIf

    Procedure SetSpriteLuminosityEx(spriteid.l,lum.c)
      Protected RGB_LUM.l,*S.PB_Sprite3D
      ;doit être dans un Start3D
      ; 255 = Pleine luminosité 0 = noir
      
      RGB_LUM = RGBA(255,Lum,Lum,255)
      *S=IsSprite3D(spriteid)
      *S\Vertice[0]\Color = RGB_LUM
      *S\Vertice[1]\Color = RGB_LUM
      *S\Vertice[3]\Color = RGB_LUM
      *S\Vertice[2]\Color = RGB_LUM
    EndProcedure

    LoadSprite(20,"Gfx/holehand.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
    CreateSprite3D(20,20)
    LoadSprite(21,"Gfx/sun.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
    CreateSprite3D(21,21)
     LoadSprite(22,"Gfx/star.png",#PB_Sprite_Texture|#PB_Sprite_AlphaBlending)
    CreateSprite3D(22,22)
Structure MyHole
  Rayon.l
  StarAngle.l
EndStructure

Global NewList MyHole.MyHole()

NbStar=40
For z=NbStar To 1 Step -1
  AddElement(MyHole())
  MyHole()\Rayon=Pow(z,1.3)*(Prefs\ScreenWidth/4)/(NbStar*2)
  MyHole()\StarAngle.l=Random(360)
Next


Procedure Spiral() 
  degres=-15
  Coef=7

  t.f=ElapsedMilliseconds()/40000
  CordX=Prefs\ScreenWidth/2
  CordY=Prefs\ScreenHeight/2
  AngleNova.f=degres*#PI/180
  
  BA.f=#PI
  BB.f=#PI/2
  BC.f=#PI+#PI/2

  ForEach MyHole()
    AngleStar.f=t+ListIndex(MyHole())/Coef
    x=MyHole()\Rayon*Cos(AngleStar)
    y=MyHole()\Rayon/2*Sin(AngleStar)
    x2=MyHole()\Rayon*Cos(BA+AngleStar)
    y2=MyHole()\Rayon/2*Sin(BA+AngleStar)
    x3=MyHole()\Rayon*Cos(BB+AngleStar)
    y3=MyHole()\Rayon/2*Sin(BB+AngleStar)
    x4=MyHole()\Rayon*Cos(BC+AngleStar)
    y4=MyHole()\Rayon/2*Sin(BC+AngleStar)
  
  ; ********* voici la formule de la rotation d'image *********
    ;<------------ en degres !!! :o)
    
     x= x * Cos (AngleNova) +( Y)* Sin (AngleNova)
     Y=x * Sin (AngleNova) + (Y)* Cos (AngleNova) 
               
     x2= x2 * Cos (AngleNova) +( y2)* Sin (AngleNova)
     y2= x2 * Sin (AngleNova) + (y2)* Cos (AngleNova) 
                 
     x3= x3 * Cos (AngleNova) +( y3)* Sin (AngleNova)
     y3= x3 * Sin (AngleNova) + (y3)* Cos (AngleNova) 
                 
     x4= x4 * Cos (AngleNova) +( Y4)* Sin (AngleNova)
     Y4= x4 * Sin (AngleNova) + (Y4)* Cos (AngleNova) 
                 
     ;***************************************************** 
  
    size=(ListSize(MyHole())-ListIndex(MyHole()))*128/ListSize(MyHole())
    
    Angle=(ListSize(MyHole())-ListIndex(MyHole()))*360/ListSize(MyHole())
    Alpha=255-((ListSize(MyHole())-ListIndex(MyHole()))*255/ListSize(MyHole()))
    ZoomSprite3D(20,size,size)
    ZoomSprite3D(22,size,size)
    RotateSprite3D(22,MyHole()\StarAngle,#PB_Absolute)
    RotateSprite3D(20,Angle,#PB_Absolute)
    SetSpriteLuminosityEx(20,Alpha)
    DisplaySprite3D(20,CordX+x-Size/2,CordY+y-Size/2,Alpha)
    DisplaySprite3D(22,CordX+x-Size/2,CordY+y-Size/2,255)
    DisplaySprite3D(20,CordX+x2-Size/2,CordY+y2-Size/2,Alpha)
    DisplaySprite3D(22,CordX+x2-Size/2,CordY+y2-Size/2,255)
    DisplaySprite3D(20,CordX+x3-Size/2,CordY+y3-Size/2,Alpha)
    DisplaySprite3D(22,CordX+x3-Size/2,CordY+y3-Size/2,255)
    DisplaySprite3D(20,CordX+x4-Size/2,CordY+y4-Size/2,Alpha)
    DisplaySprite3D(22,CordX+x4-Size/2,CordY+y4-Size/2,255)
  Next
  ZoomSprite3D(21,64,64)
  DisplaySprite3D(21,CordX-32,CordY-32,200)
  
EndProcedure

    Repeat
        ExamineKeyboard()
        Event=WindowEvent()
        Delay(1)
        ClearScreen(RGB(0,0,0)) ;  *****<------- si tu Rem ceci le sprite laisse une trace :D
        Start3D()
        Spiral()
        Stop3D()
        FlipBuffers():; affiche l'ecran 
     

        Event=WindowEvent()
         If KeyboardPushed(#PB_Key_Escape)
            End
        EndIf
        
        If KeyboardReleased(#PB_Key_Down) And degres>-45
          degres=degres-1
        EndIf 
        
        If KeyboardReleased(#PB_Key_Up) And degres<50
          degres=degres+1
        EndIf 
        
    Until Event=#PB_Event_CloseWindow

Re: Algo Black Hole Spiral

Publié : mer. 28/oct./2009 10:05
par Backup
manque RGBA() !! :)

Re: Algo Black Hole Spiral

Publié : mer. 28/oct./2009 10:10
par Thyphoon
Dobro a écrit :manque RGBA() !! :)
A oui je l'ai viré car je compile avec la 4.40B5

voici ce qui manque

Code : Tout sélectionner

    Macro RGBA(r,g,b,a)
    a << 24 + b << 16 +g << 8 + r 
    EndMacro
mais c'est possible qu'il faille inversé les variable r et b ... :P