March 02, 2021, 02:21:19 PM
Welcome,
Guest
. Please
login
or
register
.
Did you miss your
activation email
?
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
Home
Forum
Help
Search
Gallery
Login
Register
SyntaxBomb - Indie Coders
»
Languages & Coding
»
Blitz Code Archives
»
3D Graphics - Effects
»
[bb] Motion blur FX by Matt Merkulov [ 1+ years ago ]
« previous
next »
Print
Pages: [
1
]
Go Down
Author
Topic: [bb] Motion blur FX by Matt Merkulov [ 1+ years ago ] (Read 683 times)
BlitzBot
Jr. Member
Posts: 1
[bb] Motion blur FX by Matt Merkulov [ 1+ years ago ]
«
on:
June 29, 2017, 12:28:40 AM »
Title :
Motion blur FX
Author :
Matt Merkulov
Posted :
1+ years ago
Description :
From article:<a href="
http://blitzetcetera.org/index.php/
Ðффекты_размытиÑ_в_реальном_времени" target="_blank"> Real-time motion blur FX[/url] (rus)
Code :
Code: BlitzBasic
;14 real-time 3D motion blur FX presets by Matt Merkulov
; The size of a structure, number of effect, the order of a portrayal(-1 or 1)
Const
texsize=
1024
, fx=
7
, o =-
1
Graphics3D
800
,
600
,
32
cam=
CreateCamera
(
)
PositionEntity
cam,
0
,
0
,-
6
RotateEntity
CreateLight
(
)
,
45
,
0
,
0
; Creation of a stage
cube=
CreateCube
(
)
EntityColor
cube,
255
,
128
,
0
cone1=
CreateCone
(
20
)
EntityColor
cone1,
0
,
255
,
255
PositionEntity
cone1,-
4
,
0
,
0
cone2=
CreateCone
(
20
)
EntityColor
cone2,
0
,
255
,
0
PositionEntity
cone2,
4
,
0
,
0
p=
CreatePivot
(
)
sph=
CreateSphere
(
20
, p
)
PositionEntity
sph,
0
,
0
,-
4
Select
fx
Case
1
:bl=createblurlayer
(
cam,
1
,
0
,
1
,
1
, .95,
1
, o
)
Case
2
:bl=createblurlayer
(
cam,
1
,
0
,
1
, .97,
1
,
3
, o
)
Case
3
:bl=createblurlayer
(
cam,
1
, .2,
1.02
, .97,
1
,
3
, o
)
Case
4
:bl=createblurlayer
(
cam,
1
,
0
,
1.01
,
1
, .95,
1
, o
)
Case
5
bl=createblurlayer
(
cam,
1
,
0
,
1.01
,
1
, .9,
1
, o
)
EntityColor
bl,
240
,
255
,
225
Case
6
bl=createblurlayer
(
cam,
1.1
,
0
,
1
,
1
, .95,
1
, o
)
RotateEntity
bl,
1
,
1
,
0
Case
7
bl=createblurlayer
(
cam,
1.01
,
1
,
1
,
1
, .9,
1
, o
)
bl2=createblurlayer
(
cam,
1.02
,-
1
,
1
,
1
, .8,
1
, o
)
End Select
SetBuffer
BackBuffer
(
)
While
Not
KeyHit
(
1
)
TurnEntity
cube, .1, .2, .3
TurnEntity
p, .55, .35, .2
RenderWorld
bltex=updateblurlayer
(
bl, bltex
)
If
bl2
Then
EntityTexture
bl2, bltex
If
fx=
4
Then
PositionEntity
bl,
Rnd
(
-.01, .01
)
,
Rnd
(
-.01, .01
)
,
1
Flip
Wend
; Function of creation of a layer of the degradation adhered to the chamber - returns the address of a layer
Function
createblurlayer
(
cam, z#, ang#, mgn#, bright#, alpha#, bmode, ord
)
Local
xres=
GraphicsWidth
(
)
Local
yres=
GraphicsHeight
(
)
layer=
CreateMesh
(
cam
)
s=
CreateSurface
(
layer
)
; Calculation of coordinates of a structure
vx#=
1.0
*xres/texsize
vy#=
1.0
*yres/texsize
AddVertex
s,-
1
,-
1
,
0
,
0
,
0
AddVertex
s,
1
,-
1
,
0
, vx#,
0
AddVertex
s,-
1
,
1
,
0
,
0
, vy#
AddVertex
s,
1
,
1
,
0
, vx#, vy#
AddTriangle
s,
0
,
1
,
2
AddTriangle
s,
3
,
2
,
1
; Definition of sizes for installation of a rectangular directly in front of the chamber by
; Calculations of screen coordinates of a point of the three-dimensional world
PositionEntity
layer,
1
,
1
, z#
CameraProject
cam,
EntityX
(
layer,
True
)
,
EntityY
(
layer,
True
)
,
EntityZ
(
layer,
True
)
rx#=
ProjectedX
#
(
)
-.5*xres
ry#=
ProjectedY
#
(
)
-.5*yres
; Scaling a layer
ScaleMesh
layer, .5*xres/rx#,.5*yres/ry#,
1
; Sdlvig a rectangular on polpiksela to the left-upwards that it(he) was in the center of the screen
PositionEntity
layer,-.5/rx#,-.5/ry#, z#
RotateEntity
layer,
0
,
0
, ang#
; The task of effects of a layer
ScaleEntity
layer, mgn#, mgn#, mgn#
EntityAlpha
layer, alpha#
EntityBlend
layer, bmode
col=
255
*bright#
EntityColor
layer, col, col, col
EntityFX
layer,
1
EntityOrder
layer, ord
Return
layer
End Function
; Function of updating of a layer(returns the address of a structure)
; It is necessary to cause each time after RenderWorld
Function
updateblurlayer
(
layer, tex
)
If
tex=
0
Then
tex=
CreateTexture
(
texsize, texsize
)
EntityTexture
layer, tex
CopyRect
0
,
0
,
GraphicsWidth
(
)
,
GraphicsHeight
(
)
,
0
,
0
,
BackBuffer
(
)
,
TextureBuffer
(
tex
)
Return
tex
End Function
Comments :
ingenium(Posted 1+ years ago)
Nvm
puki(Posted 1+ years ago)
For any beginners confused by this - you select the number of the effect each time you run the program - ie change the value of the Const variable 'fx' at the beginning of the code - then run the program.EDIT:However, that value has a range of 1 to 7.
Matt Merkulov(Posted 1+ years ago)
Thanks, this is useful addition, maybe somebody really can be confused.
chwaga(Posted 1+ years ago)
How could I put the code necesarry into an include function, so I could call it in easily as if it were a command later? (I'm a nub at this
)
Logged
Print
Pages: [
1
]
Go Up
« previous
next »
SyntaxBomb - Indie Coders
»
Languages & Coding
»
Blitz Code Archives
»
3D Graphics - Effects
»
[bb] Motion blur FX by Matt Merkulov [ 1+ years ago ]
SimplePortal 2.3.6 © 2008-2014, SimplePortal