Hi Bruno,

There is simply no geometry in the scenegraph to intersect (or strictly speaking there is only one drawable)

Instancing takes away the load from the CPU to the GPU,which on the OSG-side means to put the instanced geometries into one drawable containing the instancing information.

You could use two scenes representing the rendered scene using the instances and another using multiple drawables for intersection determination. If it is rather static, KD-Trees will help with performance on the intersection-set.


Apart from this, you could overwrite the intersections of DrawArrays with some method that takes instances into account, but that might get tricky as there are many different ways to realize instancing. I'd go with two scenes, using different node-masks for the intersection and the "draw"-scene, as it is the easiest approach.

Cheers
Sebastian



Hi, Oliveira,

there maybe many reasons that why no intersection. I cannot give you
advise without more information. u can check about examples within OSG
source code, e.g. "osgintersection".

--
Cheers,
---
TianZJ




At 2017-01-03 17:55:02, "Bruno Oliveira"
<[email protected]
<mailto:[email protected]>> wrote:

    Hi TianZJ, Thanks for the quick answer.

    I checked the intersector, but intersector->getIntersections()
    returns no intersections at all.



    2017-01-03 9:32 GMT+00:00 tianzjyh <[email protected]
    <mailto:[email protected]>>:

        Hi, Oliveira,
            You can check the intersections of your intersector(e.g.
        LineSegmentIntersector::Intersection), and you will find they
        contain an "osg::NodePath", which means the whole path of the
        node(e.g. matrix transform nodes upon the drawable instance).


        --


        Cheers,
        ---
        TianZJ

        At 2017-01-03 16:58:16, "Bruno Oliveira"
        <[email protected]
        <mailto:[email protected]>> wrote:

            Hello,

            I'm implementing a draw instanced optimized scene. This is
            for drawing a set of polygons.

            Previously I was creating a drawable for each polygon, but
            now I am using draw instancing. With one drawable per
            polygon I can easily use osg intersectors for computing
            scene intersections. But how can I perform scene
            intersections with draw instanced objects and get, for
            instance, intersected instance IDs?






        _______________________________________________
        osg-users mailing list
        [email protected]
        <mailto:[email protected]>
        
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
        
<http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org>








_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to