三维模型上某一点的可见性判断

haowensxsf 2010-06-04 09:29:05
可以将一个三维点投影到屏幕上,利用glReadPixels(winX[i],winY[i],1,1,GL_DEPTH_COMPONENT,GL_FLOAT,&bufferZ),可以得到该点的深度缓存,但是我怎么能把判断这个点是否可见呢?有的paper上说是跟计算出该点的z-value相比较,但是这个z-value怎么计算呢?
一直搞不清楚这个可见性判断的问题,请大家指点一下,非常感谢
...全文
431 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
haowensxsf 2010-06-10
  • 打赏
  • 举报
回复
这是光线投射算法吗?有相应的源码吗,我需要学习一下。[Quote=引用 5 楼 taxi 的回复:]
从照相机位置射出指向那个点的光线,利用这条光线与模型的三角形做相交测试,如果产生多个相交点且有的点离照相机更近则这个点不可见。
这样应该可以吧。
[/Quote]
haowensxsf 2010-06-10
  • 打赏
  • 举报
回复
对,我原来的想法不正确,那我怎样快速的判断三维模型上的某一个点不可见呢?谢谢[Quote=引用 3 楼 zhangci226 的回复:]
你用glReadPixels得到的点,已经是通过深度测试的了
只有可见的才能用glReadPixels的到
[/Quote]
beyond071 2010-06-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhangci226 的回复:]
你用glReadPixels得到的点,已经是通过深度测试的了
只有可见的才能用glReadPixels的到
[/Quote]
有道理。深度测试上可见点的Zvlaue必然要大于不可见点,而只有可见点才能在屏幕上显示出来,故从屏幕坐标上投影点反查得到可见点的Zvalue。
张赐 2010-06-04
  • 打赏
  • 举报
回复
你用glReadPixels得到的点,已经是通过深度测试的了
只有可见的才能用glReadPixels的到
soswaidao 2010-06-04
  • 打赏
  • 举报
回复
这个模型很复杂
张赐 2010-06-04
  • 打赏
  • 举报
回复
深度测试吗?
taxi 2010-06-04
  • 打赏
  • 举报
回复
从照相机位置射出指向那个点的光线,利用这条光线与模型的三角形做相交测试,如果产生多个相交点且有的点离照相机更近则这个点不可见。
这样应该可以吧。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧