My favorites
|
Sign in
mrdoob
Mr.doob's open source stuff
Project Home
Downloads
Wiki
Issues
Source
Checkout
|
Browse
|
Changes
|
r195
Source path:
svn
/
trunk
/
lab
/
effects
/
shaders
/
plane_deformations
/
deploy
/
shaders
/
hypno.pbk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<languageVersion : 1.0;>
kernel NewFilter
< namespace : "Hypnotic";
vendor : "Mr.doob";
version : 1;
description : "Hypnotic effect";
>
{
input image4 src;
output pixel4 dst;
parameter float2 imgSize
<
defaultValue : float2(512.0, 512.0);
minValue : float2(0.0,0.0);
maxValue : float2(512.0,512.0);
>;
parameter float2 center
<
defaultValue : float2(256.0, 256.0);
minValue : float2(0.0,0.0);
maxValue : float2(512.0,512.0);
>;
parameter float2 offset;
void evaluatePixel()
{
float2 pos = (outCoord() - center) / imgSize;
float pi = 3.141592653589793;
float a = atan(pos.y,pos.x);
float r = sqrt(pow(pos.x,2.0)+pow(pos.y,2.0));
float u = 0.0;
float v = 0.0;
float w = 0.0;
u += offset.x;
v += offset.y;
// This is where the magic happens
u += cos(a)/r;
v += sin(a)/r;
w += 1.0/pow(r,.1);
// End of the magic
u *= imgSize.x;
v *= imgSize.y;
if (u < 0.0) u += imgSize.x * ceil(-u / imgSize.x);
if (v < 0.0) v += imgSize.y * ceil(-v / imgSize.y);
if (u > imgSize.x) u -= imgSize.x * floor(u / imgSize.x);
if (v > imgSize.y) v -= imgSize.y * floor(v / imgSize.y);
dst = sampleNearest(src,float2(u, v));
dst.rgb *= w;
}
}
Show details
Hide details
Change log
r170
by i...@mrdoob.com on Apr 18, 2009
Diff
@lab added shader effects
Go to:
/trunk/lab
/trunk/lab/effects
/trunk/lab/effects/shaders
...fects/shaders/plane_deformations
...haders/plane_deformations/deploy
...e_deformations/deploy/Hypno.html
...ne_deformations/deploy/Hypno.swf
..._deformations/deploy/Planes.html
...e_deformations/deploy/Planes.swf
...ne_deformations/deploy/Rays.html
...ane_deformations/deploy/Rays.swf
...e_deformations/deploy/Rays2.html
...ne_deformations/deploy/Rays2.swf
..._deformations/deploy/Sphere.html
...e_deformations/deploy/Sphere.swf
...ne_deformations/deploy/Star.html
...ane_deformations/deploy/Star.swf
..._deformations/deploy/Tunnel.html
...e_deformations/deploy/Tunnel.swf
...deformations/deploy/Tunnel2.html
..._deformations/deploy/Tunnel2.swf
...deformations/deploy/Tunnel3.html
..._deformations/deploy/Tunnel3.swf
...deformations/deploy/Tunnel4.html
..._deformations/deploy/Tunnel4.swf
..._deformations/deploy/Vortex.html
...e_deformations/deploy/Vortex.swf
...ne_deformations/deploy/Wave.html
...ane_deformations/deploy/Wave.swf
...lane_deformations/deploy/shaders
...mations/deploy/shaders/hypno.pbj
...mations/deploy/shaders/hypno.pbk
...ations/deploy/shaders/planes.pbj
...ations/deploy/shaders/planes.pbk
...rmations/deploy/shaders/rays.pbj
...rmations/deploy/shaders/rays.pbk
...mations/deploy/shaders/rays2.pbj
...mations/deploy/shaders/rays2.pbk
...ations/deploy/shaders/sphere.pbj
...ations/deploy/shaders/sphere.pbk
...rmations/deploy/shaders/star.pbj
...rmations/deploy/shaders/star.pbk
...ations/deploy/shaders/tunnel.pbj
...ations/deploy/shaders/tunnel.pbk
...tions/deploy/shaders/tunnel2.pbj
...tions/deploy/shaders/tunnel2.pbk
...tions/deploy/shaders/tunnel3.pbj
...tions/deploy/shaders/tunnel3.pbk
...tions/deploy/shaders/tunnel4.pbj
...tions/deploy/shaders/tunnel4.pbk
Project members,
sign in
to write a code review
Older revisions
All revisions of this file
File info
Size: 1556 bytes, 63 lines
View raw file
Hosted by