-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
start to new n-body particles, not yet working
- Loading branch information
1 parent
76bca05
commit 23696c8
Showing
22 changed files
with
3,098 additions
and
0 deletions.
There are no files selected for viewing
28 changes: 28 additions & 0 deletions
28
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/acceleration.frag
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
uniform sampler2DRect acceleration; | ||
uniform sampler2DRect force; | ||
|
||
uniform float time; | ||
uniform float timestep; | ||
uniform float accLimit; | ||
uniform float damping; | ||
|
||
varying vec2 texcoord; | ||
|
||
void main() | ||
{ | ||
vec3 accel = texture2DRect( acceleration, texcoord ).xyz; | ||
vec3 force = texture2DRect( force, texcoord ).xyz; | ||
|
||
accel += force; | ||
|
||
float m = length(acc); | ||
if(m > accLimit) | ||
{ | ||
accel = normalize(acc)*accLimit; | ||
} | ||
|
||
gl_FragColor = vec4(accel, 1.0); | ||
} |
10 changes: 10 additions & 0 deletions
10
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/acceleration.vert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
varying vec2 texcoord; | ||
|
||
void main() | ||
{ | ||
texcoord = gl_MultiTexCoord0.st; | ||
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; | ||
} |
157 changes: 157 additions & 0 deletions
157
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/noise.frag
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
uniform sampler2DRect position; | ||
|
||
//uniform sampler2DRect acceleration; | ||
//uniform sampler2DRect velocity; | ||
|
||
//uniform float time; | ||
//uniform float timestep; | ||
//uniform float accLimit; | ||
//uniform float damping; | ||
|
||
varying vec2 texcoord; | ||
|
||
|
||
|
||
// | ||
// Description : Array and textureless GLSL 2D/3D/4D simplex | ||
// noise functions. | ||
// Author : Ian McEwan, Ashima Arts. | ||
// Maintainer : ijm | ||
// Lastmod : 20110822 (ijm) | ||
// License : Copyright (C) 2011 Ashima Arts. All rights reserved. | ||
// Distributed under the MIT License. See LICENSE file. | ||
// https://github.com/ashima/webgl-noise | ||
// | ||
|
||
vec4 mod289(vec4 x) { | ||
return x - floor(x * (1.0 / 289.0)) * 289.0; } | ||
|
||
float mod289(float x) { | ||
return x - floor(x * (1.0 / 289.0)) * 289.0; } | ||
|
||
vec4 permute(vec4 x) { | ||
return mod289(((x*34.0)+1.0)*x); | ||
} | ||
|
||
float permute(float x) { | ||
return mod289(((x*34.0)+1.0)*x); | ||
} | ||
|
||
vec4 taylorInvSqrt(vec4 r) | ||
{ | ||
return 1.79284291400159 - 0.85373472095314 * r; | ||
} | ||
|
||
float taylorInvSqrt(float r) | ||
{ | ||
return 1.79284291400159 - 0.85373472095314 * r; | ||
} | ||
|
||
vec4 grad4(float j, vec4 ip) | ||
{ | ||
const vec4 ones = vec4(1.0, 1.0, 1.0, -1.0); | ||
vec4 p,s; | ||
|
||
p.xyz = floor( fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0; | ||
p.w = 1.5 - dot(abs(p.xyz), ones.xyz); | ||
s = vec4(lessThan(p, vec4(0.0))); | ||
p.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www; | ||
|
||
return p; | ||
} | ||
|
||
// (sqrt(5) - 1)/4 = F4, used once below | ||
#define F4 0.309016994374947451 | ||
|
||
float snoise(vec4 v) | ||
{ | ||
const vec4 C = vec4( 0.138196601125011, // (5 - sqrt(5))/20 G4 | ||
0.276393202250021, // 2 * G4 | ||
0.414589803375032, // 3 * G4 | ||
-0.447213595499958); // -1 + 4 * G4 | ||
|
||
// First corner | ||
vec4 i = floor(v + dot(v, vec4(F4)) ); | ||
vec4 x0 = v - i + dot(i, C.xxxx); | ||
|
||
// Other corners | ||
|
||
// Rank sorting originally contributed by Bill Licea-Kane, AMD (formerly ATI) | ||
vec4 i0; | ||
vec3 isX = step( x0.yzw, x0.xxx ); | ||
vec3 isYZ = step( x0.zww, x0.yyz ); | ||
// i0.x = dot( isX, vec3( 1.0 ) ); | ||
i0.x = isX.x + isX.y + isX.z; | ||
i0.yzw = 1.0 - isX; | ||
// i0.y += dot( isYZ.xy, vec2( 1.0 ) ); | ||
i0.y += isYZ.x + isYZ.y; | ||
i0.zw += 1.0 - isYZ.xy; | ||
i0.z += isYZ.z; | ||
i0.w += 1.0 - isYZ.z; | ||
|
||
// i0 now contains the unique values 0,1,2,3 in each channel | ||
vec4 i3 = clamp( i0, 0.0, 1.0 ); | ||
vec4 i2 = clamp( i0-1.0, 0.0, 1.0 ); | ||
vec4 i1 = clamp( i0-2.0, 0.0, 1.0 ); | ||
|
||
// x0 = x0 - 0.0 + 0.0 * C.xxxx | ||
// x1 = x0 - i1 + 1.0 * C.xxxx | ||
// x2 = x0 - i2 + 2.0 * C.xxxx | ||
// x3 = x0 - i3 + 3.0 * C.xxxx | ||
// x4 = x0 - 1.0 + 4.0 * C.xxxx | ||
vec4 x1 = x0 - i1 + C.xxxx; | ||
vec4 x2 = x0 - i2 + C.yyyy; | ||
vec4 x3 = x0 - i3 + C.zzzz; | ||
vec4 x4 = x0 + C.wwww; | ||
|
||
// Permutations | ||
i = mod289(i); | ||
float j0 = permute( permute( permute( permute(i.w) + i.z) + i.y) + i.x); | ||
vec4 j1 = permute( permute( permute( permute ( | ||
i.w + vec4(i1.w, i2.w, i3.w, 1.0 )) | ||
+ i.z + vec4(i1.z, i2.z, i3.z, 1.0 )) | ||
+ i.y + vec4(i1.y, i2.y, i3.y, 1.0 )) | ||
+ i.x + vec4(i1.x, i2.x, i3.x, 1.0 )); | ||
|
||
// Gradients: 7x7x6 points over a cube, mapped onto a 4-cross polytope | ||
// 7*7*6 = 294, which is close to the ring size 17*17 = 289. | ||
vec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ; | ||
|
||
vec4 p0 = grad4(j0, ip); | ||
vec4 p1 = grad4(j1.x, ip); | ||
vec4 p2 = grad4(j1.y, ip); | ||
vec4 p3 = grad4(j1.z, ip); | ||
vec4 p4 = grad4(j1.w, ip); | ||
|
||
// Normalise gradients | ||
vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3))); | ||
p0 *= norm.x; | ||
p1 *= norm.y; | ||
p2 *= norm.z; | ||
p3 *= norm.w; | ||
p4 *= taylorInvSqrt(dot(p4,p4)); | ||
|
||
// Mix contributions from the five corners | ||
vec3 m0 = max(0.6 - vec3(dot(x0,x0), dot(x1,x1), dot(x2,x2)), 0.0); | ||
vec2 m1 = max(0.6 - vec2(dot(x3,x3), dot(x4,x4) ), 0.0); | ||
m0 = m0 * m0; | ||
m1 = m1 * m1; | ||
return 49.0 * ( dot(m0*m0, vec3( dot( p0, x0 ), dot( p1, x1 ), dot( p2, x2 ))) | ||
+ dot(m1*m1, vec2( dot( p3, x3 ), dot( p4, x4 ) ) ) ) ; | ||
|
||
} | ||
//END NOISE --------------------------- | ||
|
||
void main() | ||
{ | ||
vec3 pos = texture2DRect( position, texcoord ).xyz; | ||
|
||
vec3 force = vec3(snoise(vec4(pos.xyz,1.0)), | ||
snoise(vec4(pos.zxy,1.0)), | ||
snoise(vec4(pos.yzx,1.0))); | ||
|
||
gl_FragColor = vec4(force, 1.0); | ||
} |
12 changes: 12 additions & 0 deletions
12
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/noise.vert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
uniform float trailLength; | ||
varying vec2 texcoord; | ||
|
||
void main() | ||
{ | ||
texcoord = vec2(gl_MultiTexCoord0.s, gl_MultiTexCoord0.t * trailLength); | ||
//texcoord = vec2(gl_Vertex.x, gl_Vertex.y * trailLength); | ||
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; | ||
} |
21 changes: 21 additions & 0 deletions
21
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/position.frag
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
uniform sampler2DRect position; | ||
uniform sampler2DRect velocity; | ||
uniform float dT; | ||
uniform float size; | ||
|
||
varying vec2 texcoord; | ||
|
||
void main() | ||
{ | ||
vec3 pos = texture2DRect( position, texcoord ).xyz; | ||
vec3 vel = texture2DRect( velocity, texcoord ).xyz; | ||
pos += vel * dT; | ||
//if(pos.z < -size) | ||
//{ | ||
// pos.z = -size; | ||
//} | ||
gl_FragColor = vec4(pos, 1.0); | ||
} |
10 changes: 10 additions & 0 deletions
10
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/position.vert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
varying vec2 texcoord; | ||
|
||
void main() | ||
{ | ||
texcoord = gl_MultiTexCoord0.st; | ||
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; | ||
} |
11 changes: 11 additions & 0 deletions
11
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/render.frag
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
//uniform float spriteSize; | ||
|
||
varying vec2 texcoord; | ||
|
||
void main() | ||
{ | ||
gl_FragColor = gl_Color; | ||
} |
19 changes: 19 additions & 0 deletions
19
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/render.vert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
uniform sampler2DRect positions; | ||
//uniform sampler2DRect radiData; | ||
uniform float radiusMultiplier; | ||
|
||
varying vec2 texcoord; | ||
|
||
void main() | ||
{ | ||
// texcoord = gl_MultiTexCoord0.st; | ||
vec4 pos = texture2DRect( positions , gl_Vertex.xy); | ||
// vec4 radi = texture2DRect( radiData, texcoord.st); | ||
|
||
// gl_PointSize = radi.x*radiusMultiplier; | ||
gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * pos; | ||
gl_FrontColor = gl_Color; | ||
} |
25 changes: 25 additions & 0 deletions
25
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/velocity.frag
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
uniform sampler2DRect velocity; | ||
uniform sampler2DRect acceleration; | ||
uniform float dT; | ||
//uniform float velLimit; | ||
//uniform float damping; | ||
|
||
varying vec2 texcoord; | ||
|
||
void main() | ||
{ | ||
vec3 vel = texture2DRect( velocity, texcoord ).xyz; | ||
vec3 acc = texture2DRect( acceleration, texcoord ).xyz; | ||
vel += acc * dT; | ||
|
||
// if(length(vel) > velLimit) | ||
// { | ||
// vel = normalize(vel)*velLimit; | ||
// } | ||
// vel *= damping; | ||
|
||
gl_FragColor = vec4(vel, 1.0); | ||
} |
10 changes: 10 additions & 0 deletions
10
CloudsLibrary/src/VisualSystems/Nbody/bin/data/shaders/velocity.vert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
#version 110 | ||
#extension GL_ARB_texture_rectangle : enable | ||
|
||
varying vec2 texcoord; | ||
|
||
void main() | ||
{ | ||
texcoord = gl_MultiTexCoord0.st; | ||
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; | ||
} |
Oops, something went wrong.