Hi Andreas, Thanks for the test file. I can confirm the bug at my end. My guess it's a bug in the geometry code for the cylinder in ShapeDrawable::accept(PrimtiveFunctor&). I'm not in a position to dive in a fix this bug right away. Can yourself or someone else help out?
Robert. On Mon, Oct 5, 2009 at 10:31 AM, Andreas Goebel <a-goe...@gmx.de> wrote: > Hi, > > I have used OpenSceneGraph 2.2.x for quite some time and have now > upgraded to 2.8.2. > > I found that picking shape Drawables has become very very unprecise. > This can be reproduced with the osgpick-example. The drawable is still > picked even if the mouse is miles away. This error did not occur with > the 2.2.x series, if that helps to find out where this behaviour might > come from. > > I attach a sample osg-file that can be used with the 2.8.2. osgpick > example to reproduce the bug. It is a very long and thin cylinder, maybe > this strange shape makes the bug appear whereas more normal shaped > cylinders are picked correctly. > > Regards, > > Andreas > > Group { > name "TheGroup" > nodeMask 0xffffffff > cullingActive TRUE > num_children 3 > Group { > UniqueID Group_0 > name "P" > nodeMask 0xffffffff > cullingActive TRUE > StateSet { > UniqueID StateSet_1 > rendering_hint OPAQUE_BIN > renderBinMode USE > binNumber 0 > binName RenderBin > GL_ALPHA_TEST ON > GL_BLEND ON > AlphaFunc { > comparisonFunc GREATER > referenceValue 0 > } > ShadeModel { > mode SMOOTH > } > LightModel { > ambientIntensity 0.2 0.2 0.2 1 > colorControl SINGLE_COLOR > localViewer FALSE > twoSided TRUE > } > } > num_children 3 > Geode { > nodeMask 0xffffffff > cullingActive TRUE > num_drawables 1 > osgText::Text { > UniqueID Text_2 > StateSet { > UniqueID StateSet_3 > rendering_hint TRANSPARENT_BIN > renderBinMode USE > binNumber 10 > binName DepthSortedBin > } > supportsDisplayList FALSE > useDisplayList FALSE > useVertexBufferObjects FALSE > fontResolution 80 80 > characterSize 0.6 1 > characterSizeMode OBJECT_COORDS > alignment LEFT_BASE_LINE > autoRotateToScreen TRUE > layout LEFT_TO_RIGHT > position 2.17262 -3.21246 5.21694 > drawMode 1 > text "P" > font arial.ttf > color 1 1 1 1 > backdropType OUTLINE > backdropHorizontalOffset 0.07 > backdropVerticalOffset 0.07 > backdropColor 0 0 0 1 > backdropImplementation DEPTH_RANGE > colorGradientMode SOLID > colorGradientTopLeft 1 0 0 1 > colorGradientBottomLeft 0 1 0 1 > colorGradientBottomRight 0 0 1 1 > colorGradientTopRight 1 1 1 1 > } > } > Geode { > UniqueID Geode_4 > nodeMask 0x0 > cullingActive TRUE > num_drawables 1 > Geometry { > UniqueID Geometry_5 > StateSet { > rendering_hint DEFAULT_BIN > renderBinMode INHERIT > GL_LINE_STIPPLE ON > LineStipple { > factor 1 > pattern 0xf > } > } > useDisplayList TRUE > useVertexBufferObjects FALSE > PrimitiveSets 1 > { > DrawArrays LINES 0 2 > } > VertexArray UniqueID Vec3Array_6 Vec3Array 2 > { > 2.17262 -3.21246 5.21694 > 1.97262 -3.41246 5.01694 > } > NormalBinding OVERALL > NormalArray Vec3Array 1 > { > 0 -1 0 > } > ColorBinding OVERALL > ColorArray Vec4Array 1 > { > 0 0 0 1 > } > } > } > Geode { > UniqueID Geode_7 > nodeMask 0xffffffff > cullingActive TRUE > num_drawables 1 > ShapeDrawable { > UniqueID ShapeDrawable_8 > Box { > UniqueID Box_9 > Center 1.97262 -3.41246 5.01694 > HalfLengths 0.15 0.15 0.15 > Rotation 0 0 0 1 > } > useDisplayList TRUE > useVertexBufferObjects FALSE > color 1 0 0 1 > TessellationHints { > detailRatio 0.5 > createFaces TRUE FALSE > createNormals TRUE > createTextureCoords FALSE > createParts TRUE TRUE TRUE > } > } > } > } > Group { > UniqueID Group_10 > name "P2" > nodeMask 0xffffffff > cullingActive TRUE > StateSet { > UniqueID StateSet_11 > rendering_hint OPAQUE_BIN > renderBinMode USE > binNumber 0 > binName RenderBin > GL_ALPHA_TEST ON > GL_BLEND ON > AlphaFunc { > comparisonFunc GREATER > referenceValue 0 > } > ShadeModel { > mode SMOOTH > } > LightModel { > ambientIntensity 0.2 0.2 0.2 1 > colorControl SINGLE_COLOR > localViewer FALSE > twoSided TRUE > } > } > num_children 3 > Geode { > nodeMask 0xffffffff > cullingActive TRUE > num_drawables 1 > osgText::Text { > UniqueID Text_12 > Use StateSet_3 > supportsDisplayList FALSE > useDisplayList FALSE > useVertexBufferObjects FALSE > fontResolution 80 80 > characterSize 0.6 1 > characterSizeMode OBJECT_COORDS > alignment LEFT_BASE_LINE > autoRotateToScreen TRUE > layout LEFT_TO_RIGHT > position -1.83053 1.468 2.07904 > drawMode 1 > text "P2" > font arial.ttf > color 1 1 1 1 > backdropType OUTLINE > backdropHorizontalOffset 0.07 > backdropVerticalOffset 0.07 > backdropColor 0 0 0 1 > backdropImplementation DEPTH_RANGE > colorGradientMode SOLID > colorGradientTopLeft 1 0 0 1 > colorGradientBottomLeft 0 1 0 1 > colorGradientBottomRight 0 0 1 1 > colorGradientTopRight 1 1 1 1 > } > } > Geode { > UniqueID Geode_13 > nodeMask 0x0 > cullingActive TRUE > num_drawables 1 > Geometry { > UniqueID Geometry_14 > StateSet { > rendering_hint DEFAULT_BIN > renderBinMode INHERIT > GL_LINE_STIPPLE ON > LineStipple { > factor 1 > pattern 0xf > } > } > useDisplayList TRUE > useVertexBufferObjects FALSE > PrimitiveSets 1 > { > DrawArrays LINES 0 2 > } > VertexArray UniqueID Vec3Array_15 Vec3Array 2 > { > -1.83053 1.468 2.07904 > -2.03053 1.268 1.87904 > } > NormalBinding OVERALL > NormalArray Vec3Array 1 > { > 0 -1 0 > } > ColorBinding OVERALL > ColorArray Vec4Array 1 > { > 0 0 0 1 > } > } > } > Geode { > UniqueID Geode_16 > nodeMask 0xffffffff > cullingActive TRUE > num_drawables 1 > ShapeDrawable { > UniqueID ShapeDrawable_17 > Box { > UniqueID Box_18 > Center -2.03053 1.268 1.87904 > HalfLengths 0.15 0.15 0.15 > Rotation 0 0 0 1 > } > useDisplayList TRUE > useVertexBufferObjects FALSE > color 1 0 0 1 > TessellationHints { > detailRatio 0.5 > createFaces TRUE FALSE > createNormals TRUE > createTextureCoords FALSE > createParts TRUE TRUE TRUE > } > } > } > } > Group { > UniqueID Group_19 > name "g" > nodeMask 0xffffffff > cullingActive TRUE > StateSet { > UniqueID StateSet_20 > rendering_hint OPAQUE_BIN > renderBinMode USE > binNumber 0 > binName RenderBin > GL_CULL_FACE ON > GL_ALPHA_TEST ON > GL_BLEND ON > AlphaFunc { > comparisonFunc GREATER > referenceValue 0 > } > CullFace { > mode BACK > } > ShadeModel { > mode SMOOTH > } > LightModel { > ambientIntensity 0.2 0.2 0.2 1 > colorControl SINGLE_COLOR > localViewer FALSE > twoSided TRUE > } > } > num_children 3 > Geode { > UniqueID Geode_21 > nodeMask 0xffffffff > cullingActive TRUE > StateSet { > UniqueID StateSet_22 > rendering_hint DEFAULT_BIN > renderBinMode INHERIT > Material { > UniqueID Material_23 > ColorMode OFF > ambientColor 0.8 0.8 0.8 1 > diffuseColor 0.8 0.8 0.8 1 > specularColor 0.8 0.8 0.8 1 > emissionColor 0 0 0 1 > shininess 120 > } > } > num_drawables 1 > ShapeDrawable { > UniqueID ShapeDrawable_24 > Cylinder { > UniqueID Cylinder_25 > Center -0.0289545 -1.07223 3.44799 > Radius 0.05 > Height 100 > Rotation -0.64796 -0.554194 0 0.52251 > } > useDisplayList TRUE > useVertexBufferObjects FALSE > color 0.8 0.8 0.8 1 > TessellationHints { > detailRatio 1 > createFaces TRUE FALSE > createNormals TRUE > createTextureCoords FALSE > createParts TRUE TRUE TRUE > } > } > } > Geode { > nodeMask 0xffffffff > cullingActive TRUE > num_drawables 1 > osgText::Text { > UniqueID Text_26 > Use StateSet_3 > supportsDisplayList FALSE > useDisplayList FALSE > useVertexBufferObjects FALSE > fontResolution 80 80 > characterSize 0.6 1 > characterSizeMode OBJECT_COORDS > alignment LEFT_BASE_LINE > autoRotateToScreen TRUE > layout LEFT_TO_RIGHT > position -0.303567 -1.14052 3.24331 > drawMode 1 > text "" > font arial.ttf > color 1 1 1 1 > backdropType OUTLINE > backdropHorizontalOffset 0.07 > backdropVerticalOffset 0.07 > backdropColor 0 0 0 1 > backdropImplementation DEPTH_RANGE > colorGradientMode SOLID > colorGradientTopLeft 1 0 0 1 > colorGradientBottomLeft 0 1 0 1 > colorGradientBottomRight 0 0 1 1 > colorGradientTopRight 1 1 1 1 > } > } > Geode { > UniqueID Geode_27 > nodeMask 0x0 > cullingActive TRUE > num_drawables 1 > Geometry { > UniqueID Geometry_28 > StateSet { > rendering_hint DEFAULT_BIN > renderBinMode INHERIT > GL_LINE_STIPPLE ON > LineStipple { > factor 1 > pattern 0xf > } > } > useDisplayList TRUE > useVertexBufferObjects FALSE > PrimitiveSets 1 > { > DrawArrays LINES 0 2 > } > VertexArray UniqueID Vec3Array_29 Vec3Array 2 > { > -0.303567 -1.14052 3.24331 > -0.140218 -0.933016 3.34459 > } > NormalBinding OVERALL > NormalArray Vec3Array 1 > { > 0 -1 0 > } > ColorBinding OVERALL > ColorArray Vec4Array 1 > { > 0 0 0 1 > } > } > } > } > } > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org