查看: 1368|回复: 2

如何计算一个3D物体在屏幕上所占的面积,或者比例?

[复制链接]

该用户从未签到

发表于 2014-9-14 16:33:04 | 显示全部楼层 |阅读模式
      基于某方面奇怪的需求,现在我需要计算空间中一个物体(假设它在当前视点下是可见的)投射到屏幕上的面积,查了很多的资料,参考(http://my.oschina.net/sweetdark/blog/189666),发现通过遮挡查询能得到物体在GL_SAMPLES_PASSED 下能得到片断(fragment)或者采用(sample)的数量,但是,这些数量对于我的问题似乎没什么帮助,有人知道怎么解决吗?或者提供一下思路也行,不胜感激

该用户从未签到

发表于 2014-9-14 17:18:50 | 显示全部楼层
本帖最后由 cenfer 于 2014-9-14 17:25 编辑

简单的说,就是将物体顶点映射到屏幕坐标系下,计算屏幕坐标系下轮廓内的面积。
但纯顶点运算,数据量可能会大到该方法不具有实用性。

如果场景有点、线、面、体的良好架构。
大概需要以下几步:
1.计算与视口平行的平面
2.求物体在该平面上的轮廓线
3.将轮廓线映射到屏幕坐标系下
4.计算屏幕坐标系下轮廓内的面积

边线运算可大大减小数据量。
当然一些基本算法的实现也是必要的。如点、线到面的投影,最小包围盒计算,凸凹多边形面积计算,空间映射矩阵计算。

该用户从未签到

 楼主| 发表于 2014-9-15 11:13:26 | 显示全部楼层
cenfer 发表于 2014-9-14 17:18
简单的说,就是将物体顶点映射到屏幕坐标系下,计算屏幕坐标系下轮廓内的面积。
但纯顶点运算,数据量可能 ...

谢谢。。。和同事讨论了下,想到一个方法:即将背景设置为全黑,物体置为白色,获取截图,计算白色像素的数量就行了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表