[osg-users] Efficient way to swap colors
Sebastian Messerschmidt
sebastian.messerschmidt at gmx.de
Wed Sep 6 00:23:18 PDT 2017
Hi Antoine,
> Hello all
>
> I have a mesh (a osg::Geometry) which I would like to change color depending on the mode it s in:
>
> osg::Geometry all white by default
>
> osg::Geometry all blue when selected
>
>
>
> In order to achieve this I thought of using the BIND_OVERALL mode with 2 Vec3Arrays (one array for the white color and the other one for the blue color) and simply swapping arrays to change the color (with osg::Geometry::setColorArray()), and calling dirtyDisplayList() to update.
Don't use display lists if you're planning on updating geometry on a
regular base (since rebuilding a display list can be a rather costly
operation). Use vertex buffer objects instead. In case you're modifying
the complete geometry but no individual faces, you might consider using
osg::Material or if you're using shaders anyways, simply set a uniform
describing your color and specify it in the geometries state set.
>
> Is this the most efficient way of changing the osg::Geometry color?
Depends ;-)
There usually isn't one most efficient way. In your case, swapping might
be efficient, but you simply need to benchmark and decide for yourself
which fits the bill.
Cheers
Sebastian
>
> Thanks a lot,
>
> Antoine[/list][/list]
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=71629#71629
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
More information about the osg-users
mailing list