easy calib mode

This commit is contained in:
micuat 2020-10-26 13:57:33 +01:00
parent 61ee9e7240
commit 9428900252
5 changed files with 25 additions and 23 deletions

View file

@ -1,6 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<ZONE_B> <ZONE_B>
<XY>-195.918, -220.408</XY> <XY>36.7347, 8.16327</XY>
<scale>1.869</scale> <scale>1.869</scale>
<device>video3</device> <device>video3</device>
</ZONE_B> </ZONE_B>

View file

@ -8,6 +8,10 @@ uniform sampler2DRect u_v4l2cam;
uniform sampler2DRect u_buffer0; uniform sampler2DRect u_buffer0;
uniform sampler2DRect u_buffer1; uniform sampler2DRect u_buffer1;
uniform bool u_calib;
uniform vec2 u_calibXY;
uniform float u_calibScale;
uniform vec2 u_resolution; uniform vec2 u_resolution;
uniform vec2 u_mouse; uniform vec2 u_mouse;
uniform float u_time; uniform float u_time;
@ -172,25 +176,17 @@ void main() {
gl_FragColor = texture(u_buffer0, st); gl_FragColor = texture(u_buffer0, st);
#else #else
// Main Buffer // Main Buffer
vec2 st2 = st + vec2(simplex3d_fractal(vec3(st/200,u_time/4)), simplex3d_fractal(vec3(u_time/4,st.ts/200))) * 40; if (u_calib) {
vec3 dispColor = vec3(0, 0, 0); vec4 depth = texture(u_depth, st);
depth.r *= 100;
depth.a = 0;
vec4 v4l2 = texture(u_v4l2cam, st);
gl_FragColor = depth + v4l2;
}
else {
vec4 pointCloudColor = texture(u_ofcam, st); vec4 pointCloudColor = texture(u_ofcam, st);
// float maxVal = 0;
// float minVal = 1;
// for (int i=0; i < 9; i++){
// float tmp = texture(u_buffer1, st2 + offset[i]/2).r > 0.5 ? 1 : 0;
// maxVal = max(maxVal, tmp);
// minVal = min(minVal, tmp);
// }
// if(maxVal - minVal >= 0.5) {
// dispColor.rgb = vec3(1);
// }
// gl_FragColor = vec4(dispColor, 1.0);
// gl_FragColor.rgb += pointCloudColor.rgb; // not good
gl_FragColor = vec4(mix(vec3(0), pointCloudColor.rgb, pointCloudColor.a), 1.0); gl_FragColor = vec4(mix(vec3(0), pointCloudColor.rgb, pointCloudColor.a), 1.0);
}
#endif #endif

View file

@ -102,7 +102,8 @@ void main()
vec3 remapedColorW = texture(warm1, palette).xyz; vec3 remapedColorW = texture(warm1, palette).xyz;
vec3 remapedColorC = texture(cold2, palette).xyz; vec3 remapedColorC = texture(cold2, palette).xyz;
float d = 50; float d = 50;
float rate = smoothstep(500 - d, 500 + d, length(vPos.x - uHottest3d1.x) + simplex3d(vPos * vec3(0.001, 0.001, 0.1)) * 100); float D = 400;
float rate = smoothstep(D - d, D + d, length(vPos.x - uHottest3d1.x) + simplex3d(vPos * vec3(0.001, 0.001, 0.1)) * 100);
vec3 remapedColor = mix(remapedColorW, remapedColorC, rate); vec3 remapedColor = mix(remapedColorW, remapedColorC, rate);
float alpha = max(0, 1 - pow(vAge,4)); float alpha = max(0, 1 - pow(vAge,4));

View file

@ -130,6 +130,7 @@ void ofApp::setupGui()
gui.setPosition(10, 10); gui.setPosition(10, 10);
debugGui.setup("DEBUG"); debugGui.setup("DEBUG");
debugGui.add(calibMode.setup("calib", false));
debugGui.add(dummyMode.setup("dummy", true)); // should be false debugGui.add(dummyMode.setup("dummy", true)); // should be false
debugGui.add(dummyXY.setup("XY", {256, 256}, {0, 0}, {511, 511})); // should be false debugGui.add(dummyXY.setup("XY", {256, 256}, {0, 0}, {511, 511})); // should be false
debugGui.add(debugFps.setup("FPS", "0")); debugGui.add(debugFps.setup("FPS", "0"));
@ -191,8 +192,8 @@ void ofApp::updateThermal()
{ {
for (int j = 0; j < 512; j++) for (int j = 0; j < 512; j++)
{ {
int x = j * registrationScale + registrationXY->x; int x = (j - 256) * registrationScale + 256 + registrationXY->x;
int y = i * registrationScale + registrationXY->y; int y = (i - 256) * registrationScale + 256 + registrationXY->y;
if (ofInRange(x, 0, camWidth - 1) == false || ofInRange(y, 0, camHeight - 1) == false) if (ofInRange(x, 0, camWidth - 1) == false || ofInRange(y, 0, camHeight - 1) == false)
{ {
continue; continue;
@ -288,6 +289,9 @@ void ofApp::drawMain()
boundShader.setUniformTexture("u_depth", tex); boundShader.setUniformTexture("u_depth", tex);
boundShader.setUniformTexture("u_ofcam", fbos.at("ofcam")); boundShader.setUniformTexture("u_ofcam", fbos.at("ofcam"));
boundShader.setUniformTexture("u_v4l2cam", v4l2Tex); boundShader.setUniformTexture("u_v4l2cam", v4l2Tex);
boundShader.setUniform1i("u_calib", calibMode == true ? 1 : 0);
boundShader.setUniform2f("u_calibXY", registrationXY);
boundShader.setUniform1f("u_calibScale", registrationScale);
boundShader.setUniform1i("u_init", 1); boundShader.setUniform1i("u_init", 1);
boundShader.render(); boundShader.render();
boundShader.setUniform1i("u_init", 0); boundShader.setUniform1i("u_init", 0);

View file

@ -68,6 +68,7 @@ private:
ofxInputField<std::string> captureDeviceName; ofxInputField<std::string> captureDeviceName;
ofxPanel gui; ofxPanel gui;
ofxToggle calibMode;
ofxToggle dummyMode; ofxToggle dummyMode;
ofxVec2Slider dummyXY; ofxVec2Slider dummyXY;
ofxLabel debugFps; ofxLabel debugFps;