added files from player evaluation - BUILDING completed -
BIN
bin/data/AlltagTechnikUmwelt.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
bin/data/AlltagWissenschaftUmwelt.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
bin/data/Danke_4070_2.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
bin/data/FINAL_Logo.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
bin/data/HexAlltagTechnikUmwelt.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
BIN
bin/data/HexAlltagWissenschaftUmwelt.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
bin/data/HexTechnikUmwelt.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
bin/data/HexUmweltTechnik.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
bin/data/HexUmweltWissenschaft.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
bin/data/Hexagon.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
bin/data/Ohm.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
bin/data/PktAlltagTechnikUmwelt.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
bin/data/PktAlltagWissenschaftUmwelt.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
bin/data/PktTechnikUmwelt.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
bin/data/PktUmweltTechnik.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
bin/data/PktUmweltWissenschaft.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
bin/data/TechnikUmwelt.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
bin/data/UmweltTechnik.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
bin/data/UmweltWissenschaft.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
bin/data/Wolke.png
Normal file
After Width: | Height: | Size: 937 B |
BIN
bin/data/img/beer.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
bin/data/img/br.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
bin/data/img/tex.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
bin/data/img/tr.png
Normal file
After Width: | Height: | Size: 111 KiB |
24
bin/data/settings.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"warps": [
|
||||
{
|
||||
"blend": {
|
||||
"edges": "0, 0, 0.5, 0.5",
|
||||
"exponent": 2.0,
|
||||
"gamma": "1, 1, 1",
|
||||
"luminance": "0.5, 0.5, 0.5"
|
||||
},
|
||||
"brightness": 1.0,
|
||||
"type": 2,
|
||||
"warp": {
|
||||
"columns": 2,
|
||||
"control points": [
|
||||
"0, 0",
|
||||
"1, 0",
|
||||
"1, 1",
|
||||
"0, 1"
|
||||
],
|
||||
"rows": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
16
bin/data/shaders/ofxWarp/ControlPoint.frag
Normal file
@ -0,0 +1,16 @@
|
||||
#version 150
|
||||
|
||||
in vec2 vTexCoord;
|
||||
in vec4 vColor;
|
||||
|
||||
out vec4 fragColor;
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vec2 uv = vTexCoord * 2.0 - 1.0;
|
||||
float d = dot(uv, uv);
|
||||
float rim = smoothstep(0.7, 0.8, d);
|
||||
rim += smoothstep(0.3, 0.4, d) - smoothstep(0.5, 0.6, d);
|
||||
rim += smoothstep(0.1, 0.0, d);
|
||||
fragColor = mix(vec4( 0.0, 0.0, 0.0, 0.25), vColor, rim);
|
||||
}
|
23
bin/data/shaders/ofxWarp/ControlPoint.vert
Normal file
@ -0,0 +1,23 @@
|
||||
#version 150
|
||||
|
||||
// OF default uniforms and attributes
|
||||
uniform mat4 modelViewProjectionMatrix;
|
||||
uniform vec4 globalColor;
|
||||
|
||||
in vec4 position;
|
||||
in vec2 texcoord;
|
||||
in vec4 color;
|
||||
|
||||
// App uniforms and attributes
|
||||
in vec4 iPositionScale;
|
||||
in vec4 iColor;
|
||||
|
||||
out vec2 vTexCoord;
|
||||
out vec4 vColor;
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vTexCoord = texcoord;
|
||||
vColor = globalColor * iColor;
|
||||
gl_Position = modelViewProjectionMatrix * vec4(position.xy * iPositionScale.z + iPositionScale.xy, position.zw);
|
||||
}
|
57
bin/data/shaders/ofxWarp/WarpBilinear.frag
Normal file
@ -0,0 +1,57 @@
|
||||
#version 150
|
||||
|
||||
uniform sampler2D uTexture;
|
||||
uniform vec4 uExtends;
|
||||
uniform vec3 uLuminance;
|
||||
uniform vec3 uGamma;
|
||||
uniform vec4 uEdges;
|
||||
uniform vec4 uCorners;
|
||||
uniform float uExponent;
|
||||
uniform bool uEditing;
|
||||
|
||||
in vec2 vTexCoord;
|
||||
in vec4 vColor;
|
||||
|
||||
out vec4 fragColor;
|
||||
|
||||
float map(in float value, in float inMin, in float inMax, in float outMin, in float outMax)
|
||||
{
|
||||
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
|
||||
}
|
||||
|
||||
float grid(in vec2 uv, in vec2 size)
|
||||
{
|
||||
vec2 coord = uv / size;
|
||||
vec2 grid = abs(fract(coord - 0.5) - 0.5) / (2.0 * fwidth(coord));
|
||||
float line = min(grid.x, grid.y);
|
||||
return 1.0 - min(line, 1.0);
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vec4 texColor = texture(uTexture, vTexCoord);
|
||||
|
||||
vec2 mapCoord = vec2(map(vTexCoord.x, uCorners.x, uCorners.z, 0.0, 1.0), map(vTexCoord.y, uCorners.y, uCorners.w, 0.0, 1.0));
|
||||
|
||||
float a = 1.0;
|
||||
if (uEdges.x > 0.0) a *= clamp(mapCoord.x / uEdges.x, 0.0, 1.0);
|
||||
if (uEdges.y > 0.0) a *= clamp(mapCoord.y / uEdges.y, 0.0, 1.0);
|
||||
if (uEdges.z > 0.0) a *= clamp((1.0 - mapCoord.x) / uEdges.z, 0.0, 1.0);
|
||||
if (uEdges.w > 0.0) a *= clamp((1.0 - mapCoord.y) / uEdges.w, 0.0, 1.0);
|
||||
|
||||
const vec3 one = vec3(1.0);
|
||||
vec3 blend = (a < 0.5) ? (uLuminance * pow(2.0 * a, uExponent)) : one - (one - uLuminance) * pow(2.0 * (1.0 - a), uExponent);
|
||||
|
||||
texColor.rgb *= pow(blend, one / uGamma);
|
||||
|
||||
if (uEditing)
|
||||
{
|
||||
float f = grid(mapCoord.xy * uExtends.xy, uExtends.zw);
|
||||
vec4 gridColor = vec4(1.0f);
|
||||
fragColor = mix(texColor * vColor, gridColor, f);
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = texColor * vColor;
|
||||
}
|
||||
}
|
21
bin/data/shaders/ofxWarp/WarpBilinear.vert
Normal file
@ -0,0 +1,21 @@
|
||||
#version 150
|
||||
|
||||
// OF default uniforms and attributes
|
||||
uniform mat4 modelViewProjectionMatrix;
|
||||
uniform vec4 globalColor;
|
||||
|
||||
in vec4 position;
|
||||
in vec2 texcoord;
|
||||
in vec4 color;
|
||||
|
||||
// App uniforms and attributes
|
||||
out vec2 vTexCoord;
|
||||
out vec4 vColor;
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vTexCoord = texcoord;
|
||||
vColor = globalColor;
|
||||
|
||||
gl_Position = modelViewProjectionMatrix * position;
|
||||
}
|
38
bin/data/shaders/ofxWarp/WarpPerspective.frag
Normal file
@ -0,0 +1,38 @@
|
||||
#version 150
|
||||
|
||||
uniform sampler2D uTexture;
|
||||
uniform vec3 uLuminance;
|
||||
uniform vec3 uGamma;
|
||||
uniform vec4 uEdges;
|
||||
uniform vec4 uCorners;
|
||||
uniform float uExponent;
|
||||
|
||||
in vec2 vTexCoord;
|
||||
in vec4 vColor;
|
||||
|
||||
out vec4 fragColor;
|
||||
|
||||
float map(in float value, in float inMin, in float inMax, in float outMin, in float outMax)
|
||||
{
|
||||
return outMin + (outMax - outMin) * (value - inMin) / (inMax - inMin);
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vec4 texColor = texture(uTexture, vTexCoord);
|
||||
|
||||
vec2 mapCoord = vec2(map(vTexCoord.x, uCorners.x, uCorners.z, 0.0, 1.0), map(vTexCoord.y, uCorners.y, uCorners.w, 0.0, 1.0));
|
||||
|
||||
float a = 1.0;
|
||||
if (uEdges.x > 0.0) a *= clamp(mapCoord.x / uEdges.x, 0.0, 1.0);
|
||||
if (uEdges.y > 0.0) a *= clamp(mapCoord.y / uEdges.y, 0.0, 1.0);
|
||||
if (uEdges.z > 0.0) a *= clamp((1.0 - mapCoord.x) / uEdges.z, 0.0, 1.0);
|
||||
if (uEdges.w > 0.0) a *= clamp((1.0 - mapCoord.y) / uEdges.w, 0.0, 1.0);
|
||||
|
||||
const vec3 one = vec3(1.0);
|
||||
vec3 blend = (a < 0.5) ? (uLuminance * pow(2.0 * a, uExponent)) : one - (one - uLuminance) * pow(2.0 * (1.0 - a), uExponent);
|
||||
|
||||
texColor.rgb *= pow(blend, one / uGamma);
|
||||
|
||||
fragColor = texColor * vColor;
|
||||
}
|
21
bin/data/shaders/ofxWarp/WarpPerspective.vert
Normal file
@ -0,0 +1,21 @@
|
||||
#version 150
|
||||
|
||||
// OF default uniforms and attributes
|
||||
uniform mat4 modelViewProjectionMatrix;
|
||||
uniform vec4 globalColor;
|
||||
|
||||
in vec4 position;
|
||||
in vec2 texcoord;
|
||||
in vec4 color;
|
||||
|
||||
// App uniforms and attributes
|
||||
out vec2 vTexCoord;
|
||||
out vec4 vColor;
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vTexCoord = texcoord;
|
||||
vColor = globalColor;
|
||||
|
||||
gl_Position = modelViewProjectionMatrix * position;
|
||||
}
|
BIN
bin/data/testcard.png
Normal file
After Width: | Height: | Size: 28 KiB |
10
bin/data/xml/attractor.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<default>
|
||||
<sizeMin>0.05</sizeMin>
|
||||
<sizeMax>4</sizeMax>
|
||||
<mass>100</mass>
|
||||
<drag>0</drag>
|
||||
<maxLife>10</maxLife>
|
||||
<velMin>-80</velMin>
|
||||
<velMax>80</velMax>
|
||||
<color></color>
|
||||
</default>
|
10
bin/data/xml/default.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<default>
|
||||
<sizeMin>0.05</sizeMin>
|
||||
<sizeMax>4</sizeMax>
|
||||
<mass>100</mass>
|
||||
<drag>0</drag>
|
||||
<maxLife>10</maxLife>
|
||||
<velMin>-80</velMin>
|
||||
<velMax>80</velMax>
|
||||
<color></color>
|
||||
</default>
|
10
bin/data/xml/detractor.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<default>
|
||||
<sizeMin>0.05</sizeMin>
|
||||
<sizeMax>4</sizeMax>
|
||||
<mass>100</mass>
|
||||
<drag>0</drag>
|
||||
<maxLife>10</maxLife>
|
||||
<velMin>-80</velMin>
|
||||
<velMax>80</velMax>
|
||||
<color></color>
|
||||
</default>
|
10
bin/data/xml/radial.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<default>
|
||||
<sizeMin>0.05</sizeMin>
|
||||
<sizeMax>4</sizeMax>
|
||||
<mass>100</mass>
|
||||
<drag>0</drag>
|
||||
<maxLife>10</maxLife>
|
||||
<velMin>-80</velMin>
|
||||
<velMax>80</velMax>
|
||||
<color></color>
|
||||
</default>
|
10
bin/data/xml/rain.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<default>
|
||||
<sizeMin>0.05</sizeMin>
|
||||
<sizeMax>4</sizeMax>
|
||||
<mass>100</mass>
|
||||
<drag>0</drag>
|
||||
<maxLife>10</maxLife>
|
||||
<velMin>-80</velMin>
|
||||
<velMax>80</velMax>
|
||||
<color></color>
|
||||
</default>
|
21
bin/data/xml/symbol.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<default>
|
||||
<sizeMin>0.01</sizeMin>
|
||||
<sizeMax>4.0</sizeMax>
|
||||
<massMin>100</massMin>
|
||||
<massMax>250</massMax>
|
||||
<drag>0</drag>
|
||||
<maxLife>ofRandom(maxAge - 5, maxAge)</maxLife>
|
||||
<velMin>-80</velMin>
|
||||
<velMax>80</velMax>
|
||||
<color>(5, 241, 219)</color>
|
||||
<age>0.0</age>
|
||||
<valueToMoveToTop>0</valueToMoveToTop>
|
||||
<valueToMoveToRight>0</valueToMoveToRight>
|
||||
<counterToMoveParticlesToRight>70</counterToMoveParticlesToRight>
|
||||
<particleLeftScene>false</particleLeftScene>
|
||||
|
||||
</default>
|
||||
|
||||
vel.set(ofRandom(-20.0, 20.0), ofRandom(-90, -100));
|
||||
|
||||
|
@ -14,6 +14,7 @@ Particle::Particle()
|
||||
|
||||
|
||||
}
|
||||
|
||||
// -----------------------------------
|
||||
|
||||
Particle::~Particle()
|
||||
@ -76,6 +77,18 @@ void Particle::updateParticle(double deltaT, ofVec2f attractor, bool cloudAttrac
|
||||
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void Particle::doMovementOfParticlesAtRain(bool tornadoIsFinished, double deltaT, float sceneSizeX)
|
||||
{
|
||||
if (tornadoIsFinished == false) { //Movement of partile from bottom to top
|
||||
position += vel * deltaT;
|
||||
age += deltaT;
|
||||
|
||||
if (position.x >= sceneSizeX) {
|
||||
position.x = ofRandom(-1, -5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
void Particle::doMovementOfParticlesAtSymbols(double deltaT, ofVec2f &attractor)
|
||||
|