gpt4 book ai didi

c++ - 有没有办法访问 OpenGL 的深度缓冲区?

转载 作者:行者123 更新时间:2023-11-28 05:21:14 26 4
gpt4 key购买 nike

例如,有两个对象,我从 (0,0,100) 到 (0,0,0) 看到它们。

对象 1:中心立方体(长/宽/高 10)对象 2:中心球体(半径 5)

然后,我只能看到立方体(此时我不考虑视野和视野体积)

由于openGL使用了z-buffer算法,在窗口的中心,一个像素最初有四个深度值。深度 90(立方体正面),深度 110(立方体背面)深度 95 和 105(对于球体)

添加:然后 z-buffer 只显示立方体的颜色(在深度 90,前面)

那么现在,我想获取保存在窗口中心像素上的值 4。有什么方法可以得到这个值吗?

最佳答案

这有点倒退;像素没有深度值。像素的颜色是根据场景中对象的深度、它们的相对位置和方向以及相机设置来计算的。像素是所有这些的结果,而不是输入数据。

您可以在感兴趣的点上执行相机变换的逆变换,以在场景的“空间”中得到一条线。然后,您可以将该线与场景中的对象相交;这些交点发生的地方是该像素后面的对象的 Z 值。

但是这一切似乎又回到了正常的技术。也许如果我们知道您想要完成的目标,我们可以提出具体的解决方案。

关于c++ - 有没有办法访问 OpenGL 的深度缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41462576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com