Sprite3DBlendingMode-TEST

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

Also mich interessiert das schon.
Wenn man viel mit Sprite3D umgeht möchte man auch wissen wie es auf den verschiedenen Plattformen aussieht.
HAtte auch mal so nen Tool geschrieben das allerdings nur reine rgb-werte in eine txt geschrieben hat.
Aber das ist wirklich cool
I´a dllfreak2001
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

dllfreak2001 hat geschrieben:Also mich interessiert das schon.
Wenn man viel mit Sprite3D umgeht möchte man auch wissen wie es auf den verschiedenen Plattformen aussieht.
HAtte auch mal so nen Tool geschrieben das allerdings nur reine rgb-werte in eine txt geschrieben hat.
Aber das ist wirklich cool
Dagegen ist auch nichts zu sagen!
Aber es sollte die aktuelle PB4.0 sein.

Vieleicht stellt @STARGÅTE die PB Sourcen zur Verfügung?
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

von was denn jetzt ?

*verwirrt*
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

STARGÅTE hat geschrieben:von was denn jetzt ?
*verwirrt*
Wie wärs damit: GRAFIKTEST-EXE ?
Dann kann jeder mit seiner aktuellen PB Version gegen testen
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Hier ist der angepasste CODE, damit ihr auch das bild habt ^^

PS: ich glaube ihr müsst einiges umschreiben damit es läuft ^^,
PS²: nicht wunder das da noch andere sachen dabei sind aber hatte vorher noch mehr Funktionen drin.

Code: Alles auswählen

InitSprite()
InitSprite3D()
InitKeyboard()
OpenScreen(1280, 1024, 32, "GT") 

Structure F
 F.l
 x.f
 y.f
 w.f
 v.f
 G.f
 h.f
EndStructure
NewList F.F()
Procedure Feuer(F, x.f, y.f, w.f, v.f, G.f, h.f)
 AddElement(F())
 F()\F = F
 F()\x = x 
 F()\y = y    
 F()\w = w         
 F()\v = v
 F()\G = G   
 F()\h = h
EndProcedure

b.f = 3.14159265/180 ; Bogenmaß

 CreateSprite(2, 128, 128, #PB_Sprite_Texture)
 StartDrawing(SpriteOutput(2))
  For n = 1 To 63
   Circle(64,64,64-n, RGB(n*8/2,n*3/2,n/2))
  Next n
 StopDrawing()
 CreateSprite3D(2, 2)


  For m = 0 To 3
   For n = 1 To 8 Step 1:
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n+2, m*85) 
   Next n
   For n = 8 To 12 Step 2:
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n+2, m*85) 
   Next n
   For n = 12 To 8 Step -1:
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n-5, m*85) 
   Next n
   For n = 12 To 10 Step -1:
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n-2, m*85) 
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n-2, m*85) 
   Next n
  Next m

 ClearScreen(64,64,64)

 Start3D()
  For xxx = 0 To 14
   For yyy = 0 To 9
    Sprite3DBlendingMode(xxx,yyy)
    ResetList(F())
    While NextElement(F())
     ZoomSprite3D(F()\F, F()\G*2, F()\G*2)
     DisplaySprite3D(F()\F, F()\x-F()\G+xxx*80, F()\y-F()\G+yyy*100, F()\h)
    Wend
   Next yyy
  Next xxx
 Stop3D()

 StartDrawing(ScreenOutput())
  For xxx = 0 To 14
   For yyy = 0 To 9
    DrawingMode(1|4)
    Line(xxx*80, yyy*100, 80, 0, RGB(128,128,128))
    Line(xxx*80, yyy*100, 0, 100, RGB(128,128,128))
    Locate(xxx*80+2, yyy*100) : DrawText(Str(xxx)+"  "+Str(yyy))
   Next yyy
  Next xxx
 StopDrawing()

 GrabSprite(1000,0,0,1200,1000)
 SaveSprite(1000, "Grafiktest.bmp")

 FlipBuffers()
 
 Delay(2000)
 
 End
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

Beitrag von dllfreak2001 »

thx
aber eigentlich haben sich die sprite3d sachen von pb
von der 3.3 bis 4.0 nicht besonders verändert.(glaube ich)
I´a dllfreak2001
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

es ist beides DX7.0, also wo soll da der große unterschied sein?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

k.A. musst du den fragen der den CODE haben wollte :lol:
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo, ich schätze mal, da ist der gute alte Dr. Ice von Shrek übers ziel hinausgeschossen... ;)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

NaNaNa nicht gleich mit den Finger auf Unschuldige zeigen...

Denn:
1) Niemand muss sich die Sourcen ziehen.
2) Es gibt Bug-Reports zu diesen PB-Befehl (mindestens einer von mir)
3) Niemand hat STARGATE gezwungen die Sourcen offenzulegen.

In diesen Sinne... hier noch der angepasste PB4.0 SourceCode (Anpassungen nur soweit notwendig):

Code: Alles auswählen

InitSprite() 
InitSprite3D() 
InitKeyboard() 
OpenScreen(1280, 1024, 32, "GT") 

Structure F1 
 F.l 
 x.f 
 y.f 
 w.f 
 v.f 
 G.f 
 h.f 
EndStructure 
Global NewList F.F1() 
Procedure Feuer(F, x.f, y.f, w.f, v.f, G.f, h.f) 
 AddElement(F()) 
 F()\F = F 
 F()\x = x 
 F()\y = y    
 F()\w = w          
 F()\v = v 
 F()\G = G    
 F()\h = h 
EndProcedure 

b.f = 3.14159265/180 ; Bogenmaß 

 CreateSprite(2, 128, 128, #PB_Sprite_Texture) 
 StartDrawing(SpriteOutput(2)) 
  For n = 1 To 63 
   Circle(64,64,64-n, RGB(n*8/2,n*3/2,n/2)) 
  Next n 
 StopDrawing() 
 CreateSprite3D(2, 2) 


  For m = 0 To 3 
   For n = 1 To 8 Step 1: 
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n+2, m*85) 
   Next n 
   For n = 8 To 12 Step 2: 
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n+2, m*85) 
   Next n 
   For n = 12 To 8 Step -1: 
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n-5, m*85) 
   Next n 
   For n = 12 To 10 Step -1: 
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n-2, m*85) 
    Feuer(2 , 10+m*20, 20+n*5, 0, 0, n-2, m*85) 
   Next n 
  Next m 

 ClearScreen($404040) 

 Start3D() 
  For xxx = 0 To 14 
   For yyy = 0 To 9 
    Sprite3DBlendingMode(xxx,yyy) 
    ResetList(F()) 
    While NextElement(F()) 
     ZoomSprite3D(F()\F, F()\G*2, F()\G*2) 
     DisplaySprite3D(F()\F, F()\x-F()\G+xxx*80, F()\y-F()\G+yyy*100, F()\h) 
    Wend 
   Next yyy 
  Next xxx 
 Stop3D() 

 StartDrawing(ScreenOutput()) 
  For xxx = 0 To 14 
   For yyy = 0 To 9 
    DrawingMode(1|4) 
    Line(xxx*80, yyy*100, 80, 0, RGB(128,128,128)) 
    Line(xxx*80, yyy*100, 0, 100, RGB(128,128,128)) 
    DrawText(xxx*80+2, yyy*100, Str(xxx)+"  "+Str(yyy)) 
   Next yyy 
  Next xxx 
 StopDrawing() 

 GrabSprite(1000,0,0,1200,1000) 
 SaveSprite(1000, "C:\Grafiktest.bmp") 

 FlipBuffers() 
  
 Delay(2000) 
 
 End 
Und hier mein Ergebnis:
Bild
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Antworten