我从如下图像中读出 z-Buffer:
--get z buffer in HD resolution
rbmpHD = render outputsize:[1920,1080] channels:#(#zdepth) vfb:off camera: z_cam
z_dHD = getchannelasmask rbmp #zdepth outputfile:z_name
z_dHD.fileName = z_nameHD
save z_dHD
close z_dHD
我用了
pngio.setType #gray16
然而,为了将图像写成 16 位,它们没有使用向下的 8 位,这意味着深度图像的分辨率被限制为 256 步。因此,读取的 z 缓冲区从一开始就是从 0 到 255。是否可以从一开始就读取 16 位分辨率的 z-Buffer 图像?
编辑:
代码必须生成可以读回 C++ 程序的任何类型的输出图像。为此,我需要 16 位的分辨率
功能
getChannel rbmpHD [x,y] #zDepth
然而,返回 z 深度值 - 这意味着必须循环遍历相机的整个可见空间 - 并且如何才能将这些可见表面带到相机?即使有可能,这也会大大减慢进程