Hello,
I'm new to using Vizard, and attempting to extract high-precision depth data from a scene.
At the moment, to do this, I am using:
Code:
depth = viz.addRenderTexture(format=viz.TEX_DEPTH_32)
float_buff = depth.saveToBuffer('<raw>', dataType=viz.GL_FLOAT)
size = depth.getSize()
w = size[0]
h = size[1]
d_float = np.fromstring(float_buff, np.float32, w*h)
np.save('depth.npy', d_float.reshape((w, h)))
This allows me to save the values of the depth render texture to a numpy array... but I have a few questions:
- What units is this depth texture in? For the piazza scene, all/most values seem to be around 0.9. Is there a way of converting this to meters?
- The dimension of the resulting texture is always 512x512. How is this controlled?
- Is this the correct way to extract the depth? Is there a way of using depth.save() to store an uncompressed numpy array (rather than png/jpg etc?)
Any guidance would be appreciated.
Thanks,
Joe