【发布时间】:2010-09-01 01:49:53
【问题描述】:
我正在使用 GL 选择缓冲区来实现鼠标拾取。不幸的是,即使是完全被遮挡的对象,OpenGL 也会在选择缓冲区中返回命中。例如,如果有一个人隐藏在墙后,即使该人不可见,选择缓冲区也会包含该人的命中记录。
Selection 的实现方式大致如OpenGL Programming Guide 中所述:切换到 GL_SELECT 渲染模式 -- glRenderMode(GL_SELECT) -- 渲染场景,然后解析选择缓冲区。启用了深度缓冲和深度测试,但 GL 似乎忽略了 GL_SELECT 模式下的深度设置。
OpenGL 是否可以在 GL_SELECT 模式下进行深度剔除?是否有另一种方法可以丢弃隐藏对象的命中记录而不使用其他方法重新实现选择?
【问题讨论】:
标签: c++ opengl graphics selection 3d