WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Extracting high precision depth map from scene (https://forum.worldviz.com/showthread.php?t=6284)

josephredfern 09-03-2019 04:15 AM

Extracting high precision depth map from scene
 
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('', 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

Jeff 09-05-2019 04:24 PM

The depth buffer on GPUs is non-linear, in order to provide greater precision to nearby objects.

You can convert a raw depth buffer value to linear and world units using the following code:

Code:

z =
znear = viz.MainWindow.getNearClip()
zfar = viz.MainWindow.getFarClip()

# Compute normalized linear depth value (0-1 range)
linear = (2 * znear) / (zfar + znear - z * (zfar - znear))

# Compute world depth value (distance from view plane)
world = (2.0 * znear * zfar) / (zfar + znear - (2.0 * z - 1.0) * (zfar - znear))


josephredfern 10-28-2019 04:53 AM

Hi Jeff,

I forgot to reply to this at the time -- but thank you for your answer, it solved the issue for me.


All times are GMT -7. The time now is 08:40 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC