Re: [osg-users] request for small change in StandardShadowMap.cpp

2015-05-01 Thread Robert Osfield
Hi Nick,

I haven't worked with osgShadow for over a year so it's not fresh in
my mind.  There are mechanisms for override the state management in
osgShadow but I don't recall how widely they are implemented amongst
the shadow techniques.

With the proposed change, with the explicit osg::Group::traverse()
method there must be a reason why this was done but without a code
review and trawl through the svn logs I can't provide the answer.  In
general overriding the management of osg::Program and other
osg::StateSet setting shouldn't require lots of hacks, so if a
particular ShadowTechnique is failing in this respect then perhaps
this needs looking at.

Robert.


Robert.

On 1 May 2015 at 17:15, Trajce Nikolov NICK
trajce.nikolov.n...@gmail.com wrote:
 Hi Robert,

 I posted a while ago a question how to get the osg::Program associated with
 the shaders from the StandardShadowMap in order to extend. And it is localy
 defined as you can see in the code. However I found a workaround, by
 extending the ShadowingScene and catch the StateSet from the Cull traversal.
 But, this will not work since the line below. Here is my proposed change, it
 will not hurt anyone I think - these ShadowMap* classes are
 over-encapsulated in my opinion.

 void StandardShadowMap::ViewData::cullShadowReceivingScene( )

 {

 _cv-pushStateSet( _stateset.get() );


 #if 0

 _st-getShadowedScene()-osg::Group::traverse( *_cv );

 #else

 _st-getShadowedScene()-traverse( *_cv );

 #endif


 _cv-popStateSet();

 }


 It will be nice if this forcing of osg::Group::traverse is replaced by
 ordinary traverse thus anyone can re-write and extend. What you think?


 Please let me know and thanks a bunch as always!


 Nick


 --
 trajce nikolov nick

 ___
 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


Re: [osg-users] request for small change in StandardShadowMap.cpp

2015-05-01 Thread Trajce Nikolov NICK
Hi Robert,

thanks for the reply. Well, I spent quite a good amount of time to
understand how it works and it all points to the StandardShadowMap, the
call I posted. This shadowmap technique allows you to attach shaders to it
through the interface, but the program is set localy again for a local
_stateset that is pushed through the CullVisitor in a cull stage. All I
need is reference to this local instance of the Program. Perhaps, maybe
introduce a method getProgram() which again will not hurt anyone.

Also, I can not think of any special reason to specialize the traverse call
to osg::Group then forbid the extension 

Any further thoughts?

Nick

On Fri, May 1, 2015 at 6:50 PM, Robert Osfield robert.osfi...@gmail.com
wrote:

 Hi Nick,

 I haven't worked with osgShadow for over a year so it's not fresh in
 my mind.  There are mechanisms for override the state management in
 osgShadow but I don't recall how widely they are implemented amongst
 the shadow techniques.

 With the proposed change, with the explicit osg::Group::traverse()
 method there must be a reason why this was done but without a code
 review and trawl through the svn logs I can't provide the answer.  In
 general overriding the management of osg::Program and other
 osg::StateSet setting shouldn't require lots of hacks, so if a
 particular ShadowTechnique is failing in this respect then perhaps
 this needs looking at.

 Robert.


 Robert.

 On 1 May 2015 at 17:15, Trajce Nikolov NICK
 trajce.nikolov.n...@gmail.com wrote:
  Hi Robert,
 
  I posted a while ago a question how to get the osg::Program associated
 with
  the shaders from the StandardShadowMap in order to extend. And it is
 localy
  defined as you can see in the code. However I found a workaround, by
  extending the ShadowingScene and catch the StateSet from the Cull
 traversal.
  But, this will not work since the line below. Here is my proposed
 change, it
  will not hurt anyone I think - these ShadowMap* classes are
  over-encapsulated in my opinion.
 
  void StandardShadowMap::ViewData::cullShadowReceivingScene( )
 
  {
 
  _cv-pushStateSet( _stateset.get() );
 
 
  #if 0
 
  _st-getShadowedScene()-osg::Group::traverse( *_cv );
 
  #else
 
  _st-getShadowedScene()-traverse( *_cv );
 
  #endif
 
 
  _cv-popStateSet();
 
  }
 
 
  It will be nice if this forcing of osg::Group::traverse is replaced by
  ordinary traverse thus anyone can re-write and extend. What you think?
 
 
  Please let me know and thanks a bunch as always!
 
 
  Nick
 
 
  --
  trajce nikolov nick
 
  ___
  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




-- 
trajce nikolov nick
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] request for small change in StandardShadowMap.cpp

2015-05-01 Thread Trajce Nikolov NICK
Hi Robert,

I posted a while ago a question how to get the osg::Program associated with
the shaders from the StandardShadowMap in order to extend. And it is localy
defined as you can see in the code. However I found a workaround, by
extending the ShadowingScene and catch the StateSet from the Cull
traversal. But, this will not work since the line below. Here is my
proposed change, it will not hurt anyone I think - these ShadowMap* classes
are over-encapsulated in my opinion.

void StandardShadowMap::ViewData::cullShadowReceivingScene( )

{

_cv-pushStateSet( _stateset.get() );


#if 0

_st-getShadowedScene()-osg::Group::traverse( *_cv );

#else

_st-getShadowedScene()-traverse( *_cv );

#endif


_cv-popStateSet();

}


It will be nice if this forcing of osg::Group::traverse is replaced by
ordinary traverse thus anyone can re-write and extend. What you think?


Please let me know and thanks a bunch as always!


Nick


-- 
trajce nikolov nick
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] request for small change in StandardShadowMap.cpp

2015-05-01 Thread Robert Osfield
Hi NIck,

On 1 May 2015 at 19:11, Trajce Nikolov NICK
trajce.nikolov.n...@gmail.com wrote:
 Hi again Robert,

 I took a closer look into ShadowedScene::traverse and you are right. The
 reason to force osg::Group::traverse is to allow to call this from the
 ShadowedTechnique, to avoid recursive calls of the same.

 So I am going to ask if you can expose the local osg::Program through an
 interface, that is easier .. What you think?

I am not in position to do a code review of osgShadow right now, so
can't provide any guidance right away.

Robert.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] request for small change in StandardShadowMap.cpp

2015-05-01 Thread Trajce Nikolov NICK
Okay ... if you find in any case 5 minutes, attached are the proposed mods.

Thanks as always!

Nick

On Fri, May 1, 2015 at 8:16 PM, Robert Osfield robert.osfi...@gmail.com
wrote:

 Hi NIck,

 On 1 May 2015 at 19:11, Trajce Nikolov NICK
 trajce.nikolov.n...@gmail.com wrote:
  Hi again Robert,
 
  I took a closer look into ShadowedScene::traverse and you are right. The
  reason to force osg::Group::traverse is to allow to call this from the
  ShadowedTechnique, to avoid recursive calls of the same.
 
  So I am going to ask if you can expose the local osg::Program through an
  interface, that is easier .. What you think?

 I am not in position to do a code review of osgShadow right now, so
 can't provide any guidance right away.

 Robert.
 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




-- 
trajce nikolov nick


StandardShadowMap
Description: Binary data
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
 *
 * This library is open source and may be redistributed and/or modified under
 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
 * (at your option) any later version.  The full license is in LICENSE file
 * included with this distribution, and on the openscenegraph.org website.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * OpenSceneGraph Public License for more details.
 *
 * ViewDependentShadow codes Copyright (C) 2008 Wojciech Lewandowski
 * Thanks to to my company http://www.ai.com.pl for allowing me free this work.
*/

#include osgShadow/StandardShadowMap
#include osg/PolygonOffset
#include osg/ComputeBoundsVisitor
#include osgShadow/ShadowedScene
#include osg/Geode
#include osg/Geometry
#include osg/CullFace
#include osg/AlphaFunc
#include osg/Point

#include stdio.h

using namespace osgShadow;

#define DISPLAY_SHADOW_TEXEL_TO_PIXEL_ERROR 0
#define FRAGMENT_SHADERS_ONLY 1


StandardShadowMap::StandardShadowMap():
BaseClass(),
_polygonOffsetFactor( 1.1f ),
_polygonOffsetUnits( 4.0f ),
_textureSize( 1024, 1024 ),
_baseTextureUnit( 0 ),
_shadowTextureUnit( 1 ),
_baseTextureCoordIndex( 0 ),
_shadowTextureCoordIndex( 1 )

{
#if FRAGMENT_SHADERS_ONLY
_mainFragmentShader = new osg::Shader( osg::Shader::FRAGMENT,
 // following expressions are auto modified - do not change them:   \n
 // gl_TexCoord[0]  0 - can be subsituted with other index  \n
\n
float DynamicShadow( ); \n
\n
uniform sampler2D baseTexture;  \n
\n
void main(void) \n
{   \n
  vec4 colorAmbientEmissive = gl_FrontLightModelProduct.sceneColor; \n
//  // Add ambient from Light of index = 0\n
//  colorAmbientEmissive += gl_FrontLightProduct[0].ambient;  \n
  vec4 color = texture2D( baseTexture, gl_TexCoord[0].xy ); \n
  color *= mix( colorAmbientEmissive, gl_Color, DynamicShadow() );  \n
#if DISPLAY_SHADOW_TEXEL_TO_PIXEL_ERROR
  color.xy = abs( dFdy( gl_TexCoord[1].xy / gl_TexCoord[1].w ) )* 1024.0; \n
  color.z = color.y; \n
  color.x = color.z; \n
  color.y = color.z; \n
  color.a = 1.0; \n
#endif
//float fog = clamp((gl_Fog.end - gl_FogFragCoord)*gl_Fog.scale, 0.,1.);\n
//color.rgb = mix( gl_Fog.color.rgb, color.rgb, fog );  \n
  gl_FragColor = color; \n
} \n );

_shadowFragmentShader = new osg::Shader( osg::Shader::FRAGMENT,
 // following expressions are auto modified - do not change them:  \n
 // gl_TexCoord[1]  1 - can be subsituted with other index \n
   \n
uniform sampler2DShadow shadowTexture; \n
   \n
float DynamicShadow( ) \n
{  \n
return shadow2DProj( shadowTexture, gl_TexCoord[1] ).r;\n
} \n );


_shadowVertexShader = NULL;

Re: [osg-users] request for small change in StandardShadowMap.cpp

2015-05-01 Thread Trajce Nikolov NICK
Hi again Robert,

I took a closer look into ShadowedScene::traverse and you are right. The
reason to force osg::Group::traverse is to allow to call this from the
ShadowedTechnique, to avoid recursive calls of the same.

So I am going to ask if you can expose the local osg::Program through an
interface, that is easier .. What you think?

Nick

On Fri, May 1, 2015 at 7:24 PM, Trajce Nikolov NICK 
trajce.nikolov.n...@gmail.com wrote:

 Hi Robert,

 thanks for the reply. Well, I spent quite a good amount of time to
 understand how it works and it all points to the StandardShadowMap, the
 call I posted. This shadowmap technique allows you to attach shaders to it
 through the interface, but the program is set localy again for a local
 _stateset that is pushed through the CullVisitor in a cull stage. All I
 need is reference to this local instance of the Program. Perhaps, maybe
 introduce a method getProgram() which again will not hurt anyone.

 Also, I can not think of any special reason to specialize the traverse
 call to osg::Group then forbid the extension 

 Any further thoughts?

 Nick

 On Fri, May 1, 2015 at 6:50 PM, Robert Osfield robert.osfi...@gmail.com
 wrote:

 Hi Nick,

 I haven't worked with osgShadow for over a year so it's not fresh in
 my mind.  There are mechanisms for override the state management in
 osgShadow but I don't recall how widely they are implemented amongst
 the shadow techniques.

 With the proposed change, with the explicit osg::Group::traverse()
 method there must be a reason why this was done but without a code
 review and trawl through the svn logs I can't provide the answer.  In
 general overriding the management of osg::Program and other
 osg::StateSet setting shouldn't require lots of hacks, so if a
 particular ShadowTechnique is failing in this respect then perhaps
 this needs looking at.

 Robert.


 Robert.

 On 1 May 2015 at 17:15, Trajce Nikolov NICK
 trajce.nikolov.n...@gmail.com wrote:
  Hi Robert,
 
  I posted a while ago a question how to get the osg::Program associated
 with
  the shaders from the StandardShadowMap in order to extend. And it is
 localy
  defined as you can see in the code. However I found a workaround, by
  extending the ShadowingScene and catch the StateSet from the Cull
 traversal.
  But, this will not work since the line below. Here is my proposed
 change, it
  will not hurt anyone I think - these ShadowMap* classes are
  over-encapsulated in my opinion.
 
  void StandardShadowMap::ViewData::cullShadowReceivingScene( )
 
  {
 
  _cv-pushStateSet( _stateset.get() );
 
 
  #if 0
 
  _st-getShadowedScene()-osg::Group::traverse( *_cv );
 
  #else
 
  _st-getShadowedScene()-traverse( *_cv );
 
  #endif
 
 
  _cv-popStateSet();
 
  }
 
 
  It will be nice if this forcing of osg::Group::traverse is replaced by
  ordinary traverse thus anyone can re-write and extend. What you think?
 
 
  Please let me know and thanks a bunch as always!
 
 
  Nick
 
 
  --
  trajce nikolov nick
 
  ___
  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




 --
 trajce nikolov nick




-- 
trajce nikolov nick
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] request for small source change in StandardShadowMap

2014-04-17 Thread Robert Osfield
Hi Nick,

There isn't any way of me judging changes I haven't seen. In general
if there is part of the OSG that isn't able to do what a users need it
to do but a small change that is consistent with the overall design
can achieve this then I'll be open to considering it to be merged.
However, I have to see the code to know.   It could also be that what
you are trying to do can be done without any mods.

Robert.

On 14 April 2014 19:58, Trajce Nikolov NICK
trajce.nikolov.n...@gmail.com wrote:
 Hi Robert,

 I am not sure if you are familiar with this code ( I bet You are ;-) ). I
 have a case where I want to mix shaders with the one that are provided to
 this class and I need access through the interface to the osg::Program which
 holds these shaders and it is instantiated locally in the scope of some
 method - StandardShadowMap.cpp Line: 544. I would welcome something like
 getProgram() and expose this object to the interface. Are you friendly to
 such a change - it won't brake anything. Please let me know

 Nick

 --
 trajce nikolov nick

 ___
 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


Re: [osg-users] request for small source change in StandardShadowMap

2014-04-17 Thread Trajce Nikolov NICK
Hi Robert,

let me do the changes then and I will send them to You so You decide. And
thanks!

Nick


On Thu, Apr 17, 2014 at 10:44 AM, Robert Osfield
robert.osfi...@gmail.comwrote:

 Hi Nick,

 There isn't any way of me judging changes I haven't seen. In general
 if there is part of the OSG that isn't able to do what a users need it
 to do but a small change that is consistent with the overall design
 can achieve this then I'll be open to considering it to be merged.
 However, I have to see the code to know.   It could also be that what
 you are trying to do can be done without any mods.

 Robert.

 On 14 April 2014 19:58, Trajce Nikolov NICK
 trajce.nikolov.n...@gmail.com wrote:
  Hi Robert,
 
  I am not sure if you are familiar with this code ( I bet You are ;-) ). I
  have a case where I want to mix shaders with the one that are provided to
  this class and I need access through the interface to the osg::Program
 which
  holds these shaders and it is instantiated locally in the scope of some
  method - StandardShadowMap.cpp Line: 544. I would welcome something like
  getProgram() and expose this object to the interface. Are you friendly to
  such a change - it won't brake anything. Please let me know
 
  Nick
 
  --
  trajce nikolov nick
 
  ___
  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




-- 
trajce nikolov nick
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] request for small source change in StandardShadowMap

2014-04-14 Thread Trajce Nikolov NICK
Hi Robert,

I am not sure if you are familiar with this code ( I bet You are ;-) ). I
have a case where I want to mix shaders with the one that are provided to
this class and I need access through the interface to the osg::Program
which holds these shaders and it is instantiated locally in the scope of
some method - StandardShadowMap.cpp Line: 544. I would welcome something
like getProgram() and expose this object to the interface. Are you friendly
to such a change - it won't brake anything. Please let me know

Nick

-- 
trajce nikolov nick
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Request for assistance to embark into PhD

2013-10-23 Thread Mohamed Alji
Hello,

Being a software engineer, I did my final project study in 3D animation and 
virtual reality visualization using OpenSceneGraph. Today I want to prepare my 
thesis in augmented reality. I'm looking for a good topic to prepare in 3 years.

What are the themes of current research linking OpenSceneGraph and augmented 
reality? can you suggest me some possible topics ... for my future thesis?

Thank you in advance !
Alji


Mohamed ALJI
Blog http://aljilogy.blogspot.fr


--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=56939#56939




___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for assistance to embark into PhD

2013-10-23 Thread Jan Ciger
Hi,

On Wed, Oct 23, 2013 at 10:51 AM, Mohamed Alji osgfo...@tevs.eu wrote:

 **
 Hello,

 Being a software engineer, I did my final project study in 3D animation
 and virtual reality visualization using OpenSceneGraph. Today I want to
 prepare my thesis in augmented reality. I'm looking for a good topic to
 prepare in 3 years.

 What are the themes of current research linking OpenSceneGraph and
 augmented reality? can you suggest me some possible topics ... for my
 future thesis?

 Thank you in advance !
 Alji



Speaking as someone who did a PhD in virtual reality/computer graphics
before, I think you need to look at it from a different angle. Don't look
at What topic I can use OSG for. That isn't really interesting at all
from a research point of view - OSG is a technology, a tool if you want. If
you start with that, you are putting yourself into a really difficult
position later on when you will have to explain your actual research
contribution in your thesis. We engineers often fall into a trap of
building contraptions - but that is engineering, not research.

Find an open problem in AR and try to solve that. If you can use OSG to
help you, great. If not, well, tough, but the research is the first goal,
not to use OSG. I suggest that you speak to your future thesis director
(did you find one already?) first - they could help you both by having an
overview of the state of the art in the field you are looking at and by
knowing what the requirements for a good thesis are.

Good luck!

Jan
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for assistance to embark into PhD

2013-10-23 Thread Mohamed Alji
Hi,

Very good point, you are right. OSG is a technology , I have to see it as a 
tool in my research. 

Where can I find an open AR problem ? where am I supposed to look ? How to do 
that ? 

ps: I found a thesis director, I will speak to him later today. 


Thank you!

Cheers,
Mohamed


Mohamed ALJI


--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=56944#56944




___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for assistance to embark into PhD

2013-10-23 Thread Jan Ciger
Hi,

On Wed, Oct 23, 2013 at 12:28 PM, Mohamed Alji osgfo...@tevs.eu wrote:

 **
 Hi,

 Very good point, you are right. OSG is a technology , I have to see it as
 a tool in my research.


Keep that in mind - it is easy to slip into the engineering mindset and
just do some coding or whatever - but that isn't really research and a lot
of people get burned by that. They arrive to the thesis defence with a
mountain of code, but nothing really new, scientifically speaking.


 Where can I find an open AR problem ? where am I supposed to look ? How to
 do that ?


Well ... I think that the best thing to do is to look for books, papers,
theses etc. in the field you want to work in. That will give you the idea
what is known and is considered the state of the art. It takes time,
because you must first understand the field sufficiently to essentially
know what you don't know :) Then you can pick a problem to work on.

Your thesis advisor/director and senior researchers in the lab you are
going to do the doctorate at could help you a lot there. Typically they
might have a topic or problem for you to work on already.

Also don't worry too much about the topic you may be asked to write on your
PhD application - one usually puts there something extremely generic,
because you won't know a good problem to work on before you have done about
a year of research in the field!



 ps: I found a thesis director, I will speak to him later today.


I think that is the best thing to do.

J.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] request new frame manually

2012-02-27 Thread Andrey Ibe
Thank you, Robert!

it worked well.

for the record, the correct call is made on osg::View
Code:
_view-requestRedraw()


I am puzzled how i could have missed the method in the sources  :? 

Cheers,
Andrey

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=45791#45791





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] request new frame manually

2012-02-26 Thread Andrey Ibe
Hello world!

Until recently i had been using 

Code:
_viewer-setRunFrameScheme(osgViewer::ViewerBase::CONTINUOUS);

but then i switched to 
Code:
_viewer-setRunFrameScheme(osgViewer::ViewerBase::ON_DEMAND);

and now i have a minor problem with window refresh.

This should be fairly simple to do, i think, i just can't find the proper 
method to do so - how do i request a osg::View to refresh ? (or it's camera, or 
whole composite viewer - i don't care) i've been searching the documentation as 
well as this forum with no success.

There is a GLUT method that i am familiar with - glutPostRedisplay() - is there 
any OSG equivalent?

I am running some lengthy ray tracing computation and when it finishes, i need 
the window that the result is displayed in to refresh.

Thank you in advance!

Cheers,
Andrey

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=45774#45774





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] request new frame manually

2012-02-26 Thread Robert Osfield
Hi Audrey,

I haven't tried exactly what you are doing but you could try :

   _viewer-requestRedraw();

This method is inherited from osgGA::GUIActionAdapter.

Robert.

On 26 February 2012 15:31, Andrey Ibe xry...@gmail.com wrote:
 Hello world!

 Until recently i had been using

 Code:
 _viewer-setRunFrameScheme(osgViewer::ViewerBase::CONTINUOUS);

 but then i switched to
 Code:
 _viewer-setRunFrameScheme(osgViewer::ViewerBase::ON_DEMAND);

 and now i have a minor problem with window refresh.

 This should be fairly simple to do, i think, i just can't find the proper 
 method to do so - how do i request a osg::View to refresh ? (or it's camera, 
 or whole composite viewer - i don't care) i've been searching the 
 documentation as well as this forum with no success.

 There is a GLUT method that i am familiar with - glutPostRedisplay() - is 
 there any OSG equivalent?

 I am running some lengthy ray tracing computation and when it finishes, i 
 need the window that the result is displayed in to refresh.

 Thank you in advance!

 Cheers,
 Andrey

 --
 Read this topic online here:
 http://forum.openscenegraph.org/viewtopic.php?p=45774#45774





 ___
 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


[osg-users] request

2012-02-24 Thread
hello world___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-29 Thread Tim Moore
On Fri, Jan 27, 2012 at 9:01 PM, Robert Osfield
robert.osfi...@gmail.com wrote:
...
 Curiously running separate contexts via separate applications has in
 the past shown good scalability so I suspect the driver contention is
 something per application specific.

 Along these lines I do wonder if running separate processes for each
 context rather than separate threads might help avoid the contention.
 Unfortunately the OSG's osgViewer design is based around the
 lightweight data sharing that threading provides over use of separate
 processes, and OpenThreads is geared up for creation and management of
 threads rather than processes.


I looked into this a bit and couldn't conclude that running in
separate processes makes much of a difference. The best I could say is
that the applications would sometimes show the expected (i.e., single
screen) frame rate, but would then fall into periods of the lower
frame rate seen in the multi-threaded case. I don't have anything
genlocked, so the programs weren't synchronized. I believe that the
high rates were achieved when the programs happened to be making their
OpenGL calls at different times, but then due to a scheduling artifact
they started overlapping their graphics calls.

Tim
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Sergey Polischuk
As a side note:
if you were using vbo's instead of display lists for drawing i think you werent 
get into this problem in first place, as with vbos 5500 draw calls would 
happily kill your performance even on one screen, so you have to optimize your 
models. Nvidia drivers are great at optimizing consecutive calls to draw 
display lists so they become cheap as dirt and you can do thousands of them, 
may be this fails on multiple screen setups?

26.01.2012, 23:12, Jason Daly jd...@ist.ucf.edu:
 On 01/26/2012 01:02 PM, Tim Moore wrote:

  That is what I found at the time of that thread, testing with some
  models supplied by NIST. Newer hardware is highly optimized for
  massive geometry.

  For the record, I don't think the problem is bus contention, but lock
  contention in the NVidia driver. The amount of bus traffic involved
  in the OpenGL command stream is tiny.

 Thanks for that.  A couple of people have mentioned bringing this to
 NVidia's attention.  We'll probably end up doing that.

  The key to OpenGL performance in the 21st century is reducing the
  number of OpenGL function calls to a minimum... so says Captain
  Obvious.

  I'm glad the mesh optimizers turned out to be useful!

 Yeah, once you get down to the data itself, it ends up being pretty
 obvious (5,500 draw calls runs slower than 9 draw calls?  Really?  :-) ).

 There was a bit of digging to do before we got to that point, though.
 At the outset, we originally thought that an OpenGL program wasn't
 showing the same problem that an OSG program was, which pointed the
 blame at OSG.  Turns out that we weren't doing an apples-to-apples
 comparison with the data sets.  It wasn't until we could get precisely
 the same set of data into the OpenGL program that we could start looking
 at the data itself as the culprit.

 Definitely a big thanks for the mesh optimizers.  I was all set to start
 writing something myself, but then I realized they were already there  :-)

  Btw, the Linux tool oprofile is mentioned later in the thread, but I
  find the newer tool perf to be more useful.

 Thanks, I'll check that out.

 --J
 ___
 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


Re: [osg-users] Request for input

2012-01-27 Thread Paul Martz
Hi Jason -- I agree that the system bus is a likely source of the scaling issue. 
It is certainly a single resource that has to be shared by all the GPUs in the 
system.


To make a case for bus bandwidth limitation, you might work through the math.

Bb
FPS = 
  Nw * Nd * Sd + O

Where Bb is the bus bandwidth in bytes, Nw is the number of windows you're 
rendering to, Nd is the number of drawing commands, Sd is the size of the 
drawing commands in bytes, and O is the per frame OpenGL command overhead in bytes.


The knowns:
Bb = 500 MB/sec (PCIe 2.0)
Nw = 4
Nd = 5500

Sd is a little harder to compute. It'll depend on the draw technology you're 
using (buffer objects or display lists) and the underlying OpenGL 
implementation. You could make a very rough guess here by figuring a fullword 
per OpenGL command, and a fullword per OpenGL command parameter. Just for the 
same of example, let's says Sd = 64 (16 fullwords to draw a single osg::Geometry).


O encompasses all the per-frame OpenGL commands that OSG emits: glClear, 
glClearColor, glClearMask, dlDepthMask, matrices, light sources, swap, etc. You 
could plug in a rough guess like you would for Sd. Again, just as an example, 
let's use O = 2048.


Plugging all that into a calculator, I get FPS = 371. But if Nw dropped to a 
single window, then FPS would jump to over 1400 -- or, more likely, you'd become 
limited by some other single resource in the system.


The nice thing about algebra is that you can solve for the unknown, so of course 
you have the FPS, and if you have a pretty good guess for O (which can actually 
be pretty sloppy anyhow), then you ought to be able to solve for Sd and ask 
yourself if that result makes sense.


I hope this helps.
   -Paul



___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Chris 'Xenon' Hanson
On 1/27/2012 7:17 AM, Paul Martz wrote:
 Sd is the size of the drawing commands in bytes

  gDebugger might be able to help you estimate this too.

-- 
Chris 'Xenon' Hanson, omo sanza lettere. xe...@alphapixel.com 
http://www.alphapixel.com/
  Digital Imaging. OpenGL. Scene Graphs. GIS. GPS. Training. Consulting. 
Contracting.
There is no Truth. There is only Perception. To Perceive is to Exist. - 
Xen
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Paul Martz

On 1/27/2012 7:17 AM, Paul Martz wrote:

Bb
FPS = 
  Nw * Nd * Sd + O

Where Bb is the bus bandwidth in bytes,


Upon rereading this, a few corrections:

  Bb
FPS = --
  Nw * (Nd * Sd + O)

And note that Bb is bandwidth in bytes/sec, of course (not bytes).

Anyhow, this is all just back of the napkin stuff. With a little more effort I 
imagine you can refine the formula, and of course you have access to the actual 
data and values. I'd be interested in hearing if this line of investigation 
confirms the bus limitation theory.

   -Paul


___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Jason Daly

On 01/27/2012 04:38 AM, Sergey Polischuk wrote:

As a side note:
if you were using vbo's instead of display lists for drawing i think you werent 
get into this problem in first place, as with vbos 5500 draw calls would 
happily kill your performance even on one screen, so you have to optimize your 
models. Nvidia drivers are great at optimizing consecutive calls to draw 
display lists so they become cheap as dirt and you can do thousands of them, 
may be this fails on multiple screen setups?


Hi, Sergey,

I did play around with VBO vs. display lists early on.   It didn't 
really change the performance much regardless of which I used.  Keep in 
mind that this is all static geometry which is going to be resident on 
the GPU.  I don't think modern drivers would distinguish much between 
VBO's in STATIC_DRAW mode and display lists.


--J

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Jason Daly


Hi, Paul,

As Tim pointed out earlier, the more limiting resource is likely to be 
lock contention in the NVidia driver instead of bus contention.


Note that Bb is going to be 4000 MB/sec (500 MB/sec * 8), per Quadroplex 
(PCI-e 2.0 8x) on the NIST machine.  On my system I have an X58 chipset, 
so it's even wider (500 MB/sec * 16) per card.  Also, the NIST machine's 
FSB is limited to 1.6 GT/sec, which is less than the 5 GT/sec that PCI-e 
provides.


Given that the data is static (we're not transferring any vertex data 
over the bus, just making glDrawElements calls to VBOs in STATIC_DRAW 
mode), I doubt that the OpenGL command stream is going to be getting 
anywhere near the actual bus bandwidth.




On 01/27/2012 09:17 AM, Paul Martz wrote:

Hi Jason -- I agree that the system bus is a likely source of the scaling issue.
It is certainly a single resource that has to be shared by all the GPUs in the
system.

To make a case for bus bandwidth limitation, you might work through the math.

  Bb
FPS = 
Nw * Nd * Sd + O

Where Bb is the bus bandwidth in bytes, Nw is the number of windows you're
rendering to, Nd is the number of drawing commands, Sd is the size of the
drawing commands in bytes, and O is the per frame OpenGL command overhead in 
bytes.

The knowns:
Bb = 500 MB/sec (PCIe 2.0)
Nw = 4
Nd = 5500

Sd is a little harder to compute. It'll depend on the draw technology you're
using (buffer objects or display lists) and the underlying OpenGL
implementation. You could make a very rough guess here by figuring a fullword
per OpenGL command, and a fullword per OpenGL command parameter. Just for the
same of example, let's says Sd = 64 (16 fullwords to draw a single 
osg::Geometry).

O encompasses all the per-frame OpenGL commands that OSG emits: glClear,
glClearColor, glClearMask, dlDepthMask, matrices, light sources, swap, etc. You
could plug in a rough guess like you would for Sd. Again, just as an example,
let's use O = 2048.

Plugging all that into a calculator, I get FPS = 371. But if Nw dropped to a
single window, then FPS would jump to over 1400 -- or, more likely, you'd become
limited by some other single resource in the system.

The nice thing about algebra is that you can solve for the unknown, so of course
you have the FPS, and if you have a pretty good guess for O (which can actually
be pretty sloppy anyhow), then you ought to be able to solve for Sd and ask
yourself if that result makes sense.

I hope this helps.
 -Paul



___
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


Re: [osg-users] Request for input

2012-01-27 Thread Paul Martz
Sorry, I was going off your post that read This leads me to believe that bus 
contention was causing the lack of scalability. I was just trying to outline a 
way to validate that suspicion. If you've already ruled out bus contention, then 
disregard my post.

   -Paul


On 1/27/2012 11:40 AM, Jason Daly wrote:


Hi, Paul,

As Tim pointed out earlier, the more limiting resource is likely to be lock 
contention in the NVidia driver instead of bus contention.


Note that Bb is going to be 4000 MB/sec (500 MB/sec * 8), per Quadroplex 
(PCI-e 2.0 8x) on the NIST machine.  On my system I have an X58 chipset, so 
it's even wider (500 MB/sec * 16) per card.  Also, the NIST machine's FSB is 
limited to 1.6 GT/sec, which is less than the 5 GT/sec that PCI-e provides.


Given that the data is static (we're not transferring any vertex data over the 
bus, just making glDrawElements calls to VBOs in STATIC_DRAW mode), I doubt 
that the OpenGL command stream is going to be getting anywhere near the actual 
bus bandwidth.




On 01/27/2012 09:17 AM, Paul Martz wrote:

Hi Jason -- I agree that the system bus is a likely source of the scaling issue.
It is certainly a single resource that has to be shared by all the GPUs in the
system.

To make a case for bus bandwidth limitation, you might work through the math.

  Bb
FPS = 
Nw * Nd * Sd + O

Where Bb is the bus bandwidth in bytes, Nw is the number of windows you're
rendering to, Nd is the number of drawing commands, Sd is the size of the
drawing commands in bytes, and O is the per frame OpenGL command overhead in 
bytes.


The knowns:
Bb = 500 MB/sec (PCIe 2.0)
Nw = 4
Nd = 5500

Sd is a little harder to compute. It'll depend on the draw technology you're
using (buffer objects or display lists) and the underlying OpenGL
implementation. You could make a very rough guess here by figuring a fullword
per OpenGL command, and a fullword per OpenGL command parameter. Just for the
same of example, let's says Sd = 64 (16 fullwords to draw a single 
osg::Geometry).


O encompasses all the per-frame OpenGL commands that OSG emits: glClear,
glClearColor, glClearMask, dlDepthMask, matrices, light sources, swap, etc. You
could plug in a rough guess like you would for Sd. Again, just as an example,
let's use O = 2048.

Plugging all that into a calculator, I get FPS = 371. But if Nw dropped to a
single window, then FPS would jump to over 1400 -- or, more likely, you'd become
limited by some other single resource in the system.

The nice thing about algebra is that you can solve for the unknown, so of course
you have the FPS, and if you have a pretty good guess for O (which can actually
be pretty sloppy anyhow), then you ought to be able to solve for Sd and ask
yourself if that result makes sense.

I hope this helps.
 -Paul



___
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





--
  -Paul Martz  Skew Matrix Software
   http://www.skew-matrix.com/

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Jason Daly

On 01/27/2012 02:12 PM, Paul Martz wrote:

Sorry, I was going off your post that read This leads me to believe that bus
contention was causing the lack of scalability. I was just trying to outline a
way to validate that suspicion. If you've already ruled out bus contention, then
disregard my post.


Hi, Paul,

I'm not dismissing your post at all.  It's certainly worth thinking 
about the overall bandwidth, and how much of it might be consumed by the 
GL command stream.  I like your equation as a general guideline.  One 
just has to keep in mind that 500MB/sec is the bandwidth for a single 
PCI-e 2.0 lane.  Most graphics cards get 8 lanes, if not 16, and that's 
per card.  You also have to account for the CPU interconnect bandwidth, 
which may put an upper limit on how much data you can transfer with 
multiple cards (theoretically 12.8GB/s on this hardware).


In this particular case, I think Tim is right.  There's not enough data 
in the command stream to get near the bus bandwidth.  In this case, 
there are two 8x PCI-e cards (total of 8GB/s bandwidth) feeding 4 GPU's 
(two QuadroPlex D2 units).  Using your figures:


  2 * 8 * 500 MB/s
- = 5648 Hz
4 * ( (5500 * 64 B) + 2048 B)


So, unless I'm missing something, the problem must be elsewhere  :-)

--J

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Robert Osfield
Hi All,

I haven't chipped in so far as I haven't really too much to add to the
investigation.  My sense from own tests and looking at others over the
years is that looks to be contention in the drivers that leads to poor
scaling.  Reducing the amount of data and commands being pushed in
each context's OpenGL fifio does seem to help avoid the contention,
but doesn't seem to be able to remove it entirely.

Curiously running separate contexts via separate applications has in
the past shown good scalability so I suspect the driver contention is
something per application specific.

Along these lines I do wonder if running separate processes for each
context rather than separate threads might help avoid the contention.
Unfortunately the OSG's osgViewer design is based around the
lightweight data sharing that threading provides over use of separate
processes, and OpenThreads is geared up for creation and management of
threads rather than processes.

Perhaps one test one could do is create multiple processes at a very
high level in the application and then run a separate scene graph and
viewer within each of these processes.  It wouldn't scale well in
terms of CPU performance as the cache coherency would be rather shot
to shreds, but it might just get around the driver contention.

If we can confirm a driver contention that rapping at NVidia and AMD's
door would be the appropriate thing to do.

Robert.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Doug McCorkle
Hello Jason,

On Jan 27, 2012, at 1:37 PM, Jason Daly wrote:

 On 01/27/2012 02:12 PM, Paul Martz wrote:
 Sorry, I was going off your post that read This leads me to believe that bus
 contention was causing the lack of scalability. I was just trying to 
 outline a
 way to validate that suspicion. If you've already ruled out bus contention, 
 then
 disregard my post.
 
 Hi, Paul,
 
 I'm not dismissing your post at all.  It's certainly worth thinking about the 
 overall bandwidth, and how much of it might be consumed by the GL command 
 stream.  I like your equation as a general guideline.  One just has to keep 
 in mind that 500MB/sec is the bandwidth for a single PCI-e 2.0 lane.  Most 
 graphics cards get 8 lanes, if not 16, and that's per card.  You also have to 
 account for the CPU interconnect bandwidth, which may put an upper limit on 
 how much data you can transfer with multiple cards (theoretically 12.8GB/s on 
 this hardware).
 
 In this particular case, I think Tim is right.  There's not enough data in 
 the command stream to get near the bus bandwidth.  In this case, there are 
 two 8x PCI-e cards (total of 8GB/s bandwidth) feeding 4 GPU's (two QuadroPlex 
 D2 units).  Using your figures:
 
  2 * 8 * 500 MB/s
 - = 5648 Hz
 4 * ( (5500 * 64 B) + 2048 B)
 
 
 So, unless I'm missing something, the problem must be elsewhere  :-)

We run a very similar system with 5 quadro cards and do not run into these 
problems with very large models. We are using VR Juggler though. I mention this 
because it would be very straight forward to use one of the sample OGL VR 
Juggler examples as a test application that would load an OBJ file or something 
to provide a raw OGL benchmark for the hardware. You could also use one of the 
sample OSG applications to do a comparison to at least provide a place to start 
working from in terms of figuring out your core issues.

Doug

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Jason Daly


On 01/27/2012 04:17 PM, Doug McCorkle wrote:

We run a very similar system with 5 quadro cards and do not run into these 
problems with very large models. We are using VR Juggler though. I mention this 
because it would be very straight forward to use one of the sample OGL VR 
Juggler examples as a test application that would load an OBJ file or something 
to provide a raw OGL benchmark for the hardware. You could also use one of the 
sample OSG applications to do a comparison to at least provide a place to start 
working from in terms of figuring out your core issues.


Hi, Doug,

It may not have been easy to find in the mountain of text from the 
original post, but I did end up writing a multithreaded pure OpenGL 
program in an effort to eliminate OSG as the culprit.  Since we 
ultimately ended up getting a similar frame rate drop in both OSG and 
OpenGL, we pretty much have eliminated OSG as the culprit.


One of the issues that I ran into in my investigation was that the 
problem was closely tied to the structure of the data itself.  My 
original OpenGL program only loaded .obj files at first.  However, the 
process of converting the original .ive file to .obj disturbed the 
structure of the data, and caused the OpenGL program to behave 
differently.  Unless I can load the exact data structure that OSG is 
loading into the VR Juggler example, I'm afraid I'd run into the same 
problem.


--J

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-27 Thread Doug McCorkle

On Jan 27, 2012, at 4:12 PM, Jason Daly wrote:

 
 On 01/27/2012 04:17 PM, Doug McCorkle wrote:
 We run a very similar system with 5 quadro cards and do not run into these 
 problems with very large models. We are using VR Juggler though. I mention 
 this because it would be very straight forward to use one of the sample OGL 
 VR Juggler examples as a test application that would load an OBJ file or 
 something to provide a raw OGL benchmark for the hardware. You could also 
 use one of the sample OSG applications to do a comparison to at least 
 provide a place to start working from in terms of figuring out your core 
 issues.
 
 Hi, Doug,
 
 It may not have been easy to find in the mountain of text from the original 
 post, but I did end up writing a multithreaded pure OpenGL program in an 
 effort to eliminate OSG as the culprit.  Since we ultimately ended up getting 
 a similar frame rate drop in both OSG and OpenGL,
Interesting. I did not catch that comment in your earlier posts. I will need to 
go back and read those posts more carefully to look at the data structure 
issues you are referring to.

 we pretty much have eliminated OSG as the culprit.

This is an interesting problem.

Doug

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-26 Thread Jason Daly


Hi, JP,


On 01/26/2012 01:53 AM, J.P. Delport wrote:

very interesting and thorough investigation. I can't really add anything
and unfortunately don't have representative hardware to test on. It
would be interesting to see if different bus configs
(motherboards/chipsets) make any difference.


The target hardware is a dual Xeon system with a 5400 chipset (the last 
chipset with a FSB) and a pair of QuadroPlex D2's.  I've been working on 
an Alienware desktop with an X58 chipset and two GeForce 260's.  One 
would expect that the X58 with its QPI interconnect would succumb to bus 
contention later than the 5400 (the specs say so, at least), but on the 
largest data set, it appears that the X58 is still having the scaling 
problem, while on the workstation, the bottleneck has moved elsewhere.




  I also would not rule out
the NVidia driver doing silly things. I remember once looking at some of
the glue code for the binary blob and seeing TLB flushes that caused a
Xenomai kernel to fail ito timing in interesting ways.

Have you tried OProfile to get some idea of time spent in the driver?


I'm not familiar with OProfile.  I'll take a look.

Thanks for the reply!

--J

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-26 Thread Peter Kilpatrick

Hello,

This may be relevant:

Memory Speed, QPI and Multicore

http://www.masm32.com/board/index.php?PHPSESSID=afe5222fb85c769a44da28f1eb5d4b82topic=17296.0

Peter

- Original Message - 
From: Jason Daly jd...@ist.ucf.edu

To: OpenSceneGraph Users osg-users@lists.openscenegraph.org
Sent: Thursday, January 26, 2012 6:49 PM
Subject: Re: [osg-users] Request for input




Hi, JP,


On 01/26/2012 01:53 AM, J.P. Delport wrote:

very interesting and thorough investigation. I can't really add anything
and unfortunately don't have representative hardware to test on. It
would be interesting to see if different bus configs
(motherboards/chipsets) make any difference.


The target hardware is a dual Xeon system with a 5400 chipset (the last 
chipset with a FSB) and a pair of QuadroPlex D2's.  I've been working on 
an Alienware desktop with an X58 chipset and two GeForce 260's.  One would 
expect that the X58 with its QPI interconnect would succumb to bus 
contention later than the 5400 (the specs say so, at least), but on the 
largest data set, it appears that the X58 is still having the scaling 
problem, while on the workstation, the bottleneck has moved elsewhere.




  I also would not rule out
the NVidia driver doing silly things. I remember once looking at some of
the glue code for the binary blob and seeing TLB flushes that caused a
Xenomai kernel to fail ito timing in interesting ways.

Have you tried OProfile to get some idea of time spent in the driver?


I'm not familiar with OProfile.  I'll take a look.

Thanks for the reply!

--J

___
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


Re: [osg-users] Request for input

2012-01-26 Thread Tim Moore
On Wed, Jan 25, 2012 at 10:59 PM, Jason Daly jd...@ist.ucf.edu wrote:

 Hi, all,

 This is a general request to the community for some advice and expertise.
  This is a bit lengthy, but if you can spare a few minutes to look over this
 and send along your thoughts, we would really appreciate it.

 I've been working on a project for NIST recently.  For background, you might
 find this osg-users thread from December 2010 useful:

 http://thread.gmane.org/gmane.comp.graphics.openscenegraph.user/63954/focus=64014


 Briefly, an OSG-based test application loads a scene and displays it in a
 window on one or more screens (Single Viewer, multiple slave cameras, one
 GPU and context per screen).  The problem was that a single screen would
 draw the scene at a given frame rate, but as additional screens were added,
 the frame rate would drop significantly (427 fps on one screen, 396 fps on
 two, 291 on four).
...
 At this point, I started looking for something else to blame.  Examining the
 data set itself, I discovered that it was composed of about 5500 triangle
 strips, none of which were longer than 112 vertices (the data set had about
 600,000 vertices total).  There were only about 10 different StateSets in
 the scene, so state changes aren't a problem.  After some digging, I found
 the MeshOptimizers portion of osgUtil::Optimizer, and based on a message I
 found from Jean-Sebastian, I tried a pass of VERTEX_PRETRANSFORM |
 INDEX_MESH | VERTEX_POSTTRANSFORM, followed by another pass of MERGE_GEODES
 | MERGE_GEOMETRY.  This reduced the number of draw calls from around 5500 to
 9, and completely eliminated the scalability problem for both the OSG test
 program, and the pure OpenGL program.  This leads me to believe that bus
 contention was causing the lack of scalability.  As more screens were added,
 the thousands of draw calls required by the unoptimized data set couldn't
 fit within the bus bandwidth, effectively causing the draw calls to take
 longer.  The unoptimized data, only requiring 9 draw calls per screen, could
 easily fit.

That is what I found at the time of that thread, testing with some
models supplied by NIST. Newer hardware is highly optimized for
massive geometry.

For the record, I don't think the problem is bus contention, but lock
contention in the NVidia driver. The amount of bus traffic involved
in the OpenGL command stream is tiny.

 So, here are our questions.  Does it make sense that bus contention would be
 causing the lack of scalability?  Are the mesh optimizations mentioned above
 the most effective way to solve the problem?  Are there any cases where the
 mesh optimizations wouldn't be sufficient, and additional steps would need
 to be taken (I briefly mentioned state changes above, which could be
 problematic, anything else)?  Why doesn't the 64x data set seem to scale as
 well as the 1x and 8x data sets (does this indicate that the bottleneck has
 moved from the bus to somewhere else)?

 Any thoughts on these issues or other thoughts you could provide would be
 very valuable.

The key to OpenGL performance in the 21st century is reducing the
number of OpenGL function calls to a minimum... so says Captain
Obvious.

I'm glad the mesh optimizers turned out to be useful!

Btw, the Linux tool oprofile is mentioned later in the thread, but I
find the newer tool perf to be more useful.

Tim
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-26 Thread Jason Daly

On 01/26/2012 01:01 PM, Peter Kilpatrick wrote:

Hello,

This may be relevant:

Memory Speed, QPI and Multicore

http://www.masm32.com/board/index.php?PHPSESSID=afe5222fb85c769a44da28f1eb5d4b82topic=17296.0


Hi, Peter,

So the lesson there is to ensure that your RAM is running at optimal 
timings before blaming the bus.  I'll look into that, thanks!


--J

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-26 Thread Jason Daly

On 01/26/2012 01:02 PM, Tim Moore wrote:


That is what I found at the time of that thread, testing with some
models supplied by NIST. Newer hardware is highly optimized for
massive geometry.

For the record, I don't think the problem is bus contention, but lock
contention in the NVidia driver. The amount of bus traffic involved
in the OpenGL command stream is tiny.


Thanks for that.  A couple of people have mentioned bringing this to 
NVidia's attention.  We'll probably end up doing that.




The key to OpenGL performance in the 21st century is reducing the
number of OpenGL function calls to a minimum... so says Captain
Obvious.

I'm glad the mesh optimizers turned out to be useful!


Yeah, once you get down to the data itself, it ends up being pretty 
obvious (5,500 draw calls runs slower than 9 draw calls?  Really?  :-) ).


There was a bit of digging to do before we got to that point, though.  
At the outset, we originally thought that an OpenGL program wasn't 
showing the same problem that an OSG program was, which pointed the 
blame at OSG.  Turns out that we weren't doing an apples-to-apples 
comparison with the data sets.  It wasn't until we could get precisely 
the same set of data into the OpenGL program that we could start looking 
at the data itself as the culprit.


Definitely a big thanks for the mesh optimizers.  I was all set to start 
writing something myself, but then I realized they were already there  :-)




Btw, the Linux tool oprofile is mentioned later in the thread, but I
find the newer tool perf to be more useful.


Thanks, I'll check that out.

--J
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-26 Thread J.P. Delport

Hi,

On 26/01/2012 20:02, Tim Moore wrote:

Btw, the Linux tool oprofile is mentioned later in the thread, but I
find the newer tool perf to be more useful.


niiice, new tools :) I've used gprof2dot with oprofile before to get a 
nice graphic view of execution. I see it supports perf too now, yay.


http://code.google.com/p/jrfonseca/wiki/Gprof2Dot#linux_perf

jp



Tim
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



--
This message is subject to the CSIR's copyright terms and conditions, e-mail legal notice, and implemented Open Document Format (ODF) standard. 
The full disclaimer details can be found at http://www.csir.co.za/disclaimer.html.


This message has been scanned for viruses and dangerous content by MailScanner, 
and is believed to be clean.


___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Request for input

2012-01-25 Thread Jason Daly


Hi, all,

This is a general request to the community for some advice and 
expertise.  This is a bit lengthy, but if you can spare a few minutes to 
look over this and send along your thoughts, we would really appreciate it.


I've been working on a project for NIST recently.  For background, you 
might find this osg-users thread from December 2010 useful:


http://thread.gmane.org/gmane.comp.graphics.openscenegraph.user/63954/focus=64014


Briefly, an OSG-based test application loads a scene and displays it in 
a window on one or more screens (Single Viewer, multiple slave cameras, 
one GPU and context per screen).  The problem was that a single screen 
would draw the scene at a given frame rate, but as additional screens 
were added, the frame rate would drop significantly (427 fps on one 
screen, 396 fps on two, 291 on four).  Given that the scene is identical 
and static, four contexts on four GPUs should be able to draw at or at 
least very nearly the same rate as one screen on one GPU.


Based on initial tests (including running a non-OSG, OpenGL-based 
program), we first suspected that the problem had to do with thread 
contention inside of OSG itself.  To get to the bottom of this, I added 
a per-thread logging mechanism to OpenThreads::PThread, which allowed 
each thread to output to a unique file.  Using this, I added some timing 
code at various places in the rendering process.  I started with timing 
the various Operations at the high level, then I started digging into 
the various function calls, placing timing code at the important points 
along the way.  I eventually drilled all the way down to 
PrimitiveSet::draw(), and at that level, it became obvious that the code 
that was taking all of the time (and not scaling well to multiple 
screens) was the OpenGL draw call itself.  For example, on one screen a 
given PrimitiveSet would take 0.05 ms, and on two screens, it would take 
0.11 ms on the first screen and 0.12 ms on the second (roughly twice the 
amount of time).


At this point it was beginning to look like it wasn't OSG's fault.  To 
be sure, I decided to write a pure multithreaded OpenGL program from 
scratch.  I tried to keep the rendering structure the same as OSG 
(without the scene graph structure, or the update and cull traversals, 
of course).  I wrote enough of a .osg file loaded so that I could load 
the same data with the same structure, and produce the same OpenGL 
command stream when drawing a frame as OSG does (verified with 
gDEBugger).  Once this was complete, we saw a similar lack of 
scalability as additional screens were added (708 fps on one screen, 702 
fps on two, 376 fps on four).


At this point, I started looking for something else to blame.  Examining 
the data set itself, I discovered that it was composed of about 5500 
triangle strips, none of which were longer than 112 vertices (the data 
set had about 600,000 vertices total).  There were only about 10 
different StateSets in the scene, so state changes aren't a problem.  
After some digging, I found the MeshOptimizers portion of 
osgUtil::Optimizer, and based on a message I found from Jean-Sebastian, 
I tried a pass of VERTEX_PRETRANSFORM | INDEX_MESH | 
VERTEX_POSTTRANSFORM, followed by another pass of MERGE_GEODES | 
MERGE_GEOMETRY.  This reduced the number of draw calls from around 5500 
to 9, and completely eliminated the scalability problem for both the OSG 
test program, and the pure OpenGL program.  This leads me to believe 
that bus contention was causing the lack of scalability.  As more 
screens were added, the thousands of draw calls required by the 
unoptimized data set couldn't fit within the bus bandwidth, effectively 
causing the draw calls to take longer.  The unoptimized data, only 
requiring 9 draw calls per screen, could easily fit.


To demonstrate this effectively, I created a variation of the original 
OSG test program that would run render the original test data for a 
given time period, then run a configurable set of optimization passes, 
and then render the optimized data for a given time period.  It then 
reported the pre-optimization and post-optimization frame rates.  We 
also tried amplifying the data by essentially instancing it 8 times and 
64 times (not using instanced drawing, just drawing multiple copies of 
the same data).  We ran the new OSG test app, applying the same 
optimizations as mentioned above, as well as running the same data (both 
unoptimized and optimized) through the pure OpenGL program.  I've 
attached the timings for two complete runs.


The 1x and 8x data sets appear to scale well in all cases, except for 
one anomalous case where the fps drops from 76.77 fps on three screens 
to 53.26 on four (the subsequent run only drops to 70.89, so this may 
not be a real problem).  The 64x data sets are more interesting.  The 
OpenGL program clearly scales well (almost perfectly, in fact) on the 
optimized data.  The OSG program doesn't scale as well, dropping to 

Re: [osg-users] Request for input

2012-01-25 Thread Jason Daly

On 01/25/2012 04:59 PM, Jason Daly wrote:

Hi, all,

This is a general request to the community for some advice and
expertise.  This is a bit lengthy, but if you can spare a few minutes to
look over this and send along your thoughts, we would really appreciate it.


I should also mention that the source code and data sets used in this 
work can be made available if anyone would like to try these tests on 
their own hardware.


--J

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-25 Thread Jean-Sébastien Guay

Hi Jason,


Any thoughts on these issues or other thoughts you could provide would
be very valuable.


I don't have that much to add. I commend you on your investigations, you 
really went to the crux of the problem and kept at it until you found 
the answer.


The mesh optimizers I've mentioned in the past (and I was tipped off to 
them by others, so it's not my own idea :-) ) really helped in the 
problem cases I was investigating too. I think it's really easy for 
modeling programs to produce bad data, and it's really hard in general 
to see that it's bad data until it's too late. Some bad aspects of the 
data can be dealt with by doing a post-optimization on the artists' 
data, but some bad aspects are very hard to automatically optimize and 
so require knowledge. Us 3D programmers have this task in addition to 
all our programming duties, we have to educate the data producers and 
others to be able to make good data! :-)


---(aside)---

As a side note, I think OSG suffers a bit from not having a blessed 
content creation pipeline. It allows implementers and users total 
flexibility, but also in so doing assumes a lot of knowledge that might 
not be there or take a long time to acquire, and indirectly promotes 
unoptimized bad data as described above. At a minimum, I would see 
benefit to adding


a) a set of standard export plugins for the most popular 3D modeling 
applications (3DSMax, Maya, Blender) which all give the same results and 
have the same options.
b) a standard optimizer that produces optimized models and textures. 
This optimizer would essentially be a beefed up osgconv that would do 
some optimizations automatically.


These would need to be maintained beside OSG itself so that people who 
download OSG will immediately know they can use them, instead of 
explicitly having to know they exist and searching for them (like the 
current Maya, Max and Blender plugins).


It's a large task, but I think it's totally worth it.

---(/aside)---

I think the remaining case that is not scaling well might indeed be down 
to some other part of OSG or the OpenGL driver that is being exercised 
more in that example than in others. Hard to say really, but if it's a 
plausible use case you can probably use the same methodology you used to 
investigate the previous issue, and you'll find the cause.


J-S
--
__
Jean-Sebastien Guay  jean_...@videotron.ca
http://whitestar02.dyndns-web.com/
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for input

2012-01-25 Thread J.P. Delport

Hi,

On 26/01/2012 01:20, Jason Daly wrote:

On 01/25/2012 04:59 PM, Jason Daly wrote:

Hi, all,

This is a general request to the community for some advice and
expertise. This is a bit lengthy, but if you can spare a few minutes to
look over this and send along your thoughts, we would really
appreciate it.


very interesting and thorough investigation. I can't really add anything 
and unfortunately don't have representative hardware to test on. It 
would be interesting to see if different bus configs 
(motherboards/chipsets) make any difference. I also would not rule out 
the NVidia driver doing silly things. I remember once looking at some of 
the glue code for the binary blob and seeing TLB flushes that caused a 
Xenomai kernel to fail ito timing in interesting ways.


Have you tried OProfile to get some idea of time spent in the driver?



I should also mention that the source code and data sets used in this
work can be made available if anyone would like to try these tests on
their own hardware.


I suggest sending your test apps with your report to NVidia.

rgds
jp



--J

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org



--
This message is subject to the CSIR's copyright terms and conditions, e-mail legal notice, and implemented Open Document Format (ODF) standard. 
The full disclaimer details can be found at http://www.csir.co.za/disclaimer.html.


This message has been scanned for viruses and dangerous content by MailScanner, 
and is believed to be clean.


___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request: bool Polytope.contains(another_polytope)

2008-12-04 Thread Robert Osfield
Hi Jefferson,

Like Gordon says, if you need the function then the thing to do is
implement it and submit it.  I'm not hear to take end users feature
requests and then go a implement them for free.  I have bucket load of
work to do, working well over my forty hour week every week, with many
of these hours doing project maintenance and support work without
financial return, the simply is no scope for doing extra stuff just
out of kind heartedness - I do strangely enough have a life outside
the OSG.

Robert.

On Wed, Dec 3, 2008 at 8:10 PM, Jefferson Pinheiro
[EMAIL PROTECTED] wrote:
 Hello Robert,

 Can you please implement a function, in class Polytope, that checks if the
 current polytope intersects another polytope? Or is there another way to do
 that, and I'm not seeing?

 Thanks,
 --
 Jefferson Pinheiro

 ___
 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


Re: [osg-users] Request: bool Polytope.contains(another_polytope)

2008-12-04 Thread Jefferson Pinheiro
I understand.

About my other question then, there is currently no workaround to test
collision between two polytopes? I tried
polytope.contains(polytope2.getReferenceVertexList()) but it doesn't seems
to work either (always returning false). Any other ideas?

On Thu, Dec 4, 2008 at 7:05 AM, Robert Osfield [EMAIL PROTECTED]wrote:

 Hi Jefferson,

 Like Gordon says, if you need the function then the thing to do is
 implement it and submit it.  I'm not hear to take end users feature
 requests and then go a implement them for free.  I have bucket load of
 work to do, working well over my forty hour week every week, with many
 of these hours doing project maintenance and support work without
 financial return, the simply is no scope for doing extra stuff just
 out of kind heartedness - I do strangely enough have a life outside
 the OSG.

 Robert.

 On Wed, Dec 3, 2008 at 8:10 PM, Jefferson Pinheiro
 [EMAIL PROTECTED] wrote:
  Hello Robert,
 
  Can you please implement a function, in class Polytope, that checks if
 the
  current polytope intersects another polytope? Or is there another way to
 do
  that, and I'm not seeing?
 
  Thanks,
  --
  Jefferson Pinheiro
 
  ___
  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




-- 
Jefferson Pinheiro
(51) 9192 3535
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Request: bool Polytope.contains(another_polytope)

2008-12-03 Thread Jefferson Pinheiro
Hello Robert,

Can you please implement a function, in class Polytope, that checks if the
current polytope intersects another polytope? Or is there another way to do
that, and I'm not seeing?

Thanks,
-- 
Jefferson Pinheiro
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request: bool Polytope.contains(another_polytope)

2008-12-03 Thread Tomlinson, Gordon
Rather than asking Robert to implement this function you could implent
it your self as you have the source and contribute it back to the OSG
source and community for which  we would all be grateful
 

Gordon

__
Gordon Tomlinson

Product Manager 3D
Email  : gtomlinson @ overwatch.textron.com
__
(C): (+1) 571-265-2612
(W): (+1) 703-437-7651

Self defence is not a function of learning tricks 
but is a function of how quickly and intensely one 
can arouse one's instinct for survival 
- Master Tambo Tetsura

 
 



From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
Jefferson Pinheiro
Sent: Wednesday, December 03, 2008 3:11 PM
To: OpenSceneGraph Users
Subject: [osg-users] Request: bool Polytope.contains(another_polytope)


Hello Robert,

Can you please implement a function, in class Polytope, that checks if
the current polytope intersects another polytope? Or is there another
way to do that, and I'm not seeing?

Thanks,
-- 
Jefferson Pinheiro

___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request: bool Polytope.contains(another_polytope)

2008-12-03 Thread Jefferson Pinheiro
Alas, I lack the knowledge to do that.

On Wed, Dec 3, 2008 at 6:25 PM, Tomlinson, Gordon 
[EMAIL PROTECTED] wrote:

  Rather than asking Robert to implement this function you could implent it
 your self as you have the source and contribute it back to the OSG source
 and community for which  we would all be grateful


 *Gordon*

 __
 *Gordon Tomlinson*

 *Product Manager 3D
 **Email * : gtomlinson @ overwatch.textron.com
 __
 *(C): (+1) 571-265-2612
 (W)**: (+1) 703-437-7651*

 Self defence is not a function of learning tricks
 but is a function of how quickly and intensely one
 can arouse one's instinct for survival
 - *Master Tambo Tetsura*



  --
 *From:* [EMAIL PROTECTED] [mailto:
 [EMAIL PROTECTED] *On Behalf Of *Jefferson
 Pinheiro
 *Sent:* Wednesday, December 03, 2008 3:11 PM
 *To:* OpenSceneGraph Users
 *Subject:* [osg-users] Request: bool Polytope.contains(another_polytope)

 Hello Robert,

 Can you please implement a function, in class Polytope, that checks if the
 current polytope intersects another polytope? Or is there another way to do
 that, and I'm not seeing?

 Thanks,
 --
 Jefferson Pinheiro

 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




-- 
Jefferson Pinheiro
(51) 9192 3535
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for testing Collada/dae plugin changes

2008-12-01 Thread Serge Lages
Hi Roland,

I've made an update and I am trying to build the Collada plugin (under WinXP
using VS8), I first noticed that you've added some dependencies to it for
the dynamic build :

libxml2 pcrecpp-d pcre-d

I was wondering why do you ask for pcrecpp-d and pcre-d ? It's the debug
versions of the libs, should it be better to ask for pcre.lib and
pcrecpp.lib ?

On Mon, Nov 24, 2008 at 4:28 PM, Smeenk, R.J.M. (Roland) 
[EMAIL PROTECTED] wrote:

  Hello osg-users,

 Robert just merged my changes for the Collada/dae plugin as posted on
 osg-submission:

 http://lists.openscenegraph.org/pipermail/osg-submissions-openscenegraph.org/2008-November/002883.html

 You are kindly invited to test the improved plugin.

 --
 Roland

 This e-mail and its contents are subject to the DISCLAIMER at 
 http://www.tno.nl/disclaimer/email.html


 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




-- 
Serge Lages
http://www.tharsis-software.com
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for testing Collada/dae plugin changes

2008-12-01 Thread Smeenk, R.J.M. (Roland)
Serge,
 
I just changed the CMake files so I could develop the dae plugin in
debug mode with a statically linked DOM.
The CMake files still need to be changed so the user may specify the
location of these dependencies (both debug and releas) by hand. Another
possibility would be to automatically use the external-libs in the
Collada DOM directory. 
 
--
Roland




From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Serge
Lages
Sent: maandag 1 december 2008 11:03
To: OpenSceneGraph Users
Subject: Re: [osg-users] Request for testing Collada/dae plugin
changes


Hi Roland,

I've made an update and I am trying to build the Collada plugin
(under WinXP using VS8), I first noticed that you've added some
dependencies to it for the dynamic build :

libxml2 pcrecpp-d pcre-d

I was wondering why do you ask for pcrecpp-d and pcre-d ? It's
the debug versions of the libs, should it be better to ask for pcre.lib
and pcrecpp.lib ?


On Mon, Nov 24, 2008 at 4:28 PM, Smeenk, R.J.M. (Roland)
[EMAIL PROTECTED] wrote:


Hello osg-users,
 
Robert just merged my changes for the Collada/dae plugin
as posted on osg-submission:

http://lists.openscenegraph.org/pipermail/osg-submissions-openscenegraph
.org/2008-November/002883.html
 
You are kindly invited to test the improved plugin.
 
--
Roland
This e-mail and its contents are subject to the
DISCLAIMER at http://www.tno.nl/disclaimer/email.html

___
osg-users mailing list
osg-users@lists.openscenegraph.org

http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.or
g






-- 
Serge Lages
http://www.tharsis-software.com


This e-mail and its contents are subject to the DISCLAIMER at 
http://www.tno.nl/disclaimer/email.html
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for testing Collada/dae plugin changes

2008-12-01 Thread Serge Lages
If I link the DOM dynamically I don't need to set these targets here, right
? (like in the previous version of the CMakeList.txt)

I am also having links errors like that :

2daeReader.obj : error LNK2019: unresolved external symbol char const *
const COLLADA_TYPE_INSTANCE_RIGID_BODY
(?COLLADA_TYPE_INSTANCE_RIGID_BODY@@3PBDB)
referenced in function public: bool __thiscall
osgdae::daeReader::convert(class std::basic_stringchar,struct
std::char_traitschar,class std::allocatorchar  const )
([EMAIL PROTECTED]@osgdae@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@
@[EMAIL PROTECTED]@2@@std@@@Z)

I'll try to update my DOM to see if it works, it still depends on the 1.4.1
version, not the 1.5 ?

On Mon, Dec 1, 2008 at 11:13 AM, Smeenk, R.J.M. (Roland) 
[EMAIL PROTECTED] wrote:

  Serge,

 I just changed the CMake files so I could develop the dae plugin in debug
 mode with a statically linked DOM.
 The CMake files still need to be changed so the user may specify the
 location of these dependencies (both debug and releas) by hand. Another
 possibility would be to automatically use the external-libs in the Collada
 DOM directory.

 --
 Roland

  --
 *From:* [EMAIL PROTECTED] [mailto:
 [EMAIL PROTECTED] *On Behalf Of *Serge Lages
 *Sent:* maandag 1 december 2008 11:03
 *To:* OpenSceneGraph Users
 *Subject:* Re: [osg-users] Request for testing Collada/dae plugin changes

 Hi Roland,

 I've made an update and I am trying to build the Collada plugin (under
 WinXP using VS8), I first noticed that you've added some dependencies to it
 for the dynamic build :

 libxml2 pcrecpp-d pcre-d

 I was wondering why do you ask for pcrecpp-d and pcre-d ? It's the debug
 versions of the libs, should it be better to ask for pcre.lib and
 pcrecpp.lib ?

 On Mon, Nov 24, 2008 at 4:28 PM, Smeenk, R.J.M. (Roland) 
 [EMAIL PROTECTED] wrote:

  Hello osg-users,

 Robert just merged my changes for the Collada/dae plugin as posted on
 osg-submission:

 http://lists.openscenegraph.org/pipermail/osg-submissions-openscenegraph.org/2008-November/002883.html

 You are kindly invited to test the improved plugin.

 --
 Roland

 This e-mail and its contents are subject to the DISCLAIMER at 
 http://www.tno.nl/disclaimer/email.html


 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




 --
 Serge Lages
 http://www.tharsis-software.com

 This e-mail and its contents are subject to the DISCLAIMER at 
 http://www.tno.nl/disclaimer/email.html


 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




-- 
Serge Lages
http://www.tharsis-software.com
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for testing Collada/dae plugin changes

2008-12-01 Thread Smeenk, R.J.M. (Roland)
 
If I link the DOM dynamically I don't need to set these targets here,
right ? (like in the previous version of the CMakeList.txt) 
 
Hmm, not sure. 

I am also having links errors like that :

2daeReader.obj : error LNK2019: unresolved external symbol char const
* const COLLADA_TYPE_INSTANCE_RIGID_BODY
(?COLLADA_TYPE_INSTANCE_RIGID_BODY@@3PBDB) referenced in function
public: bool __thiscall osgdae::daeReader::convert(class
std::basic_stringchar,struct std::char_traitschar,class
std::allocatorchar  const )
([EMAIL PROTECTED]@osgdae@@[EMAIL PROTECTED]@[EMAIL PROTECTED]
@@[EMAIL PROTECTED]@2@@std@@@Z)
 
Linking statically solved this for me.
 
I'll try to update my DOM to see if it works, it still depends on the
1.4.1 version, not the 1.5 ?
 
The plugin is still using DOM 2.1 that supports Collada version 1.4.1
An official DOM for Collada 1.5 is not released yet and I don't think we
want to use the SVN Head for 1.5 support. 
 
--
Roland 

On Mon, Dec 1, 2008 at 11:13 AM, Smeenk, R.J.M. (Roland)
[EMAIL PROTECTED] wrote:


Serge,
 
I just changed the CMake files so I could develop the
dae plugin in debug mode with a statically linked DOM.
The CMake files still need to be changed so the user may
specify the location of these dependencies (both debug and releas) by
hand. Another possibility would be to automatically use the
external-libs in the Collada DOM directory. 
 
--
Roland




From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Serge
Lages
Sent: maandag 1 december 2008 11:03
To: OpenSceneGraph Users
Subject: Re: [osg-users] Request for testing
Collada/dae plugin changes


Hi Roland,

I've made an update and I am trying to build the
Collada plugin (under WinXP using VS8), I first noticed that you've
added some dependencies to it for the dynamic build :

libxml2 pcrecpp-d pcre-d

I was wondering why do you ask for pcrecpp-d and
pcre-d ? It's the debug versions of the libs, should it be better to ask
for pcre.lib and pcrecpp.lib ?


On Mon, Nov 24, 2008 at 4:28 PM, Smeenk, R.J.M.
(Roland) [EMAIL PROTECTED] wrote:


Hello osg-users,
 
Robert just merged my changes for the
Collada/dae plugin as posted on osg-submission:

http://lists.openscenegraph.org/pipermail/osg-submissions-openscenegraph
.org/2008-November/002883.html
 
You are kindly invited to test the
improved plugin.
 
--
Roland
This e-mail and its contents are subject
to the DISCLAIMER at http://www.tno.nl/disclaimer/email.html


___
osg-users mailing list
osg-users@lists.openscenegraph.org

http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.or
g






-- 
Serge Lages
http://www.tharsis-software.com


This e-mail and its contents are subject to the
DISCLAIMER at http://www.tno.nl/disclaimer/email.html

___
osg-users mailing list
osg-users@lists.openscenegraph.org

http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.or
g






-- 
Serge Lages
http://www.tharsis-software.com


This e-mail and its contents are subject to the DISCLAIMER at 
http://www.tno.nl/disclaimer/email.html
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Request for testing Collada/dae plugin changes

2008-12-01 Thread Serge Lages
On Mon, Dec 1, 2008 at 11:31 AM, Smeenk, R.J.M. (Roland) 
[EMAIL PROTECTED] wrote:


 If I link the DOM dynamically I don't need to set these targets here, right
 ? (like in the previous version of the CMakeList.txt)

 Hmm, not sure.

 I am also having links errors like that :

 2daeReader.obj : error LNK2019: unresolved external symbol char const *
 const COLLADA_TYPE_INSTANCE_RIGID_BODY 
 (?COLLADA_TYPE_INSTANCE_RIGID_BODY@@3PBDB)
 referenced in function public: bool __thiscall
 osgdae::daeReader::convert(class std::basic_stringchar,struct
 std::char_traitschar,class std::allocatorchar  const )
 ([EMAIL PROTECTED]@osgdae@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@
 @[EMAIL PROTECTED]@2@@std@@@Z)

 Linking statically solved this for me.



Erf... But if I don't want to link statically, there's no solution ?



 I'll try to update my DOM to see if it works, it still depends on the 1.4.1
 version, not the 1.5 ?

 The plugin is still using DOM 2.1 that supports Collada version 1.4.1
 An official DOM for Collada 1.5 is not released yet and I don't think we
 want to use the SVN Head for 1.5 support.



Ok, so I have the correct version, I'll compile the static version of the
DOM.
If we don't have any solution for the dynamic version of the library, we
should add a note to say that the static version is needed to build the
plugin.

-- 
Serge Lages
http://www.tharsis-software.com
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Request for testing Collada/dae plugin changes

2008-11-24 Thread Smeenk, R.J.M. (Roland)
Hello osg-users,
 
Robert just merged my changes for the Collada/dae plugin as posted on
osg-submission:
http://lists.openscenegraph.org/pipermail/osg-submissions-openscenegraph
.org/2008-November/002883.html
 
You are kindly invited to test the improved plugin.
 
--
Roland
This e-mail and its contents are subject to the DISCLAIMER at 
http://www.tno.nl/disclaimer/email.html
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org