3D-Wellen

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Triton

Betreff: 3D-Wellen

BeitragSa, März 06, 2004 22:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, ja schauts euch an. Vertex gilt hier dank wegen der Farbgebung, bin echt nicht drauf gekommen ^^

Code: [AUSKLAPPEN]

;3D-Wellen, 2004 by Triton
Graphics 800,600,16,2
SetBuffer BackBuffer()
sizex = 75
sizey = 75
originx = GraphicsWidth()/2-sizex*2
originy = GraphicsHeight()/2
time1 = MilliSecs()

While Not KeyDown(1)
For a = 1 To 90 Step 1
   For x = 0 To sizex
      For y = 0 To sizey
         lx = (sizex/2)-x
         ly = (sizey/2)-y
         abstand# = Sqr((lx*lx)+(ly*ly))-a
         c# = Sin(abstand#*20)*6
         xneu = x+y
         yneu = (y-x)/2
         r=255-(Sin#(abstand#*20.0)+1.0)/2.0*255
         g=r
         b=r
         rgb=255*$1000000 + r*$10000 + g*$100 + b
         WritePixel xneu*2+originx,yneu*2+c+originy,rgb
         If KeyDown(1) Then End
      Next
   Next
   loops = loops+1
   Color 255,255,255
   Text 10, 10, fps+" FPS"
   If MilliSecs() - time1 > 1000 Then fps = loops:loops = 0:time1 = MilliSecs()
   Flip
   Cls
Next
Wend
  • Zuletzt bearbeitet von Triton am Mo, Feb 11, 2008 0:56, insgesamt einmal bearbeitet
 

Ava

Gast

BeitragSa, März 06, 2004 23:29
Antworten mit Zitat
Sieht ganz fein aus. Smile

Mr.Keks

BeitragSo, März 07, 2004 8:20
Antworten mit Zitat
Benutzer-Profile anzeigen
hrm, lief irgendwie lahm bei mir... habe ein paar dinge verändert und jetzt läufts bei mir zumindest etwas schneller ^^ (so um 1800% schneller ungefähr...)

Code: [AUSKLAPPEN]
;3D-Wellen, 2004 by Triton
Graphics 800,600,16,2
SetBuffer BackBuffer()
Const sizex = 75
Const sizey = 75
Const originx = 800/2-sizex*2
Const originy = 600/2
time1 = MilliSecs()

While Not KeyDown(1)
For a = 1 To 90 Step 1
   LockBuffer BackBuffer()
   For x = 0 To sizey
      lx = (sizex/2)-x
     la = (lx*lx)
      For y = 0 To sizey
         ly = (sizey/2)-y
         abstand# = Sqr(la+(ly*ly))-a
         c# = Sin(abstand#*20)*6
         xneu = x+y
         yneu = (y-x)/2
         r=255-(Sin#(abstand#*20.0)+1.0)*127.5
         rgb=255*$1000000 + r*$10000 + r*$100 + r
         WritePixelFast xneu*2+originx,yneu*2+c+originy,rgb
      Next
     If KeyDown(1) Then End
   Next
   UnlockBuffer BackBuffer()
   loops = loops+1
   Color 255,255,255
   Text 10, 10, fps+" FPS"
   If MilliSecs() - time1 > 1000 Then fps = loops:loops = 0:time1 = MilliSecs()
   Flip 0
   Cls
Next
Wend
MrKeks.net
  • Zuletzt bearbeitet von Mr.Keks am So, März 07, 2004 12:38, insgesamt einmal bearbeitet

Shadow of the night

BeitragSo, März 07, 2004 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Find ich wirklich fein das Teil. Very Happy

Das von Inarie läuft bei mir mit 350 FPS 8) , das war mir dann doch ein bisschen zu schnell.

MfG Shadow of the Night
User posted image

Mr.Keks

BeitragSo, März 07, 2004 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
mach das 0 bei flip weg! ^^
MrKeks.net

Shadow of the night

BeitragSo, März 07, 2004 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh gut dann läuft es mit 75 FPS gerade richtig.

thx to Inarie
User posted image

Triton

BeitragSo, März 07, 2004 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, Writepixelfast einbauen und dafür ne Menge flexibilität rausnehmen ist ja kein Akt. Wink

Mr.Keks

BeitragSo, März 07, 2004 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, ich habe auch noch bei rgb einige unnötige operationen gekürzt, einige konstanten gesetzt, la nur einmal berechnet und das keydown() etwas weiter aus der schleife gezogen, was auch noch einige fps gebracht hat...
MrKeks.net

Triton

BeitragSo, März 07, 2004 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
...dafür einfachere Farbmanipulation (ich hab r,g und b nicht umsonst einzeln hingeschrieben Wink) rausgenommen und Autozentrierung nicht Auflösungsunabhängig gelassen.

Aber egal, ich denke eine weitere Diskussion ist unnötig.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group