3D Effekte

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Jan_

Ehemaliger Admin

Betreff: 3D Effekte

BeitragMi, Aug 25, 2004 8:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Morgen,

Ich hatte am Montag mal nen freien Tag.
Und habe heute den Quelltext noch etwas sortiert.

Schaut euch das an!
user posted image
http://www.fx-visions.de/files/blur.rar



Falls mein Server mal fällt:
Blur.bb
BlitzBasic: [AUSKLAPPEN]
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]
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]
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]
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]
;Include the Libs
Include "Blur.bb"
Include "Dreamblur.bb"
Include "Dreamview.bb"
Include "FPS.bb"
Include "Skybox\Loadskybox.bb"

;Init Graph
Graphics3D 1024,768,32,1
SetBuffer BackBuffer()

;init Cam
Cam=CreateCamera()
CameraRange cam,0.1,1000


;Medias 4 the Motion Blur
cube1=CreateCube()
MoveEntity cube1,0,0,3
cube2=CreateCube()
MoveEntity cube2,0,1.5,4
EntityColor cube2,0,0,255

;Init Blur
CreateBlur(Cam)

Repeat

;-----------------------------------------------------
;Kontroll
;-----------------------------------------------------
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
;-----------------------------------------------------

;-----------------------------------------------------
;The Updates
;-----------------------------------------------------
RenderWorld
UpdateBlur(blur)
;-----------------------------------------------------

;-----------------------------------------------------
;Calculate the Frames per second
;-----------------------------------------------------
update_FPS(FPS)
;-----------------------------------------------------

;-----------------------------------------------------
;Some infos
;-----------------------------------------------------
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



;gibt die Gerenderten Polygon aus, muss später entfernt werden!
Text 10,80,"Polygon: "+TrisRendered()

;Gibt die Aktivierten Texturen zurück
Text 10,100,"Textures used: "+ActiveTextures ()

;Gibt den verwendeten VRAM aus
Text 10,120,"VRAM used: "+(TotalVidMem()-AvailVidMem())/(1024.0^2)

;-----------------------------------------------------

;-----------------------------------------------------
;Show Pic
;-----------------------------------------------------
Flip 0
;-----------------------------------------------------

Until KeyHit(1)

;Free the Motionblur
freeblur()

;Free Medias
FreeEntity cube1
FreeEntity cube2

;load medias for Example number2
PositionEntity cam,5,5,7
mesh=LoadMesh("example.b3d")

;Create Skybox
skybox=Loadskybox("Skybox\Sky",cam)

;Create Dream Blur
Createdreamblur(Cam)


;Variable Setzten
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


;gibt die Gerenderten Polygon aus, muss später entfernt werden!
Text 10,80,"Polygon: "+TrisRendered()

;Gibt die Aktivierten Texturen zurück
Text 10,100,"Textures used: "+ActiveTextures ()

;Gibt den verwendeten VRAM aus
Text 10,120,"VRAM used: "+(TotalVidMem()-AvailVidMem())/(1024.0^2)

Flip 0
Until KeyHit(1)

;free dream Blur
freedreamblur()

;Load Dreamview
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



;gibt die Gerenderten Polygon aus, muss später entfernt werden!
Text 10,80,"Polygon: "+TrisRendered()

;Gibt die Aktivierten Texturen zurück
Text 10,100,"Textures used: "+ActiveTextures ()

;Gibt den verwendeten VRAM aus
Text 10,120,"VRAM used: "+(TotalVidMem()-AvailVidMem())/(1024.0^2)

Flip 0
Until KeyHit(1)

;Free dreamview
freedreamview()

End ; Me.close




Viel Spaß

Ich nehme natürlich Kritik und Crediteinträge gerne an!
between angels and insects

Gina

BeitragDo, Aug 26, 2004 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu, hab mir das mal angeschaut...

Sieht wirklich nett aus. Ist es Absicht, dass bei 0 alles so verschwommen ist, oder liegt das an meinem Moni?

Gina.

Jan_

Ehemaliger Admin

BeitragFr, Aug 27, 2004 7:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, 0 ist Stark an der Grenze, das sich die Bilder selber überschneiden, darum wird es verschwommen. mal sehen, vielleicht werde ich mal die Pos für das 1ne Pixel im 3D raum ausrechnen und dann diesen effekt bekämpfen.
between angels and insects

Bms

BeitragMi, Sep 08, 2004 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
just for fun, Jan_:
will nich wissn wie viel tonnen dönerfleisch dein smiley schon runtergeschnitten hat. Laughing Laughing Laughing Laughing
 

David

BeitragMi, Sep 08, 2004 12:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Besser Dönerfleisch als Computer!

sorry für ot! Smile

grüße
http://bl4ckd0g.funpic.de
 

Dreamora

BeitragMi, Sep 08, 2004 12:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab es im englischen Board gesehen.

Finde die ersten 2 Effekte supi.
Der 3te jedoch ist zu "kantig" ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Jan_

Ehemaliger Admin

BeitragMi, Sep 08, 2004 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
yap, ist in der nciht öffentlichen schon beoben.
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group