We are about to switch to a new forum software. Until then we have removed the registration on this forum.
Hi everyone, I have been trying to achieve a 3-6 sec delay on the live display from my kinect 2's point cloud feed, I am new to all this, so I have been basing my work on the KinectPV2 library by Langeling, I also came across a post here (https://forum.processing.org/two/discussion/15800/how-to-delay-the-feed-of-the-kinect-2-point-cloud) where it is solved but i am having a hard time applying it to the solution I have in hands. this is the code i have in hands
import java.nio.*;
import KinectPV2.*;
KinectPV2 kinect;
int Vloc, z = -200, VBOID;
float scale = 260, pointScale = 100.0, a = 0.1;
int distanceMax = 4500, distanceMin = 0;
PGL pgl;
PShader psh;
ArrayList<ArrayList> clouds;
int limit = 120;
public void setup ()
{
size(1280, 720, P3D);
kinect = new KinectPV2(this);
kinect.enableDepthImg(true);
kinect.enablePointCloud(true);
kinect.setLowThresholdPC(distanceMin);
kinect.setHighThresholdPC(distanceMax);
kinect.init();
psh = loadShader("frag.glsl", "vert.glsl");
PGL pgl = beginPGL();
IntBuffer buffer = IntBuffer.allocate(1);
pgl.genBuffers(1, buffer);
VBOID = buffer.get(0);
endPGL();
clouds = new ArrayList<ArrayList>();
}
public void draw ()
{
background(0);
translate(width/2, height/2, z);
scale(scale, -1*scale, scale);
rotate(a, 0.0f, 1.0f, 0.0f);
kinect.setLowThresholdPC(distanceMin);
kinect.setHighThresholdPC(distanceMax);
FloatBuffer cloudBuf=kinect.getPointCloudPos();
pgl=beginPGL();
psh.bind();
Vloc=pgl.getAttribLocation(psh.glProgram, "vertex");
pgl.enableVertexAttribArray(Vloc);
int vData=kinect.WIDTHDepth * kinect.HEIGHTDepth *3;
{
pgl.bindBuffer(PGL.ARRAY_BUFFER, VBOID);
pgl.bufferData(PGL.ARRAY_BUFFER, Float.BYTES*vData,cloudBuf, PGL.DYNAMIC_DRAW);
pgl.vertexAttribPointer(Vloc, 3, PGL.FLOAT, false, Float.BYTES*3,0);
}
pgl.bindBuffer(PGL.ARRAY_BUFFER, 0);
//draw point buffer as set of points
//this is where the delay-draw mechanis should be?
//or what it should encapsulate?
pgl.drawArrays(PGL.POINTS, 0, vData);
pgl.disableVertexAttribArray(Vloc);
psh.unbind();
endPGL();
stroke(255,0,0);
}
Answers
Please edit your post, select your code and hit
ctrl+o
to format your code. Make sure there is an empty line above and below your code.Kf
Thank you kfrajer, can you help me now?
Do you need to post your shader code?
um no, and this is the entire undelayed thing
I worked on this code using other libs but it cannot open or detect kinect