【发布时间】:2010-11-21 15:55:40
【问题描述】:
在我的 OpenGL 程序中,我按顺序执行以下操作:
// Drawing filled polyhedrons
// Drawing points using GL_POINTS
// Displaying information for each above point beside it
为了显示点信息(比如点标识符/编号),我使用gluProject() 将点的 3D 坐标转换为 2D 窗口坐标。我使用 glRasterPos() 和 2D 字符渲染代码在该 2D 窗口位置写入点标识符。
当渲染点被另一个图元遮挡时,由于 OpenGL 管道中发生的自动遮挡测试和深度测试,它会自动不显示。但是,我的点标识符文本显示在点旁边,即使它被遮挡,因为我没有得到此遮挡信息。
如何确定一个 3D(渲染)点是否被它前面的其他 3D(渲染)图元遮挡?或者有没有更好的方法在它旁边显示点信息文本只在它没有被遮挡的时候?
注意:我知道需要额外渲染通道的方法。我觉得这些对我的目的来说很昂贵。
【问题讨论】:
-
除了第二遍,你还尝试过什么?
-
Kyle:除了多遍方法,我没有想到任何其他方法。