diff --git a/zoneb/bin/data/settings.xml b/zoneb/bin/data/settings.xml index ac7a4dc..89caf32 100644 --- a/zoneb/bin/data/settings.xml +++ b/zoneb/bin/data/settings.xml @@ -3,7 +3,7 @@ 54.0816, 3.06123 1.724 video1 - 8 + 6 1 0 21 diff --git a/zoneb/bin/data/shaders/particles/update.frag b/zoneb/bin/data/shaders/particles/update.frag index b5daaee..f385b7c 100755 --- a/zoneb/bin/data/shaders/particles/update.frag +++ b/zoneb/bin/data/shaders/particles/update.frag @@ -133,14 +133,55 @@ void main() vec4 ray11 = texture(u_world, basePix + vec2(1, 1)); float depth0 = mix(depth00, depth10, subPix.x); + if(depth00 == 0) depth0 = depth10; + if(depth10 == 0) depth0 = depth00; float depth1 = mix(depth01, depth11, subPix.x); + if(depth01 == 0) depth1 = depth11; + if(depth11 == 0) depth1 = depth01; vec4 ray0 = mix(ray00, ray10, subPix.x); vec4 ray1 = mix(ray01, ray11, subPix.x); float depth = mix(depth0, depth1, subPix.y); + if(depth00 == 0 && depth10 == 0) depth = depth1; + if(depth01 == 0 && depth11 == 0) depth = depth0; vec4 ray = mix(ray0, ray1, subPix.y); - float vValid = (depth00 != 0 && depth01 != 0 && depth10 != 0 && depth11 != 0 && ray.x != 0 && ray.y != 0) ? 1 : 0; + int validCount = 0; + // validCount += (depth00 != 0) ? 1 : 0; + // validCount += (depth01 != 0) ? 1 : 0; + // validCount += (depth10 != 0) ? 1 : 0; + // validCount += (depth11 != 0) ? 1 : 0; + // float vValid = (validCount > 1) ? 1 : 0; + // if(subPix.x < 0.5 && subPix.y < 0.5) { + // if(depth00 != 0) validCount += 1; + // } + // else if (subPix.x >= 0.5 && subPix.y < 0.5) { + // if(depth10 != 0) validCount += 1; + // } + // else if(subPix.x < 0.5 && subPix.y >= 0.5) { + // if(depth01 != 0) validCount += 1; + // } + // else if (subPix.x >= 0.5 && subPix.y >= 0.5) { + // if(depth11 != 0) validCount += 1; + // } + // float vValid = (validCount > 0) ? 1 : 0; + + float validity = 0; + if(depth00 != 0) { + validity += sqrt(2) - length(subPix - vec2(0, 0)); + } + if(depth10 != 0) { + validity += sqrt(2) - length(subPix - vec2(1, 0)); + } + if(depth01 != 0) { + validity += sqrt(2) - length(subPix - vec2(0, 1)); + } + if(depth11 != 0) { + validity += sqrt(2) - length(subPix - vec2(1, 1)); + } + + float vValid = (validity > 1) ? 1 : 0; + // float vValid = (depth00 != 0 && depth01 != 0 && depth10 != 0 && depth11 != 0 && ray.x != 0 && ray.y != 0) ? 1 : 0; vec4 posWorld = vec4(1); posWorld.z = -depth * 65535.0; // Remap to float range. @@ -173,7 +214,11 @@ void main() thermo = misc.x; } else { // wandering - age += 10.1; + age += 0.04; + vec3 rand = random3(vec3(texCoordVarying.st, 0)); + if(mod(subPix.x + rand.x, 0.5) > 0.1 || mod(subPix.y + rand.y, 0.5) > 0.1) { + age += 10.1; + } thermo = misc.x; } @@ -189,7 +234,7 @@ void main() force.x += cos(th) * cos(phi); force.y += sin(th) * cos(phi); force.z += sin(phi); - force *= 100; + force *= 300; } else { float th = 3.1415 * 4 * simplex3d_fractal(vec3(pos.xyz * 0.01)); diff --git a/zoneb/src/ofApp.cpp b/zoneb/src/ofApp.cpp index 3320106..f2d1d4d 100644 --- a/zoneb/src/ofApp.cpp +++ b/zoneb/src/ofApp.cpp @@ -131,7 +131,7 @@ void ofApp::setupGui() { gui.setup("ZONE B", "settings.xml"); // most of the time you don't need a name gui.add(registrationXY.setup("XY", {-9, -9}, {-100, -100}, {100, 100})); - gui.add(registrationScale.setup("scale", 2.0, 0.1, 3)); + gui.add(registrationScale.setup("scale", 2.0, 1.5, 2)); gui.add(v4l2Delay.setup("thermo delay", 0, 0, 59)); gui.add(captureDeviceName.setup("device", "video3")); gui.add(blendAdd.setup("blend add", false));