Hello, I have an interesting problem here: when I try to draw a
Geometry containing a single point it doesn't get drawn, if the
geometry has two points distant enough they will get shown, it looks
like if there is some kind of "detail culling" which things that a
single point or two close points shouldn't be drawn. My system is a
simple Ubuntu 7 and Mesa OpenGL (no hardware drivers used).
Here's the code:
// this geometry represents a single atom, that's why it's a point
osg::ref_ptr<osg::Geometry> pointGeom = new osg::Geometry();
osg::ref_ptr<osg::Vec3Array> pointVert = new osg::Vec3Array();
osg::Vec3 v = toOSG(atomData()->position());
pointVert->push_back( v );
pointVert->push_back( v + osg::Vec3f(0,0,0.1) ); //
<------------------ if i put osg::Vec3f(0,0,0.2) or more the geometry
is drawn otherwise is not drawn
pointGeom->setVertexArray(pointVert.get());
osg::ref_ptr<osg::Vec4Array> colors = new osg::Vec4Array;
colors->push_back( toOSG( color() ) );
pointGeom->setColorArray(colors.get());
pointGeom->setColorBinding(osg::Geometry::BIND_OVERALL);
pointGeom->addPrimitiveSet( new
osg::DrawArrays(osg::PrimitiveSet::POINTS, 0, pointVert->size()) );
// geode
osg::Geode* geode = new osg::Geode;
osgGroup()->addChild(geode);
// states
geode->getOrCreateStateSet()->setMode(GL_LIGHTING,
osg::StateAttribute::OFF);
osg::ref_ptr<osg::Point> point = new osg::Point;
point->setSize( pointSize() );
geode->getOrCreateStateSet()->setAttribute(point.get(),
osg::StateAttribute::ON);
am I missing something very obvious here? it's a bug or something else?
Regards,
Michele
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org