Blur Effekte

Übersicht BlitzBasic Codearchiv

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Black Spider

Betreff: Blur Effekte

BeitragSo, Aug 27, 2006 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe eine einfache Lib für verschiedene BLur Effekte geschrieben, da die andere mit dem einfachen Effekt wohl nicht gut genug für einen Kommentar was ( Wink );
egal, wer sehen will muss testen,
brauch aber nicht laden;

mit Leertaste oder w schaltet man den Blur ein und aus, mit Escape schaltet man die Blur´s durch und nach 4 mal das Programm ab.

Code: [AUSKLAPPEN]
;--- Blur Lib Testebene ---
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()
HidePointer()

Type blur
   Field spr
   Field tex
   Field art
End Type


.start

sv = sv + 1

Global cam = CreateCamera()

Select sv
   Case 1
      ;Normaler Blur
      CameraClsColor cam,255,255,255
      CreateBlurCam(cam,1.5,1.985,1.995,.8,1)
   Case 2
      ;Soften
      Delete First blur
      CameraClsColor cam,0,0,0
      CreateBlurCam(cam,1.5,2,2,.6,1)
   Case 3
      ;Zoom + Black Hole
      Delete First blur
      CameraClsColor cam,200,200,200
      CreateBlurCam(cam,1.6,2.7,2.7,.5,2)   
      
      
   Case 4
      ;Blur Fragmente
      Delete First blur
      CameraClsColor cam,255,255,255
      CreateBlurCam(cam,1.6,2.485,2.495,.3,1)
   Case 5
   
   End
   
End Select




lit = CreateLight()
Dim cube(90)
For lol = 0 To 90
cube(lol) = CreateCube()
PositionEntity cube(lol),Rnd(-20,20),Rnd(-20,20),Rnd(-20,20)
ScaleEntity cube(lol),Rnd(2),Rnd(2),Rnd(2)
EntityColor cube(lol),Rnd(255),Rnd(255),Rnd(255)

Next


While Not(KeyHit(1))





TurnEntity cam,(MouseYSpeed()/3),-MouseXSpeed()/3,0

For lol = 0 To 90
TurnEntity cube(lol),.2,.2,.2
Next


If KeyHit(17) Or KeyHit(57) Then lll = 1 - lll

If sv = 3 Then    CameraZoom cam,1.5-lll


UpdateWorld
RenderWorld

UpdateBlur(1024,768,lll)

Flip

Wend
ClearWorld 1,1,1
Goto start





Function CreateBlurCam(camera,Strk,scx#,scy#,alpha#,blend)

blur.Blur = New Blur

blur\tex = CreateTexture(GraphicsWidth(),GraphicsHeight(),256)
blur\art = strk
blur\spr = CreateSprite(camera)
PositionEntity blur\spr,0,-.5,blur\art
EntityOrder blur\spr,-1
ScaleSprite blur\spr,scx,scy
EntityTexture blur\spr,blur\tex
EntityAlpha blur\spr,alpha
TextureBlend blur\tex,blend


End Function



Function UpdateBlur(ghei, gwid, blur_on)
For blur.Blur = Each Blur
If blur_on = 1 Then
   ShowEntity blur\spr
  CopyRect 0 , 0 , ghei , gwid , 0 ,0 ,  BackBuffer() , TextureBuffer(blur\tex)
Else
HideEntity blur\spr
End If
Next
End Function






lässt sich Prblemlos überall einbauen, ich hoffe es gefällt euch...
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

Black Spider

BeitragSa, Sep 23, 2006 12:41
Antworten mit Zitat
Benutzer-Profile anzeigen
*push*
damit´s auch einer liest:
Habe nun weitere Blur Effekte hinzugefügt,
würde mich diesesmal über ein Feedback freuen.
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

FreetimeCoder

BeitragSa, Sep 23, 2006 12:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Joar!!

Ich kann nur Danke sagen und das als super bezeichnen!!
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA
 

Schnuff

BeitragSa, Sep 23, 2006 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
cool, ich bin daran gerade eben gescheitert, wollte gerade mit google,... suchen Very Happy
Programmers dont die. They gosub without return...

aMul

Sieger des Minimalist Compo 01/13

BeitragSa, Sep 23, 2006 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht ganz nett aus, aber so umwerfend isses nicht...
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

Krümel

BeitragSa, Sep 23, 2006 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sieht sehr gut aus.
Hab's in meine Codesammlung aufgenommen.

StepTiger

BeitragSa, Sep 23, 2006 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
gefällt mir ebenso sehr gut!

jedoch:
der einzig richtig gute Modus ist der zweite.

die anderen haben so harte übergänge und nummer 1 und 4 zeigen Grafikfehler, da
1) die ränder mitkopiert werden, es also sehr komisch ausieht
4) der Hintergrund mitkopiert wird
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Blitzcoder

Newsposter

BeitragSa, Sep 23, 2006 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, ich bin auch der Meinung, dass der 2te der Beste ist. Ich hab allerdings schon schnellere geshen *AufAlgoKünstlerTritonGuck*
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

Black Spider

BeitragSo, Sep 24, 2006 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Very Happy Danke für die komplimente;

man kann übrigens auch mehrere Varianten mischen; +


Zitat:
die anderen haben so harte übergänge und nummer 1 und 4 zeigen Grafikfehler, da
1) die ränder mitkopiert werden, es also sehr komisch ausieht
4) der Hintergrund mitkopiert wird


wie genau meinst du das?
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

StepTiger

BeitragSo, Sep 24, 2006 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
naja!

Bei nummer 1 werden die Ränder mit ins bild reingezogen und bei nummer vier wird der weiße hintergrund teiltransparent auf die objekte gezogen. Was ja nun eigentlich nicht sein soll
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

tft

BeitragFr, Sep 29, 2006 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi .....

will keinen beleidigen...... aber welcher effekt soll das sein? Fileicht ist mein rechner zu schnell oder mein TFT zu langsam. Ausser der hintergrund der sich ändert drehen sich nur Rechtecke. Bitte um aufklärung. Smile
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

FreetimeCoder

BeitragFr, Sep 29, 2006 17:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du die Leertaste mal gedrückt?
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

FreetimeCoder

BeitragMi, Nov 01, 2006 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry wegen Doppelpost, soll aber einer lesen...

Dein Effekt funktioniert nur bei 1024x786 richtig. Bei anderen Auflösungen verzerrt es irgentwie.
Hm woran kann das liegen?
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

aMul

Sieger des Minimalist Compo 01/13

BeitragMi, Nov 01, 2006 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Daran:
Code: [AUSKLAPPEN]

blur\tex = CreateTexture(GraphicsWidth(),GraphicsHeight(),256)
[...]
PositionEntity blur\spr,0,-.5,blur\art

...und daran, dass Texturen immer die Größen von Zweierpotenzen haben müssen, bei 1280*960 z.B. wäre die Textur 2048*1024 groß, was zur Verzerrung des Bildes führt.

Es wäre allerdings ein leichtes die Verzerrung zu umgehen, indem man nicht 'CreateSprite' sondern die Surface- und Vertexbefehle benutzt(wenn ein Beispiel unbedingt nötig ist, fragt einfach... evt. hab ich Zeit und Lust eins zu schreiben).

MfG
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

c64

BeitragMi, Nov 01, 2006 20:20
Antworten mit Zitat
Benutzer-Profile anzeigen
@Black Spider, Thx sehr gute Sache ich benutze es momentan in meiner Engine, häte mir sonst selber was gemacht aber deins ist schon echt gut !

@aMul ja bitte mach das mal wenn du Zeit hast, das wäre echt prima !
Betreten verboten! Kinder haften für ihre Eltern!

Black Spider

BeitragDo, Nov 02, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
bedenke dass du "UpdateBlur" auch der Auflösung entsprechend anpassen musst!
Oben sinds UpdateBlur(1024,768,on_var#)
allgemein müsste: UpdateBlur(GraphicsWidth(),GraphicsHeight(),on_var#) funktionieren...

Ah,
hab den Fehler, verstehe ihn aber gerade nicht:
CreateBlurCam(cam,1.5,1.985,1.995,.8,1)

bei einer auflösung von 1024*768 passt das mit den Spriterändern genau,
bei 800*600 oder 1280*960 allerdings nicht mehr.
Habe diese werte allerdings auch mal geändert, seltsamerweise bleibt es allerdings verzerrt.
Ich schau mal, was ich machen kann. GGF, werde ich (sry bin am WE nicht da) Montag abend eine Version ohne "CreateSprite" rausbringen und die Formeln und Variablen so anpassen,
dass es für alle auflösungen geht.
@c64: Danke für das Lob ^^
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

FireballFlame

BeitragFr, Nov 24, 2006 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Cooler Effekt!!
Mir persönlich gefällt der 1. noch besser als der 2. ...
Arbeitest du noch dran? Mir gefällt das Smile
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

FireballFlame

BeitragSa, Nov 25, 2006 14:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ihr!

Ich hab den Code jetzt mal etwas überarbeitet.
Effekt Nr. 1 ist nunmehr ein Motion Blur, also muss man mit der Maus wackeln, damit man was sieht Razz

Außerdem funktioniert der Effekt jetzt für alle Auflösungen im Format 4:3(also 640*480 oder 1024*768 oder 1600*1200 oder ...).
Es wäre toll, wenn jemand es schaffen würde, dass es mit allen Auflösungen funktioniert. Ich glaube, es hängt an Zeile 105.
Was auch noch jemand machen könnte, wäre, den Effekt fps-unabhängig zu machen, z.B. indem der Alpha-Wert abhängig von den fps variiert.


Hier ist der Code: [AUSKLAPPEN]


;--- Blur Lib von Black Spider, verbessert von FireballFlame ---

Global RES_X = 1024         ; <- Bildschirmauflösung
Global RES_Y = 768         ; <-



Graphics3D res_x,res_y,32,1
SetBuffer BackBuffer()
HidePointer()

Type blur
Field spr
Field tex
Field art#
End Type


.start

sv = sv + 1

Global cam = CreateCamera()

Select sv
Case 1
;Normaler Blur
CameraClsColor cam,200,200,200
CreateBlurCam(cam,2.0005,2.0005,2.0005,.7,1)
Case 2
;Soften
Delete First blur
CameraClsColor cam,0,0,0
CreateBlurCam(cam,2.0,2.005,2.005,.6,1)
Case 3
;Zoom + Black Hole
Delete First blur
CameraClsColor cam,200,200,200
CreateBlurCam(cam,2.0,2.7,2.7,.5,2)


Case 4
;Blur Fragmente
Delete First blur
CameraClsColor cam,255,255,255
CreateBlurCam(cam,2.0,2.485,2.495,.3,1)
Case 5

End

End Select




lit = CreateLight()
Dim cube(90)
For lol = 0 To 90
cube(lol) = CreateCube()
PositionEntity cube(lol),Rnd(-20,20),Rnd(-20,20),Rnd(-20,20)
ScaleEntity cube(lol),Rnd(2),Rnd(2),Rnd(2)
EntityColor cube(lol),Rnd(255),Rnd(255),Rnd(255)

Next


While Not(KeyHit(1))





TurnEntity cam,(MouseYSpeed()/3),-MouseXSpeed()/3,0

For lol = 0 To 90
TurnEntity cube(lol),.2,.2,.2
Next


If KeyHit(17) Or KeyHit(57) Then lll = 1 - lll

If sv = 3 Then CameraZoom cam,1.5-lll


UpdateWorld
RenderWorld

UpdateBlur(res_x,res_y,lll)

Flip

Wend
ClearWorld 1,1,1
Goto start





Function CreateBlurCam(camera,Strk#,scx#,scy#,alpha#,blend)

blur.Blur = New Blur

btgraphw# = res_x
btgraphh# = res_y
yxratio# = .75         ; <- wenn das .75 durch die richtige Formel ersetzt wird, müsste der Effekt bei allen Bildschirmauflösungen funktionieren
pf=0
Repeat
pf = pf + 1
texsize# = 2^pf
Until texsize >= btgraphw

blur\tex = CreateTexture(texsize,texsize,256)
ScaleTexture blur\tex,texsize/btgraphw,(yxratio*texsize)/btgraphh

blur\art = strk
blur\spr = CreateSprite(camera)
posfinetunex# = .00195 : posfinetuney# = .00183
PositionEntity blur\spr,0-posfinetunex,-.5+posfinetuney,blur\art
EntityOrder blur\spr,-999
ScaleSprite blur\spr,scx,scy
EntityTexture blur\spr,blur\tex
EntityAlpha blur\spr,alpha
TextureBlend blur\tex,blend


End Function



Function UpdateBlur(ghei, gwid, blur_on)
For blur.Blur = Each Blur
If blur_on = 1 Then
ShowEntity blur\spr
CopyRect 0 , 0 , ghei , gwid , 0 ,0 , BackBuffer() , TextureBuffer(blur\tex)
Else
HideEntity blur\spr
End If
Next
End Function

PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Black Spider

BeitragSa, Nov 25, 2006 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
arg, verdammt,
hatte ich total vergessen, find´s aber schick, was du gemacht hast.
Hab mir so überlegt wie´s gehen könnte,
denn .75 ist gleich 768/1024,
also müsste man die theoretisch durch graphicswidth()/graphicsheight() ersetzen können. Funktioniert lustigerweise allerdings nicht.

wenn man
yxratio# = .75
durch
yxratio# = res_y/res_x ;768/1024
ersetzt kommt etwas sehr seltsames raus.
Allerdings wer benutzt schon auflösungen in seinem Spiel die nicht 4/3 entsprechen,
und mit denen funktioniert dein Code einwandfrei, denn bei einem Verhältnis von 4/3 kommt immer .75 bei Y/X raus...

komisch, aber sehr cool. Ich versuch mal noch nen schwarzen loch blur damit hinzubekommen;
könnte aber schwer werden...[/code]
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

Goodjee

BeitragSa, Nov 25, 2006 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
du meinst height/width... Cool
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group