|
本帖最后由 rubby 于 2014-6-11 08:54 编辑
大家好:
奇怪的 ClipNode removeClipPlane 问题
(1)我新建了一个圆柱 节点,然后挂接在 clipped_subgraph下,
以实现:将圆柱面上下裁剪掉,剩余中间部分,
osg::ref_ptr<osg::ClipNode> clipped_subgraph = new osg::ClipNode;
double clipDistance =10.0;
clipped_subgraph->addClipPlane( new osg::ClipPlane( 0 ) );
clipped_subgraph->getClipPlane(0)->setClipPlane( 0.0, 0.0, 1.0, clipDistance );
clipped_subgraph->addClipPlane( new osg::ClipPlane( 1 ) );
clipped_subgraph->getClipPlane(1)->setClipPlane( 0.0, 0.0, -1.0, clipDistance);
见图1. 正常
(2)然后增加一个新的ClipPlane,将圆柱面切掉一半,
clipped_subgraph->addClipPlane( new osg::ClipPlane( 2 ) );
clipped->getClipPlane(2)->setClipPlane( 1.0, 0.0, 0.0, 0.0); //x=0
见图2,正常
(3)最后,移除新加入的ClipPlane,
clipped_subgraph->removeClipPlane(2);
clipped->getNumClipPlanes()值也从3变为2。
见图3, 不正常,
但是此时,用鼠标拖动圆柱,圆柱面积发生变化,感觉裁剪面x=0仍然存在,见图4,5。
但是clipped->getNumClipPlanes()值已经从3变为2。
纹理贴图问题
我的圆柱面是一段一段绘制的,然后为每一段生成纹理。 纹理是根据值生成的。
我将生成的纹理导出图片。其中一段见图6,红色线是连接起来的。
但是在图7中,这些红色的线 未连接起来,每一段圆柱面的纹理有明显的错位。(弯曲是正常的,因为图6是其中一小段,整个图片中红色线是曲线)
多谢 |
|