[osg-users] Invisible light points
Hi, I recently moved from OSG 3.2.1 to 3.5.6 and now I have problems with light points going invisible if rendered together with other geometry. I managed to reproduce in a small test case - have a look at the attached lp and lp_poly models (both in 3.5.6 osgt and deprecated osg which I find easier to debug). With 3.5.6, I can only see the light points in the lp model and not in the lp_poly model - any idea why? I tried disabling culling, changing render binds, removing all StateSets in the osg files. No matter what, it seems the geode causes the light points to be invisible. How can I fix this? Regards, Andreas Group { nodeMask 0x cullingActive FALSE num_children 1 Group { nodeMask 0x cullingActive FALSE num_children 1 osgSim::LightPointNode { nodeMask 0x cullingActive FALSE num_lightpoints 2 minPixelSize 4 maxPixelSize 14 maxVisibleDistance2 3.40282e+038 pointSprite FALSE lightPoint { isOn TRUE position 0.5 0.5 0.5 color 1 1 1 1 intensity 1 radius 10 blendingMode ADDITIVE } lightPoint { isOn TRUE position 1.5 1.5 0.5 color 1 1 1 1 intensity 1 radius 10 blendingMode ADDITIVE } } } } Group { nodeMask 0x cullingActive FALSE num_children 2 Group { nodeMask 0x cullingActive FALSE num_children 1 osgSim::LightPointNode { nodeMask 0x cullingActive FALSE num_lightpoints 2 minPixelSize 4 maxPixelSize 14 maxVisibleDistance2 3.40282e+038 pointSprite FALSE lightPoint { isOn TRUE position 0.5 0.5 0.5 color 1 1 1 1 intensity 1 radius 10 blendingMode ADDITIVE } lightPoint { isOn TRUE position 1.5 1.5 0.5 color 1 1 1 1 intensity 1 radius 10 blendingMode ADDITIVE } } } Geode { nodeMask 0x cullingActive FALSE num_drawables 1 Geometry { supportsDisplayList FALSE useDisplayList FALSE useVertexBufferObjects FALSE PrimitiveSets 1 { DrawArrays TRIANGLES 0 3 } VertexArray Vec3Array 2 { 0 1 0 0 -1 0 1 0 0 } ColorBinding PER_PRIMITIVE_SET ColorArray Vec4Array 1 { 1 1 1 1 } } } } #Ascii Scene #Version 148 #Generator OpenSceneGraph 3.5.6 osg::Group { UniqueID 1 Name "lp_poly.osg" CullingActive FALSE Children 2 { osgSim::LightPointNode { UniqueID 2 CullingActive FALSE StateSet TRUE { osg::StateSet { UniqueID 3 DataVariance STATIC RenderBinMode USE_RENDERBIN_DETAILS BinNumber 20 BinName "DepthSortedBin" } } LightPointList 2 { LightPoint { Position 0.5 0.5 0.5 Color 1 1 1 1 Attributes TRUE 0 1 10 Sector FALSE BlinkSequence FALSE } LightPoint { Position 1.5 1.5 0.5 Color 1 1 1 1 Attributes TRUE 0 1 10 Sector FALSE BlinkSequence FALSE } } MinPixelSize 4 MaxPixelSize 14 MaxVisibleDistance2 3.40282e+038 } osg::Geode { UniqueID 4 CullingActive FALSE Drawables 1 { osg::Geometry { UniqueID 5 DataVariance STATIC SupportsDisplayList FALSE UseDisplayList FALSE PrimitiveSetList 1 { osg::DrawArrays { UniqueID 6 Mode TRIANGLES Count 3 } } VertexArray TRUE { osg::Vec3Array { UniqueID 7 BufferObject TRUE { osg::VertexBufferObject { UniqueID 8 } } Binding BIND_PER_VERTEX vector 3 { 0 1 0 0 -1 0 1 0 0 } } } ColorArray TRUE { osg::Vec4Array { UniqueID 9 Binding BIND_PER_PRIMITIVE_SET vector 1 { 1 1 1 1 } } } } } } } } #Ascii Scene #Version 148 #Generator OpenSceneGraph 3.5.6 osg::Group { UniqueID 1 Name "lp.osg" CullingActive FALSE Children 1 { osgSim::LightPointNode { UniqueID 2 CullingActive FALSE StateSet TRUE { osg::StateSet { UniqueID 3 DataVariance STATIC RenderBinMode USE_RENDERBIN_DETAILS BinNumber 20 BinName "DepthSortedBin" } } LightPointList 2 { LightPoint { Position 0.5 0.5 0.5 Color 1 1 1 1 Attributes TRUE 0 1 10 Sector FALSE BlinkSequence FALSE } LightPoint { Position 1.5 1.5 0.5 Color 1 1 1 1 Attributes TRUE 0 1 10 Sector FALSE BlinkSequence FALSE } } MinPixelSize 4 MaxPixelSize 14 MaxVisibleDistance2 3.40282e+038 } } } ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] check content of pagedlod
Hi, Is there a way to check current status/content of a pagedlod object of my scenegraph, for example if its already in the rendering process. I need this to determine if a plugin was loaded or not. Thank you! Cheers, Sebastian OSG Version: 3.0.1 OS: OpenSuse Leap 42.1 -- Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=71364#71364 ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] check content of pagedlod
Hi Sebastian, On 4 August 2017 at 14:14, Sebastian Schmidt wrote: > Is there a way to check current status/content of a pagedlod object of my > scenegraph, for example if its already in the rendering process. > The PagedLOD node has get methods that tell you what children are loaded, a custom NodeVisitor could traverse it's subgraphs. There are also PagedLOD methods that allow you to check the last frame number that a child was traversed. Have no clue whether any of these are appropriate but given the following question I'm perplex why the above question is relevant to the later at all. > I need this to determine if a plugin was loaded or not. > Surely one would check osgDB::Registry for the plugins that have been loaded rather than the scene graph? The osgDB::Registry is what manages plugins, the scene graph loaded by the plugins don't have any connection back to the plugins. I remain perplexed why you are asking about this task in the way you have, perhaps it would be best to take a step back and tell us what specific problem you have to solve rather than trying to second guess what the solution might be and then asking a questions based on these assumed solutions. In general if we get users with perplexing questions it's typically due to them getting ahead of themselves w.r.t how to solve tasks, and asking the how to solve the task from a high level description is far easier to answer given the knowledge of the community. Robert. ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] check status of pagedlod
Ok..i will try to explain. In my osg application "A" the scenegraph contains several pagedlod nodes which are reading from a custom osgdb plugin file. Application "B" is rendering stuff to a texture and the plugin is returning a osg node containing this texture. The initialization of application "A" take some time, especially the loading of the plugin at the end. And i need to know when all of this is finished. Currently i call getFrameNumber() of the PagedLOD. After loading is finished framenumber is > 0 (~300). OSG Version: 3.0.1 OS: OpenSuse Leap 42.1 -- Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=71366#71366 ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] check status of pagedlod
On 4 August 2017 at 15:35, Sebastian Schmidt wrote: > Ok..i will try to explain. > > In my osg application "A" the scenegraph contains several pagedlod nodes > which are reading from a custom osgdb plugin file. > > Application "B" is rendering stuff to a texture and the plugin is > returning a osg node containing this texture. > > The initialization of application "A" take some time, especially the > loading of the plugin at the end. > > And i need to know when all of this is finished. > What do you mean by "all of this is finished"? In application "A" or "B"? It's hard to know really what you are after. The only thing I can suggest at this stage, if a plugin is taking time to load and it's load is not deterministic due it being loaded in response to a PagedLOD file request then why not just preload the plugin or statically link it into your application so it doesn't happen during rendering of the frame. Robert. ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org