Hi Robert,
I found an other bug with the logo plugin when using shadows (PSSM + OSG
latest svn). When shadows are used there is 2 calls from :
virtual bool cull(osg::NodeVisitor *visitor, osg::Drawable* drawable,
osg::State*) const
1 time with the default visitor and 1 time with the visitor from the shadow
implementation wich has a specific traversal mask and a specific viewport
(in my case 4096*4096) so the logo viewport is updated twice because of the
code :
if( vp->width() != logos->getViewport()->width() ||
vp->height() != logos->getViewport()->height() )
{
logos->getViewport()->setViewport( vp->x(), vp->y(), vp->width(),
vp->height() );
logos->dirtyDisplayList();
}
}
Maybe we could check the _traversalMask from the visitor before updating the
logo viewport, what do you think about ?
I know you're not a great fan from this plugin, but I find it very usefull.
Kind regards,
2009/7/15 Alexandre Amalric <[email protected]>
> Hi Robert,
>
> *Is the problem you are seeing triggered by the logo being used when
> multiple graphics windows are used?*
>
> Yes it is.
>
> *Could you try svn/trunk and let me know how you get on.*
> * *
> I Tried this morning latest SVN and it's working great with this
> simple solution.
>
> Kind regards,
>
> 2009/7/14 Robert Osfield <[email protected]>
>
> Hi Alexandre,
>>
>> I've decided to merged your change rather than look for a more complex
>> and more general solution, a more general solution can come later.
>> I've tweaked your changes a little to include returning of true when
>> the logo is traversed on a window it's not assigned to so the logo
>> will get culled.
>>
>> Could you try svn/trunk and let me know how you get on.
>>
>> Cheers,
>> Robert
>>
>> On Mon, Jul 13, 2009 at 5:34 PM, Robert Osfield<[email protected]>
>> wrote:
>> > Hi Alexandre,
>> >
>> > I believe your changes suggest a deeper problem with the
>> > design/implementation of the logo. The plugin is a very early hack
>> > that hasn't really been fully updated to take advantage of various
>> > modern OSG features, I don't have time right now for a full rewrite
>> > though.
>> >
>> > Is the problem you are seeing triggered by the logo being used when
>> > multiple graphics windows are used?
>> >
>> > It does look like code assumes a single view per graphics window,
>> > something that isn't always true with the OSG these days. In the
>> > Producer days when this plugin was written one couldn't easily have
>> > multiple views per window, but these days it's trivial and common
>> > place thing to do. If the logo was attached in a window with multiple
>> > views that all shared the same scene graph we'd end up with the
>> > viewport being updated multiple times, with the last view's viewport
>> > taking precedence.
>> >
>> > One possible solution would be to have the callback ignore the cull
>> > visitor's viewport and use the whole graphics windows dimensions, so
>> > the logo would be placed relative to the window rather than the last
>> > rendered viewport.
>> >
>> > All in all though, putting a logo in the scene graph is not the best
>> > way of tackling the task of adding logo's - it'd be much better to use
>> > a slave camera attached to the viewer/viewer.
>> >
>> > Thougts?
>> >
>> > Robert.
>> >
>> > On Mon, Jul 6, 2009 at 3:57 PM, Alexandre Amalric<[email protected]>
>> wrote:
>> >> Hi osg-users,
>> >>
>> >> I'm using osg svn version 2.9.5 and I've apparently found a bug in
>> osgPlugin
>> >> logo.
>> >>
>> >> When using more than one view logosCullCallback function is called
>> without
>> >> checking context ID from the cull visitor is equal to logo _contextID
>> >> variable. It involves updating logo's viewport with different sizes.
>> >> So I made a fix well working, at least the way I use the plugin.
>> >>
>> >> I'm not used to post fix so I attached the modified cpp files in
>> current
>> >> mail, hope it helps...
>> >>
>> >> Code I added is indicated with comment :
>> >>
>> >> // AA DD/MM/YY Fix
>> >> Kind regards
>> >> --
>> >> Alexandre AMALRIC Ingénieur R&D
>> >> ===================================
>> >> PIXXIM S.A. 73E, rue Perrin-Solliers 13006 Marseille
>> >> http://www.pixxim.fr
>> >>
>> >> _______________________________________________
>> >> 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
>>
>
>
>
> --
> Alexandre AMALRIC Ingénieur R&D
> ===================================
> PIXXIM S.A. 73E, rue Perrin-Solliers 13006 Marseille
> http://www.pixxim.fr
>
--
Alexandre AMALRIC Ingénieur R&D
===================================
PIXXIM S.A. 73E, rue Perrin-Solliers 13006 Marseille
http://www.pixxim.fr
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org