[B3D] Echtzeit-Fullscreen-Blurring

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Krümel

Betreff: [B3D] Echtzeit-Fullscreen-Blurring

BeitragMi, Mai 17, 2006 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein kleines Programm zum entspannen,
völlig unkommentiert weils so simpel ist Laughing

Code: [AUSKLAPPEN]

grX = 800 : grY = 600
Graphics3D grX , grY , 32
SetBuffer BackBuffer()

Texture = CreateTexture(grX , grY, 256)
light = CreateLight()
Camera = CreateCamera()
SetFont LoadFont("",80)

Cube = CreateCube(Camera)
ScaleEntity Cube , 2 , 2 , 1
PositionEntity Cube , 0.435, -0.825, 2.55
EntityTexture Cube , Texture
EntityOrder Cube ,1

Sphere = CreateSphere()

While Not KeyHit(1)
   w1#=(w1+180.3) Mod 360 : w2#=(w2+1) Mod 360 : w3#=(w3+0.1) Mod 360
   If w1<0.3 EntityColor(Sphere, Rnd(255), Rnd(255), Rnd(255))
   PositionEntity Sphere,Sin(w1)*Cos(w2)*20,Cos(w1)*Sin(w2)*20,40+Cos(w1+w2)*15
   RotateEntity Cube,0,0,Sin(w3)*0.3   
   RenderWorld
   If (w2 Mod 360) =  0 Text 400,300,"Blitz3D",1,1
   CopyRect 0 , 0 , grX , grY , 0 , 0 ,  BackBuffer() , TextureBuffer(Texture)
   Flip
Wend
 

coldie

BeitragMi, Mai 17, 2006 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
gefällt mir sehr gut Very Happy

glaubst du man könnte das prinzip auch für partikel (rauch)hernehmen ? Das würde bestimmt verdammt cool aussehen.
 

Krümel

BeitragMi, Mai 17, 2006 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
die idee hatte ich auch schon, aber einen guten einfall wie man das hinbekommt bisher noch nicht. Confused

Jan_

Ehemaliger Admin

BeitragDo, Mai 18, 2006 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, das Prinzip dürfte dafür nicht funktionieren, weil dann ja kein hintergrund da seien dürfte, und alpha übergeben werden müsste.


Das ganze etwas bunter und so.
Code: [AUSKLAPPEN]
grX = 800 : grY = 600
Graphics3D grX , grY , 32 ,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

Texture = CreateTexture(grX , grY, 256)
light = CreateLight()
Camera = CreateCamera()
SetFont LoadFont("",80)

Cube = CreateCube(Camera)
ScaleEntity Cube , 2 , 2 , 1
PositionEntity Cube , 0.435, -0.825, 2.55
EntityTexture Cube , Texture
EntityOrder Cube ,1

Sphere = CreateSphere()
EntityAlpha sphere,0.9
EntityFX sphere,1
r=128
g=128
b=128
EntityColor(Sphere, r, g, b)
While Not KeyHit(1)
   w1#=(w1+180.3) Mod 360 : w2#=(w2+1) Mod 360 : w3#=(w3+0.1) Mod 360
;   If w1<0.3
    r=r+Rnd(-5,5)
    g=g+Rnd(-5,5)
    b=b+Rnd(-5,5)
     If r> 255 Then r=255
     If g> 255 Then g=255
     If b> 255 Then b=255
     If r< 0 Then r=0
     If g< 0 Then g=0
     If b< 0 Then b=0
     EntityColor(Sphere, r, g, b)
;   EndIf
   PositionEntity Sphere,Sin(w1)*Cos(w2)*20,Cos(w1)*Sin(w2)*20,40+Cos(w1+w2)*15
   RotateEntity Cube,0,0,Sin(w3)*0.3   
   RenderWorld
   t2=t1
   t1=MilliSecs()
   If (w2 Mod 360) =  0 Then
     Text GraphicsWidth()/2,GraphicsHeight()/2-50,"Blitz3D",1,1
     Text GraphicsWidth()/2,GraphicsHeight()/2+50,Int(1000.0/(t1-t2))+" fps",1,1     
   EndIf
   CopyRect 0 , 0 , grX , grY , 0 , 0 ,  BackBuffer() , TextureBuffer(Texture)
   Flip 0
Wend
between angels and insects

Triton

BeitragDo, Mai 18, 2006 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Gefällt mir..

Titel geändert..
Coding: silizium-net.de | Portfolio: Triton.ch.vu
 

Krümel

BeitragDo, Mai 18, 2006 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Toll "aufgepimpt", _Jan !
errinnert mich jetzt stark an den berühmten "Geiss-Screensaver".
Die Sache mit dem "Flip 0" ist ja echt stark. Da schiessen die FPS
von 75 auf 1000 Laughing

5k41

BeitragDo, Mai 18, 2006 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
der effekt ist echt geil und ich bin auch echt baff und hab mir den code ne halbe stunde lang angeguckt... aber Wie Funktioniert das Bluring? Ich muss total blind sein! Ich sehs net!

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Willi die Rübe

BeitragDo, Mai 18, 2006 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht echt nett aus Very Happy

@5k41:

Code: [AUSKLAPPEN]
CopyRect 0 , 0 , grX , grY , 0 , 0 ,  BackBuffer() , TextureBuffer(Texture)
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage

5k41

BeitragDo, Mai 18, 2006 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
jo da wird der gesamte bildschirm auf die Textur kopiert... wo es verlöäuft seh ich irgendwie net... :-/
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

aMul

Sieger des Minimalist Compo 01/13

BeitragDo, Mai 18, 2006 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Texture ist so gescaled, dass der Rand nicht mehr mit angezeigt wird, deshalb gehen die "Pixel" immer weiter nach außen, weil sie jeden Frame etwas nach außen kopiert werden.

Hoffe, das ich das verständlich erklären konnte Wink

Achja, schöne Idee, aber für das Codearchiv schon fast wieder zu schlecht(nicht negativ gemeint...). Naja, Anfänger werden sich dran freuen Wink

MfG


EDIT:
Ersetzt mal
Code: [AUSKLAPPEN]
PositionEntity Cube , 0.435, -0.825, 2.55

durch
Code: [AUSKLAPPEN]
PositionEntity Cube , 0.435, -0.825, 2.59

Das gefällt mir fast noch besser Very Happy
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

BeitragDo, Mai 18, 2006 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, aMul hat es ganz genau erklärt.
das ganze prinzip beruht auf einer art rückkopplung.
das "blurren" wird (glaube ich) auch durch das bilineare filtern der textur verursacht. (die grafikkarte "verwischt" näherliegende texturen).
ist wirklich keine grosse sache - und wenns zu einfach fürs codearchiv ist ärgerts mich nicht wenns wieder rausfliegt
Cool
 

#Reaper

Newsposter

BeitragFr, Mai 19, 2006 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Yeah, echt net schlecht, die Idee ist echt gut Very Happy

@5k41: ging mir genauso, aber nach 5mins überlegen nach aMul's und Krümel's post hast dan *ding* gemacht, und mir ist ein Licht aufgegangen Very Happy
Nur leider kann ich das jetzt nicht so wirklich erklären Sad

PS: 2.56 is auch ganz schön Very Happy
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

tft

BeitragSa, Mai 20, 2006 11:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ...

toller effect. Habe lange selber geräzelt wie das zu machen ist. Manchmal reicht einfach warten.......
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group