Luminosité Sprite 3D

Sujets variés concernant le développement en PureBasic
Anonyme

Message par Anonyme »

Log:Window is open 640x480
14
C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\test.brd
C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\forest.brd
scenery >2
Graphics\castle.png
Ok
Graphics\forest.png
Ok
LoadBoard:C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\test.brd
Erreur ouverture du Board
LoadBoard:C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\forest.brd
Erreur ouverture du Board
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Cpl.Bator a écrit :
Log:Window is open 640x480
14
C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\test.brd
C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\forest.brd
scenery >2
Graphics\castle.png
Ok
Graphics\forest.png
Ok
LoadBoard:C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\test.brd
Erreur ouverture du Board
LoadBoard:C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\forest.brd
Erreur ouverture du Board
edit le fichier maps/map.map tu as le chemin avec les 2 boards utilisé au lieu de
C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\test.brd
il faut mettre
Graphics\tiles\test.brd
et idem pour le deuxième
a la place de
C:\Documents and Settings\Thyphoon\Bureau\blackcauldron\Graphics\tiles\forest.brd
mettre
Graphics\tiles\forest.brd

J'aurais pas le temps de mettre a jour l'archive aujourd'huis ... mais demain je devrais avoir un acces web ...
Anonyme

Message par Anonyme »

je viens de voir le problème , il apparaît uniquement avec Dx9 , aprioris , tant que fred ne diffuse pas la structure des sprite3D_DX9 , je peut rien faire pour toi.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Cpl.Bator a écrit :je viens de voir le problème , il apparaît uniquement avec Dx9 , aprioris , tant que fred ne diffuse pas la structure des sprite3D_DX9 , je peut rien faire pour toi.
A oui j'étais Dx9 ... bon demain je vais demander l'info sur le forum anglais...
dans 1H00 on prend la voiture direction la Bretagne ... Enfin les vacances...
je te tient au courant ... :)
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Et voilà, hier durant les 5 heures de routes dans la voiture,ça m'a travaillé ! Je savais bien que j'avais vu la structure des sprites pour directx9 donc voilà un code qui marche pour Directx7 et DirectX9

Merci Cpl.Bator !! sans toi je n'y serais jamais arrivé !!

Code : Tout sélectionner

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
    
    Macro RGBA(r,g,b,a)
    a << 24 + b << 16 +g << 8 + r 
    EndMacro

    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(Lum,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
Répondre