上周,leader指出了我的一个错误。
我把所有的图元,都组合到了一个图元里,是不对的。对于简单的可以,大不了用polygon,但是如果复杂的图元集合,就不能用polygon绘制了。并且,还需要收集所有的顶点数组。这样是得不偿失的。
即,我对所有的geom1,geom2,geom3合并成一个primitveset,这样只能期盼图元不复杂。
geom->addPrimitiveSet(new osg::DrawArrays(总mode,0,所有顶点));
实际上,应该是
geom->addPrimitiveSet(new osg::DrawArrays(mode1,0,顶点数组1的个数));
.。。。。
geom->addPrimitiveSet(new osg::DrawArrays(modeN,0,顶点数组N的个数));
至于收集的geometry数组,本身是没有错误的,但是来源要只要盯紧geode的geometry的各个primitiveset,即可。
当然,总的geom的顶点数组,是所有的顶点数组之集合,即收集的geometry数组的集合