Kiitos neuvoista. Tarkoitukseni ei kuitenkaan ollut tehdä efektistä uskottavaa, ajoin vain takaa sitä, että se olisi nopeampi, kuin Wingmanin. Mutta, jos halutaan uskottavuutta, niin tässä versio, joka renderöi yhden kuvan 16-17 millisekunnissa ja frameja on 12 ja niitähän voi lisätä kokoajan enemmän, mutta tämäkin on jo melko uskottava noise-efekti(kiitos, nyt tiedän sen oikean terminkin!):koodaaja wrote:Ei vaan renderöintiin kuluneen ajan, koska sitä on mielekkäämpää mitata - jos 2ms kestävä renderöinti suoritetaan kuudesti framessa, se kestää 12ms. Jos ilmoitetaan että FPS on 800 ja sama asia tehdään kuusi kertaa, on huomattavasti haastavampaa suoraan päässä arvioida, mikä FPS sen jälkeen on. Lisäksi millisekunteina ilmoitettaessa voidaan kertoa yksittäisen osaoperaation kesto luontevammin, vaikka "blur-passiin menee 3ms" kun taas FPS-lukema on aina koko silmukan viemä aika.
Koodissasi on muuten aivan turhaan makeimagella kolmas parametri, tallennat syyttä levylle vaikka voisit käyttää kuvia suoraan muistista (yksinkertaisesti poistaa kaikki saveimage/deleteimage/loadimage-kohdat) ja unohdit precalccien jälkeen drawtoscreenin, minkä takia efekti tökkii julmetusti vaikka fps-mittari sanookin kovaa lukua. Minkä lisäksi kolmen framen noise näytä kovin uskottavalta.
Code: Select all
kuva1 = MakeImage(399,299,4)
DrawToImage kuva1
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva2 = MakeImage(399,299,4)
DrawToImage kuva2
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva3 = MakeImage(399,299,4)
DrawToImage kuva3
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva4 = MakeImage(399,299,4)
DrawToImage kuva4
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva5 = MakeImage(399,299,4)
DrawToImage kuva5
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva6 = MakeImage(399,299,4)
DrawToImage kuva6
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva7 = MakeImage(399,299,4)
DrawToImage kuva7
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva8 = MakeImage(399,299,4)
DrawToImage kuva8
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva9 = MakeImage(399,299,4)
DrawToImage kuva9
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva10 = MakeImage(399,299,4)
DrawToImage kuva10
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva11 = MakeImage(399,299,4)
DrawToImage kuva11
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
kuva12 = MakeImage(399,299,4)
DrawToImage kuva12
Lock
For x=0 To 399
For y=0 To 299
PutPixel2 x,y,Rand(255)*65793
Next y
Next x
Unlock
DrawToScreen
alku:
start = Timer()
DrawImage kuva1,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva2,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva3,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva4,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva5,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva6,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva7,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva8,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva9,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva10,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva11,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
start = Timer()
DrawImage kuva12,0,0
DrawScreen
SetWindow Str(FPS()) + " " + Str(Timer()-start)
Goto alku