查看: 2389|回复: 6

OSG是否具有对三维模型进行剖切的功能?

[复制链接]

该用户从未签到

发表于 2011-8-31 11:25:10 | 显示全部楼层 |阅读模式
我现在需要对三维模型进行剖切。不知道OSG是否提供了这个功能?如果不能剖切的话,用一个平面去切另外一个三角网构成的曲面时,怎么求出交线呢?

该用户从未签到

发表于 2011-9-1 09:16:21 | 显示全部楼层
这种麻烦的几何运算是不能实时完成的,也许您需要借助一些专门的几何造型库,或者自己手动完成

该用户从未签到

发表于 2011-9-1 23:17:46 | 显示全部楼层
本帖最后由 x_wp 于 2011-9-1 23:58 编辑

OSG有个例子叫osgspheresegment,好像不断在绘制部分球面与地面的交线,没研究过,不知是不是楼主要的功能。

osgSphiereSagument.png

该范例程序第111行有这么一句:


  1. osgSim::SphereSegment::LineList lines = ss_->computeIntersection(possie, terrain_.get());
复制代码


computeIntersection的另一个重载为:
LineList osgSim::SphereSegment::computeIntersection(const osg::Matrixd& matrix, osg::Node* subgraph)
有对这个方法的注释:
Compute the interesection lines between subgraph and this sphere segment.
The matrix is the transform that takes the subgraph into the same coordiante frame as the sphere segment. The resulting intersections are in the coordinate frame of the sphere segment.

楼主可以研究一下,另外osgclip这个例子似乎也有点剖解模型的意思。

该用户从未签到

发表于 2011-9-2 08:32:56 | 显示全部楼层
clipPlane的作用仅仅是给出裁切平面,实现视觉上的剖切,但它不可能得到真正的几何数据

该用户从未签到

发表于 2011-9-2 14:17:56 | 显示全部楼层
用一个平面去切另外一个三角网构成的曲面时,好像osg:laneInIntersector好像可以求出交点,交点放在交集的PloyLine中,不知道是不是你要的

该用户从未签到

发表于 2011-9-2 14:19:30 | 显示全部楼层
是osgUtil:laneIntersector

该用户从未签到

 楼主| 发表于 2011-9-5 15:17:58 | 显示全部楼层
osg:laneInIntersector可以求出交点。感觉效果还不错,速度还行!
呵呵!
感谢各位的提示啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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