Morgen,
Ich hatte am Montag mal nen freien Tag.
Und habe heute den Quelltext noch etwas sortiert.
Schaut euch das an!
http://www.fx-visions.de/files/blur.rar
Falls mein Server mal fällt:
Blur.bb
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN] Global blur_image, blur_texture, blur_gw, blur_gh,Blur_W,Blur_H,Blur_R,Blur_g,Blur_B
Function CreateBlur(BlurCam,r=255,g=255,b=255) Local sf,spr,w#,h#,BildschirmVerhaeltnis# Blur_r=r Blur_g=g Blur_b=b blur_gw = GraphicsWidth() blur_gh = GraphicsHeight() spr = CreateMesh(BlurCam) sf = CreateSurface(spr) AddVertex sf, -1, 1, 0, 0, 0 AddVertex sf, 1, 1, 0, 1, 0 AddVertex sf, -1, -1, 0, 0, 1 AddVertex sf, 1, -1, 0, 1, 1 AddTriangle sf, 0, 1, 2 AddTriangle sf, 3, 2, 1 EntityFX spr, 1+8 PositionEntity spr,0,0,4.0 EntityOrder spr, -(2^30) EntityBlend spr, 1 blur_image = spr blur_texture = CreateTexture(blur_gw, blur_gh, 1+256) Blur_W=TextureWidth(blur_texture) Blur_H=TextureHeight(blur_texture) w#=Blur_W - blur_gw h#=Blur_h - blur_gh BildschirmVerhaeltnis#= Float(blur_gh)/Float(blur_gw)*4.0 ScaleEntity Spr,4.0 + (4.0*w#/Float(blur_gw)),BildschirmVerhaeltnis#+ (BildschirmVerhaeltnis#*h#/Float(blur_gh)),1.0 Blur_W=(w#/2.0)-0.75 Blur_h=(h#/2.0)-0.5 EntityTexture spr, blur_texture End Function
Function UpdateBlur(power#) If power >0.94 Then power = 0.94 EntityAlpha blur_image, power# EntityColor Blur_image,Blur_R,Blur_g,Blur_b CopyRect 0, 0, Blur_GW, Blur_gh, Blur_W, Blur_h, BackBuffer(), TextureBuffer(blur_texture) End Function
Function FreeBlur() FreeEntity blur_image FreeTexture blur_texture End Function
Dreamblur.bb
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN] Global Dream_image, Dream_texture, Dream_gw, Dream_gh,Dream_W,Dream_H,DREAM_r,DREAM_g,DREAM_b
Function CreateDreamBlur(DreamCam,r=255,g=255,b=255) Local sf,spr,w#,h#,BildschirmVerhaeltnis# DREAM_r=R DREAM_g=g DREAM_b=b Dream_gw = GraphicsWidth() Dream_gh = GraphicsHeight() spr = CreateMesh(DreamCam) sf = CreateSurface(spr) AddVertex sf, -1, 1, 0, 0, 0 AddVertex sf, 1, 1, 0, 1, 0 AddVertex sf, -1, -1, 0, 0, 1 AddVertex sf, 1, -1, 0, 1, 1 AddTriangle sf, 0, 1, 2 AddTriangle sf, 3, 2, 1 EntityFX spr, 1+8 PositionEntity spr,0,0,4.0 EntityOrder spr, -(2^30)-1 EntityBlend spr, 3 Dream_image = spr Dream_texture = CreateTexture(Dream_gw, Dream_gh, 1+256) Dream_W=TextureWidth(Dream_texture) Dream_H=TextureHeight(Dream_texture) w#=Dream_W - Dream_gw h#=Dream_h - Dream_gh BildschirmVerhaeltnis#= Float(Dream_gh)/Float(Dream_gw)*4.0 ScaleEntity Spr,4.0 + (4.0*w#/Float(Dream_gw)),BildschirmVerhaeltnis#+ (BildschirmVerhaeltnis#*h#/Float(Dream_gh)),1.0 Dream_W=(w#/2.0)-0.75 Dream_h=(h#/2.0)-0.5 EntityTexture spr, Dream_texture End Function
Function UpdateDreamBlur(power#) If power >0.98 Then power = 0.98 EntityAlpha Dream_image, power# EntityColor Dream_image,DREAM_r*power#,DREAM_g*power#,DREAM_b*power# CopyRect 0, 0, Dream_GW-1, Dream_gh-1, Dream_W, Dream_h, BackBuffer(), TextureBuffer(Dream_texture) End Function
Function FreeDreamBlur() FreeEntity Dream_image FreeTexture Dream_texture End Function
Dreamview.bb
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN] Global dreamview_image, dreamview_texture, dreamview_gw, dreamview_gh,dreamview_W,dreamview_H,dreamview_Cam Global dreamview_R,dreamview_G,dreamview_B
Function Createdreamview(dreamviewCam,R=255,G=255,B=255,Extreme=0) Local sf,spr,w#,h#,BildschirmVerhaeltnis# dreamview_R=R dreamview_G=G dreamview_B=B dreamview_Cam=dreamviewCam dreamview_gw = GraphicsWidth() dreamview_gh = GraphicsHeight() spr = CreateMesh(dreamviewCam) sf = CreateSurface(spr) AddVertex sf, -1, 1, 0, 0, 0 AddVertex sf, 1, 1, 0, 1, 0 AddVertex sf, -1, -1, 0, 0, 1 AddVertex sf, 1, -1, 0, 1, 1 AddTriangle sf, 0, 1, 2 AddTriangle sf, 3, 2, 1 EntityFX spr, 1+8
EntityOrder spr, -(2^30)-2 EntityBlend spr, 1 If extreme Then EntityBlend spr, 3 dreamview_image = spr dreamview_texture = CreateTexture(dreamview_gw, dreamview_gh, 1+256) dreamview_W=TextureWidth(dreamview_texture) dreamview_H=TextureHeight(dreamview_texture) w#=dreamview_W - dreamview_gw h#=dreamview_h - dreamview_gh BildschirmVerhaeltnis#= Float(dreamview_gh)/Float(dreamview_gw)*4.0 ScaleEntity Spr,4.0 + (4.0*w#/Float(dreamview_gw)),BildschirmVerhaeltnis#+ (BildschirmVerhaeltnis#*h#/Float(dreamview_gh)),1.0 dreamview_W=(w#/2.0)-0.75 dreamview_h=(h#/2.0)-0.5 EntityTexture spr, dreamview_texture End Function
Function Updatedreamview(power#) Local opower# opower#=power# If opower#>1Then opower#=1 power#=power#*1.3 If power >1.3 Then power = 1.3 PositionEntity dreamview_image,0,0,4.0-power#/2,0 EntityAlpha dreamview_image, (power#/3.0)*2.0 EntityColor dreamview_image,dreamview_R*opower#,dreamview_G*opower#,dreamview_B*opower# ScaleEntity dreamview_Cam,1+Power#,1+power,1 CopyRect 0, 0, dreamview_GW-1, dreamview_gh-1, dreamview_W, dreamview_h, BackBuffer(), TextureBuffer(dreamview_texture) End Function
Function Freedreamview() FreeEntity dreamview_image FreeTexture dreamview_texture ScaleEntity dreamview_cam,1,1,1 End Function
FPS.bb
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN] Global FPS_zahler,FPS_Start_Time,FPS#
Function update_FPS(checktime%=10) Local Time,Righttime FPS_Zahler = FPS_Zahler + 1 Time=MilliSecs() If Time > FPS_START_TIME + checktime% Righttime = Time - FPS_START_TIME FPS_START_TIME = Time FPS# = (Float(FPS_Zahler)/Float(Righttime))*1000.0 FPS_Zahler = 0 EndIf
End Function
Blur_in_use.bb
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN] Include "Blur.bb" Include "Dreamblur.bb" Include "Dreamview.bb" Include "FPS.bb" Include "Skybox\Loadskybox.bb"
Graphics3D 1024,768,32,1 SetBuffer BackBuffer()
Cam=CreateCamera() CameraRange cam,0.1,1000
cube1=CreateCube() MoveEntity cube1,0,0,3 cube2=CreateCube() MoveEntity cube2,0,1.5,4 EntityColor cube2,0,0,255
CreateBlur(Cam)
Repeat
If KeyDown(200) Then TurnEntity cam,1,0,0 If KeyDown(208) Then TurnEntity cam,-1,0,0 If KeyDown(203) Then TurnEntity cam,0,1,0 If KeyDown(205) Then TurnEntity cam,0,-1,0 If KeyHit(2) Then blur# = 0.1 If KeyHit(3) Then blur# = 0.2 If KeyHit(4) Then blur# = 0.3 If KeyHit(5) Then blur# = 0.4 If KeyHit(6) Then blur# = 0.5 If KeyHit(7) Then blur# = 0.6 If KeyHit(8) Then blur# = 0.7 If KeyHit(9) Then blur# = 0.8 If KeyHit(10) Then blur# = 0.9 If KeyHit(11) Then blur# = 1.0 RenderWorld UpdateBlur(blur)
update_FPS(FPS)
Text 10,60,"FPS: " +Int(FPS#) Text 0,0,"Motionblur by Jan Kuhnert." Text 0,20,"weiterentwicklung der Arkblur.bb. Funktioniert nun mit Farbänderung auf jeder auflösung und in jedem Bildschirmverhältniss" Text 0,160,"Use the keys 1,2,3,4,5,6,7,8,9,0 to change the blur ''power''." Text 0,40,"Use the cursor keys to turn the camera" Text GraphicsWidth()/2,GraphicsHeight()/2,"Visit www.FX-Visions.de",1,1
Text 10,80,"Polygon: "+TrisRendered() Text 10,100,"Textures used: "+ActiveTextures () Text 10,120,"VRAM used: "+(TotalVidMem()-AvailVidMem())/(1024.0^2)
Flip 0
Until KeyHit(1)
freeblur()
FreeEntity cube1 FreeEntity cube2
PositionEntity cam,5,5,7 mesh=LoadMesh("example.b3d")
skybox=Loadskybox("Skybox\Sky",cam)
Createdreamblur(Cam)
g#=0.001 Repeat
If KeyDown(200) Then TurnEntity cam,1,0,0 If KeyDown(208) Then TurnEntity cam,-1,0,0 If KeyDown(203) Then TurnEntity cam,0,1,0 If KeyDown(205) Then TurnEntity cam,0,-1,0 dream#=dream#+g# If dream> 1 Then g#=-0.001 If dream <0.1 Then g# = 0.001 RenderWorld Updatedreamblur(dream) update_FPS(10)
Text 10,60,"FPS: " +Int(FPS#) Text 0,0,"Dreamblurfilter by Jan Kuhnert."
Text 0,40,"Use the cursor keys to turn the camera" Text GraphicsWidth()/2,GraphicsHeight()/2,"Visit www.FX-Visions.de",1,1
Text 10,80,"Polygon: "+TrisRendered() Text 10,100,"Textures used: "+ActiveTextures () Text 10,120,"VRAM used: "+(TotalVidMem()-AvailVidMem())/(1024.0^2)
Flip 0 Until KeyHit(1)
freedreamblur()
Createdreamview(Cam,0,255,255,0)
g#=0.001 Repeat
If KeyDown(200) Then TurnEntity cam,1,0,0 If KeyDown(208) Then TurnEntity cam,-1,0,0 If KeyDown(203) Then TurnEntity cam,0,1,0 If KeyDown(205) Then TurnEntity cam,0,-1,0 dream#=dream#+g# If dream> 1.2 Then g#=-0.001 If dream <0.4 Then g# = 0.001 RenderWorld Updatedreamview(dream) update_FPS(10)
Text 10,60,"FPS: " +Int(FPS#) Text 0,0,"Dreamshiningfilter by Jan Kuhnert."
Text 0,40,"Use the cursor keys to turn the camera" Text GraphicsWidth()/2,GraphicsHeight()/2,"Visit www.FX-Visions.de",1,1
Text 10,80,"Polygon: "+TrisRendered() Text 10,100,"Textures used: "+ActiveTextures () Text 10,120,"VRAM used: "+(TotalVidMem()-AvailVidMem())/(1024.0^2) Flip 0 Until KeyHit(1)
freedreamview()
End
Viel Spaß
Ich nehme natürlich Kritik und Crediteinträge gerne an!
|