Re: [osg-users] Rethinking 3rd party dependencies?

2009-08-28 Thread sherman wilcox
I build *everything* from source. I use Python scripts to automate the
process too. It's relatively straightforward to setup and is very
reliable. Fully automated. I can call one Python script that will
check out all source code, compile all OSG and project specific
dependencies, compile OSG, compile my application(s) and issue a
release. Python is awesome. Could do the same thing with Perl but once
I started to use Python I never looked back. Using CMake from the
command line is easy as well - very straightforward.

I highly recommend compiling all from source.

On Fri, Aug 28, 2009 at 5:46 PM, Philip Lowmanphi...@yhbt.com wrote:
 While poring over thread after thread dealing with build dependencies on
 Windows I had a weird thought a while back: computers are fast these days,
 why not just build everything (including 3rd party dependencies) from
 source?

 The way I see it, issues on Windows are going to get worse far before they
 get any better.  Issues like:
 1. Differing compiler versions (MSVC 7.1/8/9, MinGW 3.4/4.4)
 2. The need for Debug libraries with certain compilers
 3. The need for 32 and/or 64-bit libraries
 4. The occasional need for a complete static build
 5. The need/desire for some people to compile with /MT or _SECURE_SCL=0 on
 MSVC
 ...are likely not to be going away anytime soon and they can create a
 confusing ecosystem.  Also, security issues  library bugfixes tend to get
 ignored once someone has that prebuilt library sitting off in CM somewhere.

 So I cmakeified libpng, zlib, and libjpeg (building on some work previously
 done by Luigi Calori and others) and wrapped them in ZIP files called
 CMakeports.  The three put together take about 5 seconds total to build on
 my 3 year old core2 duo.  They are available at the website below.

 http://code.google.com/p/cmakeports/

 I've integrated and tested* the 3 ports with OSG using osgviewer --image,
 and things seem to be working fine.  I'd like to submit this to
 osg-submissions assuming there is enough interest in the idea.  I'm doubtful
 this could satisfy 100% of the dependencies people might want to use with
 the OSG, but I'm optimistic it could cover the major ones (png, jpg, zlib,
 tiff,  freetype seem like no-brainers to me).

 * I have tested:
 MSVC9 32-bit DYNAMIC_OPENSCENEGRAPH=ON (Debug  Release)
 MinGW 3.4.
 * I have partially tested:
 MSVC9 32-bit DYNAMIC_OPENSCENEGRAPH=OFF (code compiles but haven't tried
 building/linking a custom viewer)
 * I have not tested:
 MSVC8
 MSVC9 64-bit
 MinGW 4.4.0

 --
 Philip Lowman

 ___
 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] node modification from within update callback -

2009-07-22 Thread sherman wilcox
I have a question as to what is allowed and/or what's a good/bad
practice with respect to modifying the scenegraph at runtime from
within an update callback. We're using one of the newer versions of
OSG. 2.9.4 I believe. Our osgViewer is setup for single-threaded
operation.

Take a look at the attached image. From within F's update callback, we
know that we must not add children to or remove children from any of
the red nodes, because all of those nodes have active traversals (i.e.
invocations of osg::Group::traverse, where the local iterator variable
is in danger of being invalidated).  But can we modify the blue nodes,
since they do not have active traversals? By modify I mean add/remove
child nodes of the blue nodes or change properties of the nodes
themselves.
attachment: example.png___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Windows users - VS2008 comments

2009-04-04 Thread sherman wilcox
Slightly off-topic for this mailing list but here goes. For the
Windows users out there, those of you that are using or know of
developers using VS2008 - any comments? Problems, benefits, pros/cons?

My project is using VS2005 and has been for a while now but I'm
considering switching to VS2008. In my case there's only one reason -
the /MP benefit. /MP enables parallel compilation. For multiprocessor
or multicore systems it's a real performance increase. I'm not talking
about parallel builds of multiple projects but compiling multiple
modules in the same project(s) in parallel. On VS2005 /MP is
undocumented but works, mostly. It's a tremendous performance boost.
However, I've ran into a PDB corruption issue here as of late. Error
C2471. Not sure why it's suddenly happening as I've been using /MP for
a long while now. I believe Gordon warned me this could happen and it
has. I phoned Microsoft about this and they said that /MP is
unsupported on VS2005 and I have no recourse but to either not use
that feature (no way - too fast) or upgrade to VS2008. So, I may be
upgrading. However, there are numerous developers on my project and I
want to have a clear understanding of any potential issues before
moving forward. I'll be purchasing a copy to test but I'd like to hear
from the list.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] CMake error on trunk HEAD

2009-02-06 Thread sherman wilcox
On Fri, Feb 6, 2009 at 1:41 PM, Roger James ro...@beardandsandals.co.uk wrote:
 Robert Osfield wrote:

 Hi Roger,
 Sorry to hear it's still broke.  I'm not the original author of
 version additions, just the integrator.  Would it be possible for you
 to tweak the version support now checked in and get it working.
 Cheers,
 Robert.


 Robert,


I tried building the svn head version of OSG using the files you
attached to this thread with no success. I received RC1000 errors
along with macro definition too big - What compiler are you using? I
tried with VS2005 SP1. Could you re-send the rc files to me in a
direct email zipped? I'll try again. Could be that my browser is
mangling the files.

Anyone else have a go at this?
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] osgText crash - latest nVidia FX drivers

2008-10-23 Thread sherman wilcox
Hello everyone - I'm experiencing a crash using the latest nVidia
driver when I bring up the stats window and am wondering if anyone
else is experiencing the same problem. My hardware is a Dell
Workstation using a nVidia FX4600 card. I'm convinced the issue is
related to the driver upgrade. I was running version 169.96 (June 2008
release) for the FX series without issue. I immediatly started to
experience the problem when I upgraded to the latest - 178.26 October
15 2008 release. I have tested this issue on three different
development boxes:

* two Dell workstation PCs running Vista x64 Visual Studio 2005 SP1 - FX4600
* one Dell workstation XP 64 - FX4600

In all cases the crash begun as soon as I upgraded the driver. The
crash itself is very reliable. I simply bring up stats and poof -
crash. I've attached the callstack from one of the development PCs.
The last time I had a problem with osgText and a crash like this it
turned out to be a nVidia issue there as well. Had to do with
subloading of zero sized textures, which is valid but the nVidia
driver didn't care for that too much.

The crash seems to occur down in Text::renderOnlyForegroundText(...)
in the glDrawArrays call. I added some debug statements like so:

printf(enter glDrawArrays (%d)..., transformedCoords.size());
glDrawArrays(GL_QUADS,0,transformedCoords.size());
printf(exit\n);


and the output (once stats are enabled) is:

enter glDrawArrays (20)...exit
enter glDrawArrays (48)...exit
(few seconds pass with a repeat of the previous output)
enter glDrawArrays (20)...exit
enter glDrawArrays (48)...crash


Other data points:
* the crash doesn't seem to occur in debug builds
* running osgViewer in single-threaded mode


My questions are:
* anyone else experiencing this?
* can anyone else reproduce?

I'm not sure what else is broken - so far I'm only getting this one
crash. Also not clear as to the exact trigger. The count argument
passed to glDrawArrays always seems to be valid.

Any help would be appreciated.
03b22911()  
nvogl32.dll!697d8331()  
[Frames below may be incorrect and/or missing, no symbols loaded for 
nvogl32.dll]   
nvogl32.dll!697d841e()  
nvogl32.dll!697dc0fe()  
nvogl32.dll!6970f32c()  
nvogl32.dll!69843126()  
nvogl32.dll!697ddac1()  
nvogl32.dll!69830881()  
nvogl32.dll!697dce81()  
nvogl32.dll!69831041()  
nvogl32.dll!6984e460()  
   osg44-osgText.dll!osgText::Text::renderOnlyForegroundText(osg::State  
 state={...}, const osg::Vec4f  colorMultiplier={...})  Line 1754 + 0x13 
 bytes   C++
osg44-osgText.dll!osgText::Text::drawImplementation(osg::State  
state={...}, const osg::Vec4f  colorMultiplier={...})  Line 1369  C++
osg44-osgText.dll!osgText::Text::drawImplementation(osg::RenderInfo  
renderInfo={...})  Line 1253  C++
osg44-osg.dll!osg::Drawable::draw(osg::RenderInfo  renderInfo={...})  
Line 895 + 0xa bytes C++

osg44-osgUtil.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo  
renderInfo={...}, osgUtil::RenderLeaf *  previous=0x04c45858)  Line 420 C++

osg44-osgUtil.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo  
renderInfo={...}, osgUtil::RenderLeaf *  previous=0x04c45858)  Line 469 + 0x29 
bytesC++

osg44-osgUtil.dll!osgUtil::RenderStage::drawImplementation(osg::RenderInfo  
renderInfo={...}, osgUtil::RenderLeaf *  previous=0x04c45858)  Line 1235  C++
osg44-osgUtil.dll!osgUtil::RenderStage::drawInner(osg::RenderInfo  
renderInfo={...}, osgUtil::RenderLeaf *  previous=0x04c45858, bool  
doCopyTexture=false)  Line 832C++
osg44-osgUtil.dll!osgUtil::RenderStage::draw(osg::RenderInfo  
renderInfo={...}, osgUtil::RenderLeaf *  previous=0x04c45858)  Line 1092   
 C++
osg44-osgUtil.dll!osgUtil::SceneView::draw()  Line 1513 C++
ntdll.dll!7d61cc60()
kernel32.dll!7d4db3dc() 
osg44-osg.dll!osg::Timer::tick()  Line 61 + 0xa bytes   C++
osg44-osgViewer.dll!osgViewer::Renderer::cull_draw()  Line 536  C++
osg44-osg.dll!osg::GraphicsContext::runOperations()  Line 683   C++
osg44-osgViewer.dll!osgViewer::ViewerBase::renderingTraversals()  Line 
694 + 0x14 bytes C++
osg44-osgViewer.dll!osgViewer::ViewerBase::frame(double 
simulationTime=1.7976931348623157e+308)  Line 592 + 0x9 bytes   C++
testviewer.exe!main(int argc=2, char * * argv=0x009e5ee8)  Line 248 
C++
testviewer.exe!__tmainCRTStartup()  Line 597 + 0x17 bytes   C
kernel32.dll!7d4e7d2a() 
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] AutoTransform and SMALL_FEATURE_CULLING

2008-08-24 Thread sherman wilcox
I've attached a small demo app that illustrates an issue I've
discovered (known?) with AutoTransform nodes and small feature
culling. Briefly summarized, if I add a custom AutoTransform node (see
code for trivial example) to the scenegraph just under the root node
everything seems fine, with or without small feature culling enabled.
However, if I add this AutoTransform node as a member of a osg::Group
and then add the group to the scenegraph then this node's accept
function no longer is called after the first traversal if small
feature culling is enabled. However, if I disable small feature
culling all is well.

Is this a bug or am I doing something wrong?

#include iostream
#include direct.h

#include osgDB/ReadFile
#include osgViewer/Viewer
#include osgViewer/ViewerEventHandlers
#include osg/Geode
#include osg/Geometry
#include osgGA/TrackballManipulator
#include osg/ShapeDrawable
#include osg/AutoTransform
#include osg/MatrixTransform


static osg::Vec3d cairoPos;

#pragma message( )
#pragma message( Please define your own earth model )
#pragma message( )
static std::string earthFileName = http://somewhere.org/earth.ive;;

class CustomeAutoTransform : public osg::AutoTransform
{
public:

  CustomeAutoTransform()
  {
_maxScale = 2500 * 1000;
  }

  void CustomeAutoTransform::accept(osg::NodeVisitor nv)
  {
if(nv.getVisitorType() == osg::NodeVisitor::NODE_VISITOR)
{
  osg::AutoTransform::accept(nv);
  return;
};

osg::Vec3d pos = getPosition();
osg::Vec3 eye_cp = nv.getEyePoint() - pos;

pos.normalize();
eye_cp.normalize();

double deviation = (eye_cp * pos);

//crude scaling
double scaleCoefficient = osg::minimum(1.0, osg::maximum(0.0, deviation));

const double epsilon = 0.0001;
setMaximumScale(__max(_maxScale * scaleCoefficient, epsilon));


osg::AutoTransform::accept(nv);
  }

  double _maxScale;

};

int main(int argc, char** argv)
{
  //calculate Cairo, Egypt position in ECEF
  {
osg::EllipsoidModel em;
osg::Vec3d pos(osg::DegreesToRadians(30.08), osg::DegreesToRadians(31.25), 
0);
em.convertLatLongHeightToXYZ(pos[0], pos[1], pos[2], pos[0], pos[1], 
pos[2]);
cairoPos = pos;
  }

  osgViewer::Viewer viewer;
  viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded);
  viewer.addEventHandler( new osgViewer::WindowSizeHandler );
  viewer.addEventHandler( new osgViewer::StatsHandler );
  viewer.addEventHandler(new osgViewer::RecordCameraPathHandler);
  viewer.setReleaseContextAtEndOfFrameHint(false);

  //comment this line out to demonstrate the bug
  //viewer.getCamera()-setCullingMode(viewer.getCamera()-getCullingMode() 
~osg::CullSettings::SMALL_FEATURE_CULLING);

  osg::ref_ptrosg::Group root = new osg::Group;

  {
osg::ref_ptrosg::Node earth = osgDB::readNodeFile(earthFileName); 
earth-getOrCreateStateSet()-setMode(GL_LIGHTING, 
osg::StateAttribute::OFF);
root-addChild(earth.get());
  }

  viewer.setCameraManipulator(new osgGA::TrackballManipulator());

  {
osg::ref_ptrosg::ShapeDrawable sphere = new osg::ShapeDrawable( new 
osg::Sphere( cairoPos, 5000 ) ) ;
sphere-setColor(osg::Vec4(1., 0., 0., 1.));
osg::ref_ptrosg::Geode geode = new osg::Geode();
geode-addDrawable(sphere.get());
root-addChild(geode.get());
  }

  //simple autotransform
  {
osg::ref_ptrosgText::Text text = new osgText::Text;

text-setFont(Arial.ttf);
text-setCharacterSizeMode( 
osgText::TextBase::OBJECT_COORDS_WITH_MAXIMUM_SCREEN_SIZE_CAPPED_BY_FONT_HEIGHT 
);
text-setCharacterSize(128);
text-setFontResolution(128, 128);
text-setColor(osg::Vec4(1,1,1,1));
text-setText(Cairo);

osgText::Text::BackdropType type = osgText::Text::OUTLINE;
text-setBackdropType(type);
text-setBackdropColor(osg::Vec4(0,0,0,1));

text-setAlignment(osgText::TextBase::CENTER_CENTER);
text-setAxisAlignment(osgText::TextBase::XY_PLANE);
text-setPosition(osg::Vec3(0,75,0));

osg::ref_ptrosg::Geode geode = new osg::Geode();
geode-addDrawable(text.get());

osg::ref_ptrCustomeAutoTransform at = new CustomeAutoTransform();
at-setAutoScaleToScreen(true);
at-setAutoRotateMode(osg::AutoTransform::ROTATE_TO_SCREEN);
at-addChild(geode.get());
at-setPosition(cairoPos);
at-getOrCreateStateSet()-setMode(GL_DEPTH_TEST, osg::StateAttribute::OFF);
at-getOrCreateStateSet()-setMode(GL_LIGHTING,osg::StateAttribute::OFF);

osg::ref_ptrosg::Group group = new osg::Group();

const bool demonstrateBug = true;
if(demonstrateBug)
{
  //the AutoTransform node will fail if and only if
  //small feature culling is enabled
  group-addChild(at.get());
  root-addChild(group.get());
}
else
{
  //if we add the AutoTransform directly to the root node
  //then it makes no difference if small feature culling is
  //enabled or not, everything still works
  root-addChild(at.get());
}

  }

  

[osg-users] osgText - size is half of font resolution

2008-08-22 Thread sherman wilcox
Can someone explain why the code below consistently produces text that
is half the height specified? If I render this text, take a screenshot
and measure the height of the text ABC in a paint program it will
measure up as approximately 64 pixels tall for a character size /
resolution of 128. I change the 128 to 256, the text will then
measures 128 and so on. Always measures half of what I specify. Should
this not render text that is approximately 128 pixels in height? I
understand that the characters won't be exactly the width/height I
specify, but half? Is this a bug or what?

{
osg::Vec3d pos(osg::DegreesToRadians(someLat),
osg::DegreesToRadians(someLon), 0);
ellipsoidModel-convertLatLongHeightToXYZ(pos[0], pos[1], pos[2],
pos[0], pos[1], pos[2]);
osg::ref_ptrosg::MatrixTransform mt = new osg::MatrixTransform();
mt-setMatrix(osg::Matrix::identity());
mt-setMatrix(osg::Matrix::translate(pos));

osg::ref_ptrosgText::Text text = new osgText::Text;
text-setFont(Arial.ttf);
osgText::Text::BackdropType type = osgText::Text::OUTLINE;
text-setBackdropType(type);
text-setColor(osg::Vec4(1,1,1,1));
text-setBackdropColor(osg::Vec4(0,0,0,1));
text-setAlignment(osgText::TextBase::CENTER_CENTER);
text-setAutoRotateToScreen(true);
text-setText(ABC);
text-setCharacterSizeMode( osgText::TextBase::SCREEN_COORDS );
text-setCharacterSize(128);
text-setFontResolution(128, 128);


osg::ref_ptrosg::Geode geode = new osg::Geode();
geode-addDrawable(text.get());

mt-addChild(geode.get());
mt-getOrCreateStateSet()-setMode(GL_DEPTH_TEST, osg::StateAttribute::OFF);
root-addChild(mt.get());
  }
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] glGetString returning NULL

2008-07-31 Thread sherman wilcox
Thanks for the reply - I am running osgViewer in single threaded mode
- still returns NULL. The drawable trick works as expected, but I
don't understand why this doesn't work in the main render loop when in
single threaded mode. I *think* this worked in 2.4. Almost positive.
Anyway, here's a simple example. glGetString fails in the loop but
succeeds in the drawable. Note the usage of single threaded mode. I'm
not so concerned about having to move this code to a drawable, but
perhaps this is indicative of a larger issue?





#include iostream

#include osgDB/ReadFile
#include osgViewer/Viewer
#include osgViewer/ViewerEventHandlers
#include osgGA/TrackballManipulator



class CglGetString : public osg::Drawable
{
public:
  CglGetString()
  {
setUseDisplayList(false);
  };

  virtual bool isSameKindAs(const Object* obj) const { return
dynamic_castconst CglGetString*(obj)!=NULL; }
  virtual Object* cloneType() const { return new CglGetString(); }
  virtual Object* clone(const osg::CopyOp copyop) const { return new
CglGetString(); }

  virtual void drawImplementation(osg::RenderInfo renderInfo) const
  {
char* extensions = (char*)glGetString(GL_EXTENSIONS);
  }

protected:
};


int main(int argc, char** argv)
{
  osg::ArgumentParser arguments(argc,argv);

  osgViewer::Viewer viewer(arguments);

  viewer.setThreadingModel(osgViewer::Viewer::SingleThreaded);
  osg::Referenced::setThreadSafeReferenceCounting(true);

  viewer.addEventHandler(new osgViewer::WindowSizeHandler);
  viewer.addEventHandler(new osgViewer::StatsHandler);
  viewer.setCameraManipulator(new osgGA::TrackballManipulator);

  // load the data
  osg::ref_ptrosg::Node loadedModel = osgDB::readNodeFiles(arguments);

  if (!loadedModel)
  {
std::cout  arguments.getApplicationName() : No data loaded
 std::endl;
return 1;
  }

  osg::ref_ptrosg::Group group = new osg::Group();
  group-addChild(loadedModel.get());

  if(1)
  {
osg::Geode *geode = new osg::Geode();
geode-addDrawable(new CglGetString());
group-addChild(geode);
  }

  viewer.setSceneData( group.get() );

  viewer.realize();

  while(!viewer.done())
  {
viewer.frame();
char* extensions = (char*)glGetString(GL_EXTENSIONS);
  }

  return 0;
}






On Thu, Jul 31, 2008 at 4:34 AM, Gordon Tomlinson
[EMAIL PROTECTED] wrote:
 This will in most case always return NULL in OSG 2.x and above

 You Have to do OpenGL calls where in the Processes/Thread that has the
 OpenGL context  which in OSG is the Draw Processes, so you have to do
 anything with OpenGL in  Draw Call callbacks

 You cannot do OpenGL calls in the App Process/Thread as your doing below (
 UNLESS you have OSG in Single Thread MODE )



 __
 Gordon Tomlinson

 [EMAIL PROTECTED]
 IM: [EMAIL PROTECTED]
 www.vis-sim.com www.gordontomlinson.com
 __

 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of sherman
 wilcox
 Sent: Wednesday, July 30, 2008 8:29 PM
 To: OpenSceneGraph Users
 Subject: [osg-users] glGetString returning NULL

 Running latest version of OSG in SVN, calling glGetString(...) from
 main render loop (single threaded osgViewer). Like this:

  while(viewer.done() == false)
  {
viewer.frame();

char* extensions = (char*)glGetString(GL_EXTENSIONS);
  }


 extensions is always NULL. Am I doing something wrong here? Could
 someone else test this?
 ___
 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 mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] glGetString returning NULL

2008-07-30 Thread sherman wilcox
Running latest version of OSG in SVN, calling glGetString(...) from
main render loop (single threaded osgViewer). Like this:

  while(viewer.done() == false)
  {
viewer.frame();

char* extensions = (char*)glGetString(GL_EXTENSIONS);
  }


extensions is always NULL. Am I doing something wrong here? Could
someone else test this?
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] render to texture - alpha blending

2008-07-29 Thread sherman wilcox
Hi guys - I'm using render to texture in one of my apps and I'm
experiencing alpha blending issues. Here's what I have: simple RTT
(render to texture) with two quads. Each quad has as a background an
opaque black background (24-bit BMP). In front of that is a small
(doesn't cover the entire background) 32-bit TGA with varying
transparency. Here's the issue: on the portion of the quad that is
covered by 32-bit TGA I can see right through. It appears as though
OpenGL is doing what it's suppose to do - blending not only the RGB
but also the alpha. For my blending function I'm using (GL_SRC_ALPHA,
GL_ONE_MINUS_SRC_ALPHA) - So, when this 32-bit TGA is blended against
the opaque black background it's blending the alpha components as well
which results in an overall decreased alpha value. Hence, that opaque
black background is now semi-transparent.

What I did to (hopefully) solve this is to premultiply the incoming
fragments via a shader attached to each incoming node that is drawn
into the RTT and use (GL_ONE, GL_ONE_MINUS_SRC_ALPHA) as my blending
function for that node. Seems to solve it. At least now everything is
blending the way I'd expect. The opaque parts are opaque and the
semi-transparent are blending as expected against the opaque
background, etc.

My question is this: what other method might I employ to deal with
these alpha blending issues? How do you guys recommend handling this?
What's the recommend route to take?
attachment: Untitled.jpg___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] problems with new version OSG 2.6.0

2008-07-27 Thread sherman wilcox
Can you make a small and simple prototype that *reliably* reproduces
the problem? You have a better chance of getting help that way.

On Sun, Jul 27, 2008 at 2:50 AM, GMD GammerMaxyandex.ru
[EMAIL PROTECTED] wrote:
 Some offers of OSG 2.6.0( problems with new version).
 Let's wait with OSG 2.6.0 release.  I asked this because I found a problem 
 with osgUtil::LineSegmentIntersector function.
 In OSG v 2.5.5 version of OSG function viewer-computeIntersections(x,y, 
 hlist) works very strange - when cursor movements over object is short 
 it(cursor) falls throught the object and function returns name of object 
 which is behind current(object over which cursor is). In earlyer(less 2.5.2) 
 versions of OSG this error has never appeared. How can I solve this problem 
 in this(2.5.5) version of OSG?
 It is necessary to solve the problem until  OSG 2.6.0 release.
 Thanks in advance.  Best regards, Max.
 ___
 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] Seeking OSG texture mapping application

2008-06-28 Thread sherman wilcox
http://www.remograph.com/

On Thu, Jun 26, 2008 at 9:53 AM, Judie [EMAIL PROTECTED] wrote:
 Hi,

 Can 3D Studio Max import osg, apply texture and export it back to osg?
 If not then is there another modeling software that can? I am having
 problems generating texture coordinates for a model representing a
 machined work peice. If there is an algorithm for apply textures that
 would also be appreciated.

 Thanks,

 Judie
 ___
 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] positioning a node - XYZ with offset in screen space

2008-06-24 Thread sherman wilcox
On Sun, Jun 22, 2008 at 12:37 PM, Robert Osfield
[EMAIL PROTECTED] wrote:
 Hi Sherman,

 You could try using an osg::AutoTransform that is positioned at your
 XYZ and set up to scale to screen coords and rotate to screen, then
 have the subraph by offset up the Y axis (effectively in screen space)
 to give you the offset you want.

The last bit - have the subraph by offset up the Y axis (effectively
in screen space) to give you the offset you want. - what exactly do
you suggest? What I require is an approximate offset in pixels. For
example, if I want a node (lets use text as an example) to be at
position XYZ in world coordinates and then offset by 45 pixels along
the Y axis - what do you suggest? I have one method working that I'm
not pleased with performance wise. The crucial bit is getting close to
the number of pixels specified to be offset by.



 Cheers,
 Robert.

 On Sun, Jun 22, 2008 at 1:28 AM, sherman wilcox
 [EMAIL PROTECTED] wrote:
 I have nodes (models, text, etc.) that are positioned in XYZ
 coordinates that I wish to offset in screen space. My question is
 what's the best/fastest way to do this. An example follows. I have a
 piece of text that acts as a label for a point on a sphere. In this
 case that sphere is an osg ellipsoid model generated by virtual planet
 builder. I position the text at a given lat/lon/altitude which I
 translate to a XYZ world coordinate. However, I wish to offset the
 text in screen space by X,Y pixels. Imagine you want to label a point
 of interest on this globe but you want the label itself to be offset
 (updated every frame) by X pixels in the x-dimension and Y pixels in
 the y-dimension. I have one osg::MatrixTransform node acting as the
 parent of each text object. I have about 100 of these labels objects.
 I need to update the offset of the text every few frames. Doesn't have
 to be every frame, I can accept lazy updates - but it is something
 that needs to occur rather frequently.

 What's the best way to accomplish this? I have something working but
 it's rather slow with 50 or more objects. I'm using IntersectVisitor
 in the algorithm which is killing performance. Any suggestions?
 ___
 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 mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] positioning a node - XYZ with offset in screen space

2008-06-21 Thread sherman wilcox
I have nodes (models, text, etc.) that are positioned in XYZ
coordinates that I wish to offset in screen space. My question is
what's the best/fastest way to do this. An example follows. I have a
piece of text that acts as a label for a point on a sphere. In this
case that sphere is an osg ellipsoid model generated by virtual planet
builder. I position the text at a given lat/lon/altitude which I
translate to a XYZ world coordinate. However, I wish to offset the
text in screen space by X,Y pixels. Imagine you want to label a point
of interest on this globe but you want the label itself to be offset
(updated every frame) by X pixels in the x-dimension and Y pixels in
the y-dimension. I have one osg::MatrixTransform node acting as the
parent of each text object. I have about 100 of these labels objects.
I need to update the offset of the text every few frames. Doesn't have
to be every frame, I can accept lazy updates - but it is something
that needs to occur rather frequently.

What's the best way to accomplish this? I have something working but
it's rather slow with 50 or more objects. I'm using IntersectVisitor
in the algorithm which is killing performance. Any suggestions?
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] NPOT textures - comments

2008-06-21 Thread sherman wilcox
In the olden days when I'd have a texture that wasn't power of 2 I'd
use a POT (power of two) texture, update the parts of the texture that
I was interested in and fix-up the texture coordinates accordingly.
Nowadays I'm more inclined to use NPOT (non-power of two) or texture
rectangles. Problem is every time I try to use NPOT textures I get
nailed performance wise. If I use texture rectangles no problem -
performance is as you'd expect...it just works. The thing I don't like
about texture rectangles primarily are the lack of NDC
(non-dimensional coordinates). Maybe I'm old fashioned, but I like my
coordinates to be in the range of 0 - 1. Oh, and the lack of mipmaps
are rather disappointing as well, but a small price to pay when you
really only need a 2049 x 1025 texture.

So, what's your experience? Anyone out there sucessfully using NPOT
(not texture rectangles) in the OSG? What's your video
hardware/OS/driver? I'm using some very good nVidia cards (FX4600)
with the latest drivers on Vista - but NPOT performance is terrible.
Perhaps I'm doing something boneheaded.

NPOT - GL_ARB_texture_non_power_of_two:
http://www.opengl.org/registry/specs/ARB/texture_non_power_of_two.txt

Texture rectangles - GL_ARB_texture_rectangle:
http://www.opengl.org/registry/specs/ARB/texture_rectangle.txt
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] New versions of OSG and configuring CMake

2008-06-12 Thread sherman wilcox
To add to what Luigi saidhere's my command line:

cmake -DWIN32_USE_MP=ON
-DGDAL_INCLUDE_DIR:PATH=%rootdir%\3rdparty\gdal\include
-DGDAL_LIBRARY:PATH=%rootdir%\3rdparty\gdal\lib\gdal_i.lib
-DCURL_LIBRARY_DEBUG:PATH=%rootdir%\3rdparty\curl\lib\debug\curllib.lib
-DCURL_LIBRARY:PATH=%rootdir%\3rdparty\curl\lib\release\curllib.lib
-DCURL_INCLUDE_DIR:PATH=%rootdir%\3rdparty\curl\include
-DCMAKE_INSTALL_PREFIX:PATH=%rootdir%\3rdparty\osg\common\OpenSceneGraph
.


I use this in my master build script to build everything. I simply
fire off a single script and go grab some lunch! To use Visual Studio
from the command line after cmake is done I use:

devenv OpenSceneGraph.sln /%1 Debug /project ALL_BUILD /out %logfile%
devenv OpenSceneGraph.sln /%1 Debug /project INSTALL /out %logfile%
devenv OpenSceneGraph.sln /%1 RelWithDebInfo /project ALL_BUILD
/out %logfile%
devenv OpenSceneGraph.sln /%1 RelWithDebInfo /project INSTALL /out %logfile%

where %1 is build or rebuild




On Thu, Jun 12, 2008 at 7:19 PM, Luigi Calori [EMAIL PROTECTED] wrote:
 I presume you are workng on Windows and change build folder.If you just
 update from svn you should not be forced to configure again.
 Anyway, if you want to keep your previous cmake setup, just keep the
 CmakeCache.txt file.
 Otherwise,you can force your defaul configuration by adding -Dvar=value
 tou your cmake command line.
 I usually store my default setup in a cmake command line then run cmakesetup
 to eventually change options afterwards

 Hope it helps

 Brian wrote:

 Hi,

 I must be doing something wrong when using CMakeSetup.  Every time I
 download a new release of OSG, I have to go through the steps of
 reconfiguring CMake to point to all the directories for the various extras
 (GDAL, FLTK, etc.)  I've tried setting up environment variables with names
 like FLTK_LIBRARY or FLTK_INCLUDE_DIR in the hopes that CMake will read
 those and use them to help make my life easier, but it's all in vain.
 Is there an easy way to automatically configure CMake?

 Thanks,
 Brian
 ___
 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 mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] How to stop osgViewer using two monitors/windows

2008-04-21 Thread sherman wilcox
Visual Studio 2005 ... Project Properties = Configuration
Properties = Debugging = Environment ... add OSG_SCREEN=0

Another way is to add _putenv(OSG_SCREEN=0) in your code

On Mon, Apr 21, 2008 at 4:49 AM, Roger James
[EMAIL PROTECTED] wrote:



 How do I stop osgViewer from using both my monitors (windows vista with
 desktop spread over both), or two separate windows. I thought it might be
 something to do with a camera config file, but the newer non Producer
 version does not report this option as available even though it is still
 documented on the wiki.



 I apologise if I have missed something obvious.



 Roger
 ___
 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] faster builds on multiproc systems - VisualStudio2005 2008

2008-04-10 Thread sherman wilcox
Gordon - I do wonder if you disabled parallel project builds and
enabled /MP if the problems you experience would vanish. But, how much
would that hurt performance? That is, which is the bigger performance
boon - /MP or parallel builds.

On Thu, Apr 10, 2008 at 10:20 AM, Gordon Tomlinson
[EMAIL PROTECTED] wrote:
 Hi Mike

 Yes repeating can make the build work in most cases but not all

 We have some very large solutions and lots of dependencies, so there's
 certainly room to stretch this, but we have seen issues on small solutions
 as well

 As said for use it could be a combination of our environment with Network,
 and ClearCase which can be an issue as most of the source will live in
 ClearCase VOBS etc..



 -Original Message-
 From: [EMAIL PROTECTED]

 [mailto:[EMAIL PROTECTED] On Behalf Of Mike
 Weiblen
 Sent: Thursday, April 10, 2008 11:13 AM
 To: OpenSceneGraph Users
 Subject: Re: [osg-users] faster builds on multiproc systems -
 VisualStudio2005 2008

 Hi Gordon,

 So can good binaries be made by just repeating the build until successful
 completion, to bypass race issues?
 Or is there the more nefarious failure of bad binaries being created by an
 otherwise successful-looking process?

 -- mew


  -Original Message-
  From: [EMAIL PROTECTED] [mailto:osg-users-
  [EMAIL PROTECTED] On Behalf Of Gordon Tomlinson
  Sent: Thursday, April 10, 2008 10:04 AM
  To: 'OpenSceneGraph Users'
  Subject: Re: [osg-users] faster builds on multiproc systems - Visual
  Studio2005 2008
 
  Hi Sherman
 
  For us he problems with the linker often not syncing correctly with
 the
  compiler
 
  Then issue when adding manifests once linked would often have timing
  issues and the process could fail ( not always )
 
  And when doing post build steps such as singing assemblies etc the
  timing again would often be off and the process could fail ( not
  always )
 
  This could be just our environment and ClearCase and maybe network
  issues etc.
 
  Seems for others things work fine
 
 
 
  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On Behalf Of
  sherman wilcox
  Sent: Wednesday, April 09, 2008 4:34 PM
  To: OpenSceneGraph Users
  Subject: [osg-users] faster builds on multiproc systems - Visual
 Studio
  2005 2008
 
  This is sort of off-topic but I'm sure interesting to the community
  none the less. I was on the phone with a fellow OSG developer earlier
  today complaining how slow the builds are on Windows and how I have
  this
 quad
  core
  sitting here not being fully utilized by my compiler.
  He touted how his Mac could perform parallel builds and how much
 faster
  it
  was. So off I went to see if there's a way to do this with my
 compiler,
  Visual Studio 2005. Lo and behold I found an undocumented way to
 enable
  multi-processor builds using VS 2005. I couldn't believe it. It was
  like someone gave me a gift.
 
 
  http://blog.280z28.org/archives/2007/10/17/
 
  http://lahsiv.net/blog/?p=40
 
  So, could some of you guys try this as well and let me know how you
 get
  on?
  ___
  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 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 mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] faster builds on multiproc systems - Visual Studio 2005 2008

2008-04-09 Thread sherman wilcox
This is sort of off-topic but I'm sure interesting to the community
none the less. I was on the phone with a fellow OSG developer earlier
today complaining how slow the builds are on Windows and how I have
this quad core sitting here not being fully utilized by my compiler.
He touted how his Mac could perform parallel builds and how much
faster it was. So off I went to see if there's a way to do this with
my compiler, Visual Studio 2005. Lo and behold I found an undocumented
way to enable multi-processor builds using VS 2005. I couldn't believe
it. It was like someone gave me a gift.


http://blog.280z28.org/archives/2007/10/17/

http://lahsiv.net/blog/?p=40

So, could some of you guys try this as well and let me know how you get on?
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] faster builds on multiproc systems - Visual Studio 2005 2008

2008-04-09 Thread sherman wilcox
Gordon, the issues you encountered - were they obvious issues as in
linker errors or were they more subtle like random crashes and the
like?

On Wed, Apr 9, 2008 at 4:04 PM, Gordon Tomlinson
[EMAIL PROTECTED] wrote:
 Hi

 We avoid using this feature at work on our projects as we have found the VS
 linker and compiler do not always see eye to eye when using parallel builds
 and also find a lot of manifest issue, but that's our experience

 Now back in the good old days on good SGI 32 processor monster parallel
 build work like a charm and screamed along ..

 Regards
 Gordon


 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of sherman
 wilcox
 Sent: Wednesday, April 09, 2008 4:34 PM
 To: OpenSceneGraph Users
 Subject: [osg-users] faster builds on multiproc systems - Visual Studio
 2005 2008

 This is sort of off-topic but I'm sure interesting to the community none the
 less. I was on the phone with a fellow OSG developer earlier today
 complaining how slow the builds are on Windows and how I have this quad core
 sitting here not being fully utilized by my compiler.
 He touted how his Mac could perform parallel builds and how much faster it
 was. So off I went to see if there's a way to do this with my compiler,
 Visual Studio 2005. Lo and behold I found an undocumented way to enable
 multi-processor builds using VS 2005. I couldn't believe it. It was like
 someone gave me a gift.


 http://blog.280z28.org/archives/2007/10/17/

 http://lahsiv.net/blog/?p=40

 So, could some of you guys try this as well and let me know how you get on?
 ___
 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 mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] 64bit CMake on Vista64 question

2008-04-04 Thread sherman wilcox
Anyone had any success getting CMake to construct x64 OSG build
targets in one of the 64bit flavors of Windows? I'm using Vista64 but
I'd imagine XP64 is the same. We have a developer investigating this
but I thought I'd ping the list to see if anyone else is doing this.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] 64bit CMake on Vista64 question

2008-04-04 Thread sherman wilcox
Just to be clear, did cmake construct the x64 build targets or was
that something you did by hand after cmake built the solution and
vcproj files?

I'm using Visual Studio 2005 Pro SP1

On Fri, Apr 4, 2008 at 3:36 PM, Wojciech Lewandowski
[EMAIL PROTECTED] wrote:
 Hi,

 We did it several months ago. We keep the project untouched from then. As
 far as I remember one needs to clear cmake cache and select VC 200x 64-bit
 from target build dialog. You may need a Standard/Pro version of Visual
 Studio. We were unable to build it with Express (although we tried hard).
 With Standard version it was just a matter of waitnig for the compiler and
 linker to build projects.
 64 bit third party libs could be a pain in the neck, though. We had to
 rebuild few of them and each had different build philososphy (makefile vs
 solution/ naming conventions/ static vs shared libs/ macro defintions /
 dependencies etc) so the best is to look for prebuild libs on the net. I
 hope they will be easier to find today.

 Cheers,
 Wojtek


 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] Behalf Of sherman
 wilcox
 Sent: Friday, April 04, 2008 10:11 PM
 To: OpenSceneGraph Users
 Subject: [osg-users] 64bit CMake on Vista64 question


 Anyone had any success getting CMake to construct x64 OSG build
 targets in one of the 64bit flavors of Windows? I'm using Vista64 but
 I'd imagine XP64 is the same. We have a developer investigating this
 but I thought I'd ping the list to see if anyone else is doing this.
 ___
 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 mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] osgNETDemo

2008-03-17 Thread sherman wilcox
I couldn't tell from reading your post - but if you're not compiling
the OSG yourself (IE...running a binary distribution), grab one of the
developer snapshots and compile that.

On Mon, Mar 17, 2008 at 4:39 PM,  [EMAIL PROTECTED] wrote:
 Hello All,

 I have been working with Phil Tessier on some work using OSG in a managed
 code environment.  We tried using OsgDotNet, but we had some problems with
 that, and others on this list recommended we use C++/CLI directly to wrap
 just what we need form OSG directly, and there is an example provided on the
 language wrappers page (osgCppCLIDemo.rar).  I was able to get that
 compiled, but it crashes with a __RTDynamicCast exception deep within
 osgViewer.dll.   The last thing I can see in the call stack is in the
 InitOSG() function, in the line that uses
 osg::GraphicsContext::createGraphicsContext(traits.get());

 The call stack looks funny to me, because it calls osg.dll, and then
 osgViewer.dll.  I am using OSG version 2.0 (because it is compatible with
 OsgDotNet) and Visual Studio 2005.  Perhaps I need to upgrade OSG?

 Thanks,
 -- Rick
 ___
 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] shader leakage (WAS traversal question w/latest developerrelease-blacknodes)

2008-02-25 Thread sherman wilcox
Thanks Mike - glad to hear the problem manifested for you as well. If
I can be of any additional assistance let me know.


On Mon, Feb 25, 2008 at 12:03 PM, Mike Weiblen
[EMAIL PROTECTED] wrote:
 Hi Sherman,

 Finally had a chance to look at your repro, and I agree it is an OSG
 bug.  It's a consequence of the unique handling of glProgram state
 within OpenGL; I thought we'd fixed this before, but you seem to have
 uncovered a different failure vector.

 In the repro example you gave me, since I didn't have a osgdem earth
 model, I just used a earth-sized sphere, note the line below for the
 easy workaround:

 //osg::ref_ptrosg::Node loadedModel =
 osgDB::readNodeFile(c:/brokaw/system/earth/earth.ive);
 osg::Geode* geode( new osg::Geode() );
 geode-addDrawable(new osg::ShapeDrawable(new
 osg::Sphere(osg::Vec3(0,0,0), 6.371e6f )));
 geode-getOrCreateStateSet()-setAttribute( new osg::Program );   //
 --- workaround for shader leakage
 osg::ref_ptrosg::Node loadedModel = geode;

 That empty osg::Program above on the scene root explicitly forces the
 scene to fixed-function.

 Without it, the problem seems that fixed-function default isn't enforced
 til a cull traversal, so there's this hole that the scene can accidently
 be affected by a leaking osg::Program binding.

 I'll be submitting a real fix rsn.

 cheers
 -- mew




  -Original Message-
  From: [EMAIL PROTECTED] [mailto:osg-users-
  [EMAIL PROTECTED] On Behalf Of sherman wilcox
  Sent: Thursday, February 14, 2008 8:48 PM
  To: OpenSceneGraph Users
  Subject: Re: [osg-users] traversal question w/latest developerrelease-
  blacknodes
 
  mew - Didn't realize there was a potential shader connection till a
  tad later. Anyway, I spent more time on this yesterday and managed to
  build a sample app that is much smaller and less complicated than the
  app I originally found the problem in. There's a bit of propriety code
  in this sample app - nothing I wouldn't mind sharing with you if you
  want to take a peek.
 
  The thing that bugs me is why is this shader effecting other osg
  nodes. Now, there could most certainly be a bug in my code somewhere -
  but I'm using OSG code - I don't *think* I'm going outside of OSG and
  doing messing with OpenGL states. So, if I'm using all OSG code then I
  would think that even if I've got a bad shader, or doing something I
  shouldn't be - then that error should be confined to that node and its
  children and should NOT travel to its siblings.

 ___
 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] another one - osg and C#

2008-02-17 Thread sherman wilcox
Glenn - ever run into any issues where you found portions of OSG not
to work with C++/CLI? I believe the OSG/C# folks run into this a
lot. Any odd difficulties or does everything just work?

Follow-up question - have you written any OSG/C++/CLI WPF apps?
Winforms? How well does all this stuff play together?

On Feb 16, 2008 10:16 PM, Glenn Waldron [EMAIL PROTECTED] wrote:
 Sherman,
 I'll vouch for it ... I've written dozens of apps using C++/CLI and OSG and
 it works great. It is very convenient to be able to mix managed and
 unmanaged code virtually at will (there are a few restrictions) as the
 interop is handled transparently by the CLR. Plus with .NET 2.0, it's simple
 to write an OSG .NET Control in a C++/CLI assembly, and then use it in all
 your C# UI code.
 -gw

 --
 Glenn Waldron : Pelican Mapping : http://pelicanmapping.com : 703-652-4791



 On Feb 16, 2008 10:10 PM, sherman wilcox [EMAIL PROTECTED] wrote:
  Ok - so it sounds as if using C# with OSG is bad idea. Sounds possible
  - just painful. On the plus side I hear (on occasion) good things said
  about C++/CLI. Can anyone else comment on their experience using OSG
  and C++/CLI?
 
 
 
 
  On Feb 14, 2008 10:48 AM, hesicong2006 [EMAIL PROTECTED] wrote:
   Hi,
   You should try OSG.NET project, but the project does not contains every
   feature OSG could provide. A much better solution will be use of
   C++/CLI, this language can create mix native C++ and managed code. The
   main C# UI design benefit is also contained in C++/CLI. I have use
   C++/CLI to integrate OSG and .NET, very well, you should try it. But the
   plain will be the much lower compile speed due to lots of inline code of
   OSG.
  
  
   sherman wilcox wrote:
I've read a few posts and I'm a bit fuzzy on the subject. I have an
OSG app wrapped up in a C++ library. Now I need a UI. I can attach
this and drive this libarary from a console app, MFC GUI, or even the
standard Windows API, etc. - All in C++. However, I'm considering
using C#. I've heard lots of good things about C# from a UI
development perspective. From an OSG/C# point of view - there seems to
be lots of pain.
   
I'm not a C# developer - it's all Greek to me - so what I'm imagining
may not be practical in reality hence this post. Is it possible to
link in my OSG app wrapped up in a C++ blanket and use my own API from
with a C# GUI? Is it painful? What would I lose by going this route?
Is possible that at some point I won't be able to take advantage of
some latest OSG feature due to some unforeseen incapability? My
current UIs (I'm thinking of one MFC UI in particular) don't really
interact with the OSG - that's all handled by my own C++ API. I'm just
not sure how well all this would glue together using C#.
   
Can some of the veterans comment?
   
   
  
  
   ___
   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 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] traversal question w/latest developer release-blacknodes

2008-02-14 Thread sherman wilcox
mew - Didn't realize there was a potential shader connection till a
tad later. Anyway, I spent more time on this yesterday and managed to
build a sample app that is much smaller and less complicated than the
app I originally found the problem in. There's a bit of propriety code
in this sample app - nothing I wouldn't mind sharing with you if you
want to take a peek.

The thing that bugs me is why is this shader effecting other osg
nodes. Now, there could most certainly be a bug in my code somewhere -
but I'm using OSG code - I don't *think* I'm going outside of OSG and
doing messing with OpenGL states. So, if I'm using all OSG code then I
would think that even if I've got a bad shader, or doing something I
shouldn't be - then that error should be confined to that node and its
children and should NOT travel to its siblings.

You can email me privately if you want and I'll be happy to share the
code with you.

On Thu, Feb 14, 2008 at 5:04 PM, Mike Weiblen [EMAIL PROTECTED] wrote:
 Hi,

 Usually try to keep an eye out for shader questions, but this title did
 not attract my attention.  I'm leaving the title unmodified so you'll
 see this response, but if there's still an open question, pls start a
 new appropriately-titled thread with the current state of your
 investigation.

 Way way back, there was an issue of OSG shader state leakage.  It's been
 fixed a long time (years?), 'course that doesn't preclude another
 failure mode.

 Cheers
 -- mew





  -Original Message-
  From: [EMAIL PROTECTED] [mailto:osg-users-
  [EMAIL PROTECTED] On Behalf Of Paul Martz
  Sent: Wednesday, February 13, 2008 10:07 AM
  To: 'OpenSceneGraph Users'
  Subject: Re: [osg-users] traversal question w/latest developer
 release-
  blacknodes
 
  (Hm, shaders. Maybe someone with more experience with shaders in OSG
  can
  read and post an opinion?)
 
  Hi Sherman -- Interesting issue.
 
  OpenGL is a state machine, and if you're just using raw OpenGL, then
  you
  could enable blending, for example, never change blending state again,
  and
  blending would be enabled for all subsequent geometry.
 
  OSG adds a new level of functionality on top of that. As you traverse
 a
  scene graph, state changes are pushed and popped hierarchically, which
  is
  what most apps expect. If blending is off in a parent Node but on in
  the
  first child, blending is restored to a disabled state before
 processing
  the
  other children.
 
  Not all state: Color, as I mentioned previously, is not pushed and
  popped.
  So, if you change the color in a Drawable, and then a subsequent
  sibling (or
  even a distant cousin) Geometry is missing its color array, the
  previous
  color persists (due to OpenGL's state machine nature). I'm not sure
 why
  OSG
  intentionally doesn't push/pop color, but it simply doesn't, and if
 you
  always specify color for Drawables that require specific colors, this
  is not
  an issue.
 
  When it comes to shaders, though, I'm not sure how they behave. If a
  Node
  binds a Program, does OSG unbind it before processing sibling Nodes?
  This is
  a question better posed to someone like Mike W. or Bob K...
 =Paul
 
 
   I've found a few clues this evening. Not sure why things are
   behaving the way they are - I'm probably abusing the OSG in
   my overridden
   traverse(...) function. My node has a shader attached. If I
   do NOT attach that shader to the stateset, no problems. Read on
  
   On Feb 12, 2008 3:40 PM, Paul Martz [EMAIL PROTECTED] wrote:
 I have a class that inherits from osg::Group. In this class I'm
 overriding the traverse function. It is written in such a
   way that
 the CULL_VISITOR doesn't have an opportunity to call
 osg::Group::traverse(nv). When I add this object to the
   scenegraph
 all the nodes in my scene go black. Even if this class is
   a child -
 all the nodes (including parent nodes) appear black.
   
The presence of this custom Node is changing the color of your
geometry so that they render black? E.g., against a non-black
background, you see them render? Or, by appear black, do
   you mean they just don't show up?
   
What color is your Geometry supposed to render?
  
   The only other node is a bluemarble ellipsoid produced by
   osgdem. It's entirely black when I intrdouce my node into the
   scenegraph. If the node (my custom node) is a sibling, the
   bluemarble node goes black.
  
   
Does your custom Node support the .osg file format? If so, have
 you
dumped your scene to a .osg file to see if anything is amiss?
   
  
   No - doesn't support OSG.
  
Have you tried to reproduce the problem with a very simple
   scene, like
just a single triangle plus your custom Node? Then you could step
through in the debugger and determine what's going on.
   
Have you tried capturing the OpenGL output with GLIntercept?
   
In the past, whenever I've seen state bleed from one Node
   to a sibling
Node, it is 

Re: [osg-users] traversal question w/latest developer release -blacknodes

2008-02-13 Thread sherman wilcox
Is strange. I'm using all OSG code. Is possible I've found some odd
OSG bug - but I think is more likely that I'm doing something that's
not intended and am experiencing a side effect. I'm going to spend a
bit of time and see if I can simplify this problem down to a trivial
example.

On Feb 13, 2008 10:07 AM, Paul Martz [EMAIL PROTECTED] wrote:
 (Hm, shaders. Maybe someone with more experience with shaders in OSG can
 read and post an opinion?)

 Hi Sherman -- Interesting issue.

 OpenGL is a state machine, and if you're just using raw OpenGL, then you
 could enable blending, for example, never change blending state again, and
 blending would be enabled for all subsequent geometry.

 OSG adds a new level of functionality on top of that. As you traverse a
 scene graph, state changes are pushed and popped hierarchically, which is
 what most apps expect. If blending is off in a parent Node but on in the
 first child, blending is restored to a disabled state before processing the
 other children.

 Not all state: Color, as I mentioned previously, is not pushed and popped.
 So, if you change the color in a Drawable, and then a subsequent sibling (or
 even a distant cousin) Geometry is missing its color array, the previous
 color persists (due to OpenGL's state machine nature). I'm not sure why OSG
 intentionally doesn't push/pop color, but it simply doesn't, and if you
 always specify color for Drawables that require specific colors, this is not
 an issue.

 When it comes to shaders, though, I'm not sure how they behave. If a Node
 binds a Program, does OSG unbind it before processing sibling Nodes? This is
 a question better posed to someone like Mike W. or Bob K...
   =Paul



  I've found a few clues this evening. Not sure why things are
  behaving the way they are - I'm probably abusing the OSG in
  my overridden
  traverse(...) function. My node has a shader attached. If I
  do NOT attach that shader to the stateset, no problems. Read on
 
  On Feb 12, 2008 3:40 PM, Paul Martz [EMAIL PROTECTED] wrote:
I have a class that inherits from osg::Group. In this class I'm
overriding the traverse function. It is written in such a
  way that
the CULL_VISITOR doesn't have an opportunity to call
osg::Group::traverse(nv). When I add this object to the
  scenegraph
all the nodes in my scene go black. Even if this class is
  a child -
all the nodes (including parent nodes) appear black.
  
   The presence of this custom Node is changing the color of your
   geometry so that they render black? E.g., against a non-black
   background, you see them render? Or, by appear black, do
  you mean they just don't show up?
  
   What color is your Geometry supposed to render?
 
  The only other node is a bluemarble ellipsoid produced by
  osgdem. It's entirely black when I intrdouce my node into the
  scenegraph. If the node (my custom node) is a sibling, the
  bluemarble node goes black.
 
  
   Does your custom Node support the .osg file format? If so, have you
   dumped your scene to a .osg file to see if anything is amiss?
  
 
  No - doesn't support OSG.
 
   Have you tried to reproduce the problem with a very simple
  scene, like
   just a single triangle plus your custom Node? Then you could step
   through in the debugger and determine what's going on.
  
   Have you tried capturing the OpenGL output with GLIntercept?
  
   In the past, whenever I've seen state bleed from one Node
  to a sibling
   Node, it is usually because the sibling Node's Geometry
  lacks a color array.
  
 
  I suspect either one of (at least) two things:
 
  1) I'm abusing OSG some manner and the code is responding in
  kind. In other words, I'm doing something I shouldn't be and
  I'm getting undefined behavior.
 
  OR
 
  2) There is some sort of state leakage (of my shader) issue
  between sibling nodes. If this is leakage - is it a bug or not?
 
What I did to patch things is to hack my class such that the
CULL_VISITOR is allowed to call osg::Group::traverse(nv);
  at least
once at the start. This seems to address the problem, albeit in a
kludgy sort of way. I'd like to know if:
   
- this is a new OSG bug?
  
   Are you saying you tried this same thing in v2.2 and the problem
   didn't occur?
 
  I thought this was new - but went back and tried older
  versions of OSG and the problem persists. I have a fix (allow
  one cull traversal on my custom node)...but it seeems kludgy.
  I'm either doing something terribly wrong OR I've found some
  bug. It's probably the former.
 
  It does strike me as add that performing a single cull
  traversal addresses the issue. Seems as though some state
  isn't be set properly unless this cull traversal is allowed
  to pass through.

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

 

[osg-users] another one - osg and C#

2008-02-13 Thread sherman wilcox
I've read a few posts and I'm a bit fuzzy on the subject. I have an
OSG app wrapped up in a C++ library. Now I need a UI. I can attach
this and drive this libarary from a console app, MFC GUI, or even the
standard Windows API, etc. - All in C++. However, I'm considering
using C#. I've heard lots of good things about C# from a UI
development perspective. From an OSG/C# point of view - there seems to
be lots of pain.

I'm not a C# developer - it's all Greek to me - so what I'm imagining
may not be practical in reality hence this post. Is it possible to
link in my OSG app wrapped up in a C++ blanket and use my own API from
with a C# GUI? Is it painful? What would I lose by going this route?
Is possible that at some point I won't be able to take advantage of
some latest OSG feature due to some unforeseen incapability? My
current UIs (I'm thinking of one MFC UI in particular) don't really
interact with the OSG - that's all handled by my own C++ API. I'm just
not sure how well all this would glue together using C#.

Can some of the veterans comment?
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] traversal question w/latest developer release - blacknodes

2008-02-12 Thread sherman wilcox
Paul - thanks for the suggestions. I've found an older code tree of
mine from November 07 and everything seemed to work there. I'm
investigating.

On Feb 12, 2008 3:40 PM, Paul Martz [EMAIL PROTECTED] wrote:
  I have a class that inherits from osg::Group. In this class
  I'm overriding the traverse function. It is written in such a
  way that the CULL_VISITOR doesn't have an opportunity to call
  osg::Group::traverse(nv). When I add this object to the
  scenegraph all the nodes in my scene go black. Even if this
  class is a child - all the nodes (including parent nodes)
  appear black.

 The presence of this custom Node is changing the color of your geometry so
 that they render black? E.g., against a non-black background, you see them
 render? Or, by appear black, do you mean they just don't show up?

 What color is your Geometry supposed to render?

 Does your custom Node support the .osg file format? If so, have you dumped
 your scene to a .osg file to see if anything is amiss?

 Have you tried to reproduce the problem with a very simple scene, like just
 a single triangle plus your custom Node? Then you could step through in the
 debugger and determine what's going on.

 Have you tried capturing the OpenGL output with GLIntercept?

 In the past, whenever I've seen state bleed from one Node to a sibling Node,
 it is usually because the sibling Node's Geometry lacks a color array.

  What I did to patch things is to hack my class such that the
  CULL_VISITOR is allowed to call osg::Group::traverse(nv); at
  least once at the start. This seems to address the problem,
  albeit in a kludgy sort of way. I'd like to know if:
 
  - this is a new OSG bug?

 Are you saying you tried this same thing in v2.2 and the problem didn't
 occur?
   -Paul

  - anyone else is experiencing this?
  - or perhaps I'm abusing things in such way that is ill-advised?
 
  Comments?
  ___
  osg-users mailing list
  osg-users@lists.openscenegraph.org
  http://lists.openscenegraph.org/listinfo.cgi/osg-users-opensce
 negraph.org

 ___
 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] traversal question w/latest developer release - black nodes

2008-02-12 Thread sherman wilcox
I have a class that inherits from osg::Group. In this class I'm
overriding the traverse function. It is written in such a way that the
CULL_VISITOR doesn't have an opportunity to call
osg::Group::traverse(nv). When I add this object to the scenegraph all
the nodes in my scene go black. Even if this class is a child - all
the nodes (including parent nodes) appear black.

What I did to patch things is to hack my class such that the
CULL_VISITOR is allowed to call osg::Group::traverse(nv); at least
once at the start. This seems to address the problem, albeit in a
kludgy sort of way. I'd like to know if:

- this is a new OSG bug?
- anyone else is experiencing this?
- or perhaps I'm abusing things in such way that is ill-advised?

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


Re: [osg-users] traversal question w/latest developer release - blacknodes

2008-02-12 Thread sherman wilcox
I've found a few clues this evening. Not sure why things are behaving
the way they are - I'm probably abusing the OSG in my overridden
traverse(...) function. My node has a shader attached. If I do NOT
attach that shader to the stateset, no problems. Read on

On Feb 12, 2008 3:40 PM, Paul Martz [EMAIL PROTECTED] wrote:
  I have a class that inherits from osg::Group. In this class
  I'm overriding the traverse function. It is written in such a
  way that the CULL_VISITOR doesn't have an opportunity to call
  osg::Group::traverse(nv). When I add this object to the
  scenegraph all the nodes in my scene go black. Even if this
  class is a child - all the nodes (including parent nodes)
  appear black.

 The presence of this custom Node is changing the color of your geometry so
 that they render black? E.g., against a non-black background, you see them
 render? Or, by appear black, do you mean they just don't show up?

 What color is your Geometry supposed to render?

The only other node is a bluemarble ellipsoid produced by osgdem. It's
entirely black when I intrdouce my node into the scenegraph. If the
node (my custom node) is a sibling, the bluemarble node goes black.


 Does your custom Node support the .osg file format? If so, have you dumped
 your scene to a .osg file to see if anything is amiss?


No - doesn't support OSG.

 Have you tried to reproduce the problem with a very simple scene, like just
 a single triangle plus your custom Node? Then you could step through in the
 debugger and determine what's going on.

 Have you tried capturing the OpenGL output with GLIntercept?

 In the past, whenever I've seen state bleed from one Node to a sibling Node,
 it is usually because the sibling Node's Geometry lacks a color array.


I suspect either one of (at least) two things:

1) I'm abusing OSG some manner and the code is responding in kind. In
other words, I'm doing something I shouldn't be and I'm getting
undefined behavior.

OR

2) There is some sort of state leakage (of my shader) issue between
sibling nodes. If this is leakage - is it a bug or not?

  What I did to patch things is to hack my class such that the
  CULL_VISITOR is allowed to call osg::Group::traverse(nv); at
  least once at the start. This seems to address the problem,
  albeit in a kludgy sort of way. I'd like to know if:
 
  - this is a new OSG bug?

 Are you saying you tried this same thing in v2.2 and the problem didn't
 occur?

I thought this was new - but went back and tried older versions of OSG
and the problem persists. I have a fix (allow one cull traversal on my
custom node)...but it seeems kludgy. I'm either doing something
terribly wrong OR I've found some bug. It's probably the former.

It does strike me as add that performing a single cull traversal
addresses the issue. Seems as though some state isn't be set properly
unless this cull traversal is allowed to pass through.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Heap and Out Of Memory error on XP

2008-01-30 Thread sherman wilcox
To toss my 2cents in you could also investigate the /LARGEADDRESSAWARE
switch. In addition, I'd recommend looking into a new heap manager.
I've had success with SmartHeap by MicroQuill.

Do you have to use MFC? MFC will fragment the heap a bit by loading
DLLs all over the place. To illustrate the impact of this behavior
build a simple consolse app, a basic MFC dialog app, and a no-frills
Win32 SDK based app. In each app attempt allocate 2GB of RAM in
various chunk sizes. The results may surprise you. My point is if you
can get away from using MFC that might help. MFC is a good method to
develop user interfaces on Win32 systems (or QT) but MFC does have its
drawbacks.

I'd strongly suggest you get an eval for SmartHeap (assuming you have
budget) and see if that helps - it's trivial to plug in to existing
code.

On Jan 30, 2008 9:47 AM, Stephen Northcott [EMAIL PROTECTED] wrote:
 Thanks to both of you..

 Yeah (not a dig here as OS X has it's own memory issues) but I am a
 bit spoiled by the memory management that is offered by OS X for lazy
 programmers like me in this case!! The amazing thing is on Parallels
 on the Mac I have had none of this in Visual Studio, but when
 migrating to a 'real' PC it all started falling apart! Hrmph!

 I have done a lot of reading this afternoon, and what you both say
 makes sense.

 I have found that by allowing the heap a little time to tidy itself
 up, and sticking a few small allocates and de-allocates in strategic
 places I have alleviated the problem somewhat.

 Not a great fix, but it gets me through for now.

 I have started looking at some ways to chunk down the 500MB block and
 will have to hope I can page between sections at appropriate times..

 Who ever said programming should be easy anyway and memory should be a
 nice empty block of free space!!

 Thanks for the input.

 Kind regards
 Stephen.


 On Jan 30, 2008, at 10:29 PM, Gordon Tomlinson wrote:

  HI
 
  Firstly under 32 bit Windows your process does not have access to 3gb
  memory, a process on windows can only access just over 1.8gb of
  memory for
  the heap.
 
  Secondly windows is very very dump when it comes to loading programs
  and
  DLL's it will load them all over the place in memory, what this
  means is
  that in many case trying to allocate 500mb of contigous memory will
  be in
  many cases not possible,
 
  At my company for a core product we have some sneeky tricks that we
  are
  forced to do inorder to ensure we get large contigous pieces of
  memory,
  this only work well if you do not have lots of other aplications
  running
  or if you have been running for a while
 
  Irix had a similar issue in that Irix would load system DLL's righ
  in the
  middle of the memory stack, for Performer the trick was to run all
  the .so
  through a clear scipt the forced them to load in a low or high part
  of the
  memory,  you can do this for windows Dll's but its not as simple as
  it was
  on Irix
 
  H... Where to start?
 
  1. Windows will hog quite a bit of memory to begin with, so you don't
  really have 3G available.
  My 3G machine shows 2.5G available after windows loads.
  2. Even if you did, the per process limit for 32 bit is 2G.
  3. I think windows even restricts that a bit further.
  4. MFC is a bloated beast that will take some of that 2G.
 
  Anyway, you would be better off posting some code that did the
  following.
 
  1. allocate a huge amount of space (500MB)
  2. Attach it as vertex data to some OSG nodes.
  3. Point out where it blows up. (if that's all it takes).
 
  You could modify osgviewer to do this.
 
  Otherwise, there are lots of different things that could be wrong.
 
  Chris
 
 
 
 
 
 
  -Original Message-
  From: [EMAIL PROTECTED]
  [mailto:[EMAIL PROTECTED] On Behalf Of
  Stephen
  Northcott
  Sent: Wednesday, January 30, 2008 4:35 AM
  To: OpenSceneGraph Users
  Subject: [osg-users] Heap and Out Of Memory error on XP
 
  I am getting Out Of Memory errors from OSG.
 
  I know why, kind of, but am surprised this is not handled more
  elegantly. Can anyone shed some light for me..
 
  I have a very large data-set which requires being in memory at all
  times. Unprocessed it is around 750MB++.
  It is typically 500MB after I have loaded it and formatted it for
  efficiency of storage.
 
  I load it in chunks (rather than load it as a 750MB++ raw data
  file) and
  then process it to the 'working' 500MB chunk.
  But at the end of all this I still need to have the resultant 500MB
  structure sitting in memory.
 
  On a PC with 3GB of RAM I am able to do this, however, when I then
  try
  to initialize a scene graph based on about 1 or 2% of this data I
  get an
  Out Of Memory error from OSG.
 
  This is running in MFC on XP.
 
  I could, I suppose, write a wrapper class to access this 500MB
  chunk of
  data, and put it into smaller 50MB chunks, for example.
  But I don't see why I should have to when I have a 3GB machine for
  this
  task!
  I am also 

Re: [osg-users] Mathematical foundations

2008-01-06 Thread sherman wilcox
In addition to the excellent advice from everyone else I would highly
recommend taking a linear algebra class (and any needed
pre-requisites) at your local university.

On Jan 6, 2008 6:27 AM, Renan Mendes [EMAIL PROTECTED] wrote:
 Hi everyone,

  Since I'm new on the whole computer graphics world, I don't have the
 mathematical foundations needed to fully comprehend the geometric
 transformations involved in a scene graph and used by OSG in its methods.
 I'd like to ask anybody who knows about a good website that deals with this
 kind of subject. Thanks in advance.

  Renan M Z Mendes

 ___
 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] Changing SceneData

2007-12-28 Thread sherman wilcox
Here's a link with a decent intro to osg reference pointers:

http://andesengineering.com/OSG_ProducerArticles/RefPointers/RefPointers.html

On Dec 28, 2007 10:40 AM, Gordon Tomlinson [EMAIL PROTECTED] wrote:

 Assuming your not already using reference pointers

 OSG uses reference counting to aid in memory clean up and all OSG nodes are
 derived from reference counted objects

 When you add a node to a parent or the scene its reference count increments
 when it is removed it is decremented, in your case its reference count hits
 zero so the node and its attached state and children will all be delete (
 assuming your not using ref_ptr's ) see the OSG web site or my FAQ's at
 vis-sim.com for more info

 So basically you need to use reference pointer objects and not raw pointers
 to you OSG nodes e.g

 ref_ptrosg::Group m_root1 = new osgGroup;

 ref_ptrosg::Group m_root2 = new osgGroup;

 m_viewer.setSceneData( m_root1.get() );





 __
 Gordon Tomlinson

 Email   : [EMAIL PROTECTED]
 Website : www.vis-sim.com www.gordontomlinson.com

 __

 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 maruti
 borker
 Sent: 28 December 2007 13:51
 To: OpenSceneGraph Users
 Subject: [osg-users] Changing SceneData




 I have a single viewer , and two different root nodes ... When the program
 loads i initialize the viewer with the first root . Then on a keypress i
 change my viewer scene data to second root . And i also have a kepress by
 which the viewer should go back to earlier root  ( i,e first root ) . The
 first keypress is working .. but the second key press is giving a
 segmentation fault ...On debuggin i found that the
 viewer.setSceneData(root1) is giving  a seg fault.

 Any idea why this is happening ??
 Cant we change hte sceneData in between ?
 --
 --
 Maruti Borker
 IIIT Hyderabad
 Website:- http://students.iiit.ac.in/~maruti
 Blog:- http://marutiborker.wordpress.com
 ___
 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] Building a GUI in osg

2007-12-27 Thread sherman wilcox
Lots of links to UI toolkits, is very dated but might lead to something useful:

http://www.geocities.com/SiliconValley/Vista/7184/guitool.html


On Dec 27, 2007 6:17 AM, maruti borker [EMAIL PROTECTED] wrote:
 Is there any external library which supports this ???




 On Dec 21, 2007 4:02 PM, Sashidhar Guntury [EMAIL PROTECTED]
 wrote:
 
 
 
  Hi
I am building an application which needs to have a small menu
 where people can click around, and do all that sort of stuff. Is there any
 library or class which gives this functionality by default. I have started
 making a few generic buttons using HUD and giving them the capability of
 handling picks, but then if there is some library for the aforementioned
 reason, it would save a lot of time.
 
   thanks!
 
  Bye
  Sashidhar
 
  ___
  osg-users mailing list
  osg-users@lists.openscenegraph.org
  http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
 
 



 --
 --
 Maruti Borker
 IIIT Hyderabad
 Website:- http://students.iiit.ac.in/~maruti
 Blog:- http://marutiborker.wordpress.com
 ___
 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] ViewerEventHandlers.cpp doesn't compile, can't include values.h

2007-12-24 Thread sherman wilcox
In the Inventor plugin there is:

#ifdef __linux
#include values.h
#endif
#ifdef __APPLE__
#include float.h
#endif


So, perhaps float.h in lieu of limits.h?

On Dec 24, 2007 6:01 PM, Rafa Gaitan [EMAIL PROTECTED] wrote:
 Hi Paul and Mike,

 The problem is the same in MacOSX, values.h is not
 found, however, the documentation says that limits.h provides
 the same functionality, so maybe an adecuate ifdef could be
 the solution.

 Rafa.




 On Dec 24, 2007 10:38 PM, Mike Weiblen  [EMAIL PROTECTED] wrote:
  Hi, I just ran into this too.  In case gcc needs it, the comments in
 value.h say to instead use limits.h and/or float.h
  -- mew
 
 
 
 
 
 
  On Dec 24, 2007 3:16 PM, Paul Martz  [EMAIL PROTECTED] wrote:
 
  
  
  
  
  
   Hi Robert -- I ran into this with current SVN today.
 ViewerEventHandlers.cpp does a #include values.h but the VS8 compiler
 complains that it can't find the header file.
  
   I deleted this line in my local copy and the file appeared to compile
 fine.
  
   Paul Martz
   Skew Matrix Software LLC
   http://www.skew-matrix.com
   303 859 9466
  
   ___
   osg-users mailing list
   osg-users@lists.openscenegraph.org
  
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
  
  
 
 
 
  --
  Mike Weiblen -- Austin Texas USA -- http://mew.cx/
  ___
  osg-users mailing list
  osg-users@lists.openscenegraph.org
  http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
 
 



 --
 Rafael Gaitán Linares
 Instituto de Automática e Informática Industrial   http://www.ai2.upv.es
 Ciudad Politécnica de la Innovación
 Universidad Politécnica de Valencia
 ___
 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] GIS vector suggest

2007-12-23 Thread sherman wilcox
http://osggis.org/

On Dec 23, 2007 1:16 AM, MingWei [EMAIL PROTECTED] wrote:
 Hi EveyOne!

 My Application needs to render vector like line or polygon with different
 color (transparent effect) on the surface the terrain. And the users can
 select to load or unload the vector layer.

 I have no idea about this. hope your suggest.

 Thanks.


 ___
 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] Running OSG on Vista

2007-12-19 Thread sherman wilcox
Sounds like a driver issue. I have been running various flavors of OSG
on Vista x64 for months on different hardware configurations.

On Dec 19, 2007 6:24 AM, Franclin Foping [EMAIL PROTECTED] wrote:
 Hello Everybody,
  I am trying to run a simple code on Vista and it looks like I have got a
 black screen as output.
  I have installed OSG 2 on Vista and Linux. OSG works perfectly on Linux.
  However I have got some issues on Vista.
  As mentioned early, I cannot run some codes, even osglogo doesn't work.
  For instance, the following code compiles but doesn't run on Vista:

 #include osgDB/ReadFile
 #include osgDB/WriteFile
 #include osgViewer/Viewer
 #include osgViewer/ViewerEventHandlers
 #include osgGA/TrackballManipulator
 #include osg/ShapeDrawable
 using namespace std;


 int main()
 {
 osgViewer::Viewer viewer;
 osg::ref_ptrosg::Group root (new osg::Group);

 osg::ref_ptrosg::Node fishnode
 (osgDB::readNodeFile(Oyanirami0.3ds));

 root-addChild(fishnode.get());

 bool result = osgDB::writeNodeFile(*(root.get()),simple.osg);

 viewer.setSceneData( root.get() );

 //Stats Event Handler s key
 viewer.addEventHandler(new osgViewer::StatsHandler);

 //Windows size handler
 viewer.addEventHandler(new osgViewer::WindowSizeHandler);

 return (viewer.run());

 }


  I am waiting for your reply.
  Franclin.


 
 Ne gardez plus qu'une seule adresse mail ! Copiez vos mails vers Yahoo! Mail


 ___
 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] ANN: Reference Manual for v2.2 now available

2007-12-19 Thread sherman wilcox

 However, I like the idea of a community-written OSG Gems book, and I don't
 want to underestimate the community's willingness to contribute. So, I'll
 give this some thought, look into other Gems-style books' business models,
 and see if I can find a way to make this work (time-wise, as an editor).
 Initial thought: rather than here's how to use some feature in OSG type of
 articles, it might be better to have here's how I did this really cool
 thing using OSG or here's how my company is using OSG, if you know what I
 mean. I think this is more in line with other Gems books I've read.


A gems book is a great idea. I second the here's how I did this
really cool thing using OSG route.
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Geometry shader

2007-12-15 Thread sherman wilcox
I have a recent need for this as well. Anyone done this yet?

On Oct 26, 2007 3:05 AM, Ralph Kern [EMAIL PROTECTED] wrote:
 Hi,

 does anybody already got some of the new geometry shader extension
 EXT_geometry_shader4 working with OSG?

 see tutorial at http://appsrv.cse.cuhk.edu.hk/~ymxie/Geometry_Shader/

 Seems it should be possible to implement it straight forward in the OSG
 core.

 Regards Ralph

 ___
 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] readFontFile possible bug

2007-12-14 Thread sherman wilcox
Robert, I'm not so sure the multi-threading issue is resolved. I
wasn't getting simple GPU stalls. The database pager would stop
working after several of these stalls. By stop working I don't mean
interruptions with resumption. That database pager would not come back
at all. Also, the log messages to screen was strange. Some were
garbled messages and mentioned that it could no longer find plugins,
etc. The inability to find plugins could explain the database pager,
but the question then becomes why does running background threads dump
plugins and trash log output?

On Dec 14, 2007 5:25 AM, Robert Osfield [EMAIL PROTECTED] wrote:
 Hi Sherman,

 I have tried out your modified osgtext example with the --mt 5 etc
 option along with a 8GB whole earth database and find the frame rate
 stalling, especially when zooming in to new high res regions.

 Running with on screen stats on suggests that its the GPU that is
 stalling things, with a single frame taking a very long time, then
 once its freed up the app runs freely once more with millisceond GPU
 times.

 I've put timing code into the UpdateTextOperation and neither the load
 nor update methods take very long most of the time, and there isn't a
 big hit here when the stall happen so it doesn't seem to be directly
 associated with the extra threads running.

 I haven't been able to establish the exact cause of stalls, but it
 looks to be an issue with the newly introduced subgraphs forcing
 compile of texture objects/display lists in such a way that the OpenGL
 driver/GPU is stalling.  The texture sizes associated with osgText
 shouldn't be very large so the bandwidth and memory footprint
 shouldn't be a bottleneck, clearly something is happening down in the
 OpenGL fifo/GPU that is causing major problems and stalling things.

 One thing it doesn't look like is a threading issue, my guess running
 the UpdateTextOperation synchronously i.e. from the main loop would
 probably see the same big hits on the GPU, although perhaps doing it
 synchronously would regulate the amount of new data added in a
 subgraph per frame. Getting to the bottom of this issue will take
 digging down into draw dispatch, and probably adding things like GPU
 stats collection to the osgText::Text/Font rendering methods as well
 as osg::Texture texture subloading.

 I would suggest opening a different thread into investigations of
 these GPU stall issues, as it would seem so far the multi-threaded
 font crashes/bugs look resolved and this thread can be closed.

 Robert,


 On Dec 14, 2007 12:58 AM, sherman wilcox [EMAIL PROTECTED] wrote:
  OK, grabbed the latest copy of OSG out of SVN (latest as of about 2PM
  today) and ran my test app again. With the latest OSG the app doesn't
  crash, but there are still major issues. So, the multi-threading issue
  is still there. The database pager simply stops working, I get all
  manner of errors in the console window, etc.
 
  I've attached the test app. Should compile in linux, windows, etc.
 
  If you run this app, you will need a paged database to really stress
  things. I have one (about 148MB compressed) that I can provide if
  anyone is interested. Just email me and I'll provide a link to
  download. Oh, and be sure to pass the app an argument of --mt 5, where
  5 is the number of test threads to launch, can be any reasonable
  number.
 
 
 
  On Dec 12, 2007 10:21 PM, sherman wilcox [EMAIL PROTECTED] wrote:
   I spent a bit of time this evening digging up the the code that
   reproduces the crash. I'll update to the SVN snapshot of OSG and give
   it a try. I was able to reproduce the crash on 2.2.0.
  
  
   On Dec 12, 2007 4:22 AM, Robert Osfield [EMAIL PROTECTED] wrote:
Hi Sherman,
   
On Dec 11, 2007 11:31 PM, sherman wilcox [EMAIL PROTECTED] wrote:
 I can still reliably reproduce the multithreaded osgText /
 databasepager crash issue   :)
   
Could you explain how your recreate the crash, and the circumstances
of the crash.  It may be exactly the same problem as Serge has, but
also just as easily could be another weakness that needs solving.
   
Aaa you gotta love debugging multi-threaded apps remotely :-)
   
Robert.
   
___
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 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] readFontFile possible bug

2007-12-14 Thread sherman wilcox
I performed my tests using the SVN trunk of OSG (as about 2 hours ago)

Here are some of the log messages:

Warning: Could not find plugin to read objects from file
c:/system/earth/earth_L2_X1_Y0_subtile.ive.
Error r e.a.d.i.n ga nfoitlhee:r  DeartraoIrn pcuotdSet rmeanesa
mt:h:arte atdhUeI nfto(n)t:  fiFlaei lceodu ltdo  nroet
add unsign
ed in t. .v..a lbuee .
opened, read or simply that it is broken..d
Warning: Could not find plugin to read objects from file
c:/system/earth/earth_L2_X0_Y1_subtile.ive.
WarnEinrgr:o rC oruelda dniontg  ffiinlde :p lDuagtianI ntpou
trSetarde aomb:j:ercetasd UfIrnotm( )f:i lFea ilCe:d\ tWo
 irnedaodw su\Fonnstisg\nteidme s.itnttf v.alue
.
Warning: Could not find plugin to read objects from file
c:/system/earth/earth_L3_X2_Y2_subtile.ive.
Error reading file:  D.a.t.a.I napnuottShterre aemr:r:orre acdoUdIen
tm(e)a:n sF atihlaetd  tthoe  rfeoandt  ufnislieg n
ceodu lidn tn ovtadlue.

  be opened, read or simply that it is broken..d
Warning: Could not find plugin to read objects from file
c:/system/earth/earth_L2_X0_Y1_subtile.ive.
WarniEnrgr:o rC orueladd innogt  ffiilned:  pDlautgaiInnp uttoS
trreeaadm :o:brjeeacdtUsI nftr(o)m:  fFialiel edC :t\oW
 rienaddo wusn\sFiognntesd\ tiinmte sv.atltufe..

Warning: Could not find plugin to read objects from file
c:/system/earth/earth_L3_X2_Y2_subtile.ive.
 E.r.r..o ra nroetahdeirn ge rfriolre :co dDea tmaeIannpsu ttShtarte
atmh:e: rfeoandtU Ifnitl(e) : cFoauillde dn ottod r

ead unsigned i n.t. .v.a lbuee .o
pened, read or simply that it is broken..d
Warning: Could not find plugin to read objects from file
c:/system/earth/earth_L2_X1_Y0_subtile.ive.
WarniEnrgr:o rC oreualddi nngo tf iflien:d  DpaltuagIinn ptutoS
rteraeda mo:b:jreecatdsU Ifnrto(m) :f iFlaei leCd: \tWo
i nrdeowasd\ Fuonnstisg\nteidm eisn.tt tvfal.ue.

Warning: Could not find plugin to read objects from file
c:/system/earth/earth_L2_X0_Y1_subtile.ive.
Error readin g. .f.i.l ea:n oDtahtearI neprurtoSrt rceoadme:
:meraenasd UtIhnatt( )t:h eF afiolnetd  ftiol er ecaodu lud
n sniotgdn
ed int v a.l.u.e. be o.pen
ed, read or simply that it is broken..d
Warning: Could not find plugin to read objects from file
c:/system/earth/earth_L3_X2_Y2_subtile.ive.
WarnEirnrg:o rC orueladd innogt  ffiilned: p lDuagtianI ntpou trSead
torbejaemc:t:sr efarodmU Ifnitl(e) : FCa:i\lWeidn
dtowos \rFeoadn tusn\stiigmneesd. titnft .va
lue.



On Dec 14, 2007 2:13 PM, Robert Osfield [EMAIL PROTECTED] wrote:
 Hi Sherman,

 On Dec 14, 2007 3:15 PM, sherman wilcox [EMAIL PROTECTED] wrote:
  Robert, I'm not so sure the multi-threading issue is resolved. I
  wasn't getting simple GPU stalls. The database pager would stop
  working after several of these stalls. By stop working I don't mean
  interruptions with resumption. That database pager would not come back
  at all. Also, the log messages to screen was strange. Some were
  garbled messages and mentioned that it could no longer find plugins,
  etc. The inability to find plugins could explain the database pager,
  but the question then becomes why does running background threads dump
  plugins and trash log output?

 OK. This does sounds like more than just a plain stall, all I was able
 to do was recreate the stall.  Could you capture the error messages
 and post them?

 As for a thread dumping plugins etc. This suggest to be that the
 Registry is getting corrupted for some reason, but who knows, this is
 all pretty new in style of problem than we've seen before.


 Robert.
 ___
 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] readFontFile possible bug

2007-12-13 Thread sherman wilcox
OK, grabbed the latest copy of OSG out of SVN (latest as of about 2PM
today) and ran my test app again. With the latest OSG the app doesn't
crash, but there are still major issues. So, the multi-threading issue
is still there. The database pager simply stops working, I get all
manner of errors in the console window, etc.

I've attached the test app. Should compile in linux, windows, etc.

If you run this app, you will need a paged database to really stress
things. I have one (about 148MB compressed) that I can provide if
anyone is interested. Just email me and I'll provide a link to
download. Oh, and be sure to pass the app an argument of --mt 5, where
5 is the number of test threads to launch, can be any reasonable
number.


On Dec 12, 2007 10:21 PM, sherman wilcox [EMAIL PROTECTED] wrote:
 I spent a bit of time this evening digging up the the code that
 reproduces the crash. I'll update to the SVN snapshot of OSG and give
 it a try. I was able to reproduce the crash on 2.2.0.


 On Dec 12, 2007 4:22 AM, Robert Osfield [EMAIL PROTECTED] wrote:
  Hi Sherman,
 
  On Dec 11, 2007 11:31 PM, sherman wilcox [EMAIL PROTECTED] wrote:
   I can still reliably reproduce the multithreaded osgText /
   databasepager crash issue   :)
 
  Could you explain how your recreate the crash, and the circumstances
  of the crash.  It may be exactly the same problem as Serge has, but
  also just as easily could be another weakness that needs solving.
 
  Aaa you gotta love debugging multi-threaded apps remotely :-)
 
  Robert.
 
  ___
  osg-users mailing list
  osg-users@lists.openscenegraph.org
  http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
 

/* OpenSceneGraph example, osgtext.
*
*  Permission is hereby granted, free of charge, to any person obtaining a copy
*  of this software and associated documentation files (the Software), to deal
*  in the Software without restriction, including without limitation the rights
*  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
*  copies of the Software, and to permit persons to whom the Software is
*  furnished to do so, subject to the following conditions:
*
*  THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
*  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
*  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
*  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
*  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
*  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
*  THE SOFTWARE.
*/

#include osgUtil/Optimizer

#include osgDB/ReadFile
#include osgDB/WriteFile
#include osgDB/Registry

#include osgViewer/Viewer
#include osgViewer/ViewerEventHandlers

#include osg/Geode
#include osg/Camera
#include osg/ShapeDrawable
#include osg/Sequence
#include osg/PolygonMode
#include osg/io_utils

#include osgText/Font
#include osgText/Text


osg::Group* createHUDText()
{

  osg::Group* rootNode = new osg::Group;

  osgText::Font* font = osgText::readFontFile(fonts/arial.ttf);

  osg::Geode* geode  = new osg::Geode;
  rootNode-addChild(geode);

  float windowHeight = 1024.0f;
  float windowWidth = 1280.0f;
  float margin = 50.0f;


  

  //
  // Examples of how to set up different text layout
  //

  osg::Vec4 layoutColor(1.0f,1.0f,0.0f,1.0f);
  float layoutCharacterSize = 20.0f;

  {
osgText::Text* text = new osgText::Text;
text-setFont(font);
text-setColor(layoutColor);
text-setCharacterSize(layoutCharacterSize);
text-setPosition(osg::Vec3(margin,windowHeight-margin,0.0f));

// the default layout is left to right, typically used in languages
// originating from europe such as English, French, German, Spanish etc..
text-setLayout(osgText::Text::LEFT_TO_RIGHT);

text-setText(text-setLayout(osgText::Text::LEFT_TO_RIGHT););
geode-addDrawable(text);
  }

  {
osgText::Text* text = new osgText::Text;
text-setFont(font);
text-setColor(layoutColor);
text-setCharacterSize(layoutCharacterSize);
text-setPosition(osg::Vec3(windowWidth-margin,windowHeight-margin,0.0f));

// right to left layouts would be used for hebrew or arabic fonts.
text-setLayout(osgText::Text::RIGHT_TO_LEFT);
text-setAlignment(osgText::Text::RIGHT_BASE_LINE);

text-setText(text-setLayout(osgText::Text::RIGHT_TO_LEFT););
geode-addDrawable(text);
  }

  {
osgText::Text* text = new osgText::Text;
text-setFont(font);
text-setColor(layoutColor);
text-setPosition(osg::Vec3(margin,windowHeight-margin,0.0f));
text-setCharacterSize(layoutCharacterSize);

// vertical font layout would be used for asian fonts.
text-setLayout(osgText::Text::VERTICAL);

text-setText(text-setLayout(osgText

Re: [osg-users] readFontFile possible bug

2007-12-12 Thread sherman wilcox
I spent a bit of time this evening digging up the the code that
reproduces the crash. I'll update to the SVN snapshot of OSG and give
it a try. I was able to reproduce the crash on 2.2.0.

On Dec 12, 2007 4:22 AM, Robert Osfield [EMAIL PROTECTED] wrote:
 Hi Sherman,

 On Dec 11, 2007 11:31 PM, sherman wilcox [EMAIL PROTECTED] wrote:
  I can still reliably reproduce the multithreaded osgText /
  databasepager crash issue   :)

 Could you explain how your recreate the crash, and the circumstances
 of the crash.  It may be exactly the same problem as Serge has, but
 also just as easily could be another weakness that needs solving.

 Aaa you gotta love debugging multi-threaded apps remotely :-)

 Robert.

 ___
 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] readFontFile possible bug

2007-12-11 Thread sherman wilcox
I can still reliably reproduce the multithreaded osgText /
databasepager crash issue   :)

On Dec 11, 2007 1:59 PM, Robert Osfield [EMAIL PROTECTED] wrote:
 Hi Serge,

 How reliably can you recreate the crash?

 Does it happen with osgviewer or other OSG examples?

 Could you explain whats happening in your app before the crash.

 If we can work out the conditions that the crash happens we'll have a
 much better chance of isolation. It could be as your describe an
 object be deleted just when another thread is about to take a ref to
 it, I would have thought this would be a pretty rare condition though.

 Robert.


 On Dec 11, 2007 3:55 PM, Serge Lages [EMAIL PROTECTED] wrote:
  I have another theory about the crash, let's say that :
 
 
  osg::Object* object = osgDB::readObjectFile(foundFile, userOptions ?
  userOptions : localOptions.get());
 
  read the object from the cache, and between this moment and the one where
  the font object is set to a ref_ptr into setFont, the cache is cleared (into
  another thread). With this scenario the pointer points to a deleted object
  or is there anything to prevent it ?
 
  In my case this scenario is possible as I load my IVE with the databasepager
  and that I remove the expired objects into the main thread.
 
 
 
  --
  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 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] Windows/OSG question

2007-11-28 Thread sherman wilcox
I haev some of the same questions. My understanding is that to realize
benefit that all libraries should be re-compiled. The part I'm fuzzy
on is the should be. What happens when you mix and match SCL
libraries with non-SCL is unknown to me. You should certainly see a
performance boost in debug builds by disabling iterator debugging. The
secure iterators, I've heard disabling those will yield increases as
well in Release builds of 10-20%.

I haven't tried this myself. Please do report back to the list with
results if you do this.

Thanks

On Nov 28, 2007 10:53 AM,  [EMAIL PROTECTED] wrote:
 Hi... we are (still) trying to find ways to improve performance on windows.  
 Does anyone compile their windows builds with the following options?

 /D_SECURE_SCL=0 /D_HAS_ITERATOR_DEBUGGING=0

 If so, does it produce good results?  Is it necessary for *ALL* libraries to 
 be built with these options, or is it okay to compile some with and some 
 without?  E.g., could I build OSG with these options turned on, but leave 
 other libraries (such as boost) compiled as-is?

 Thanks.
 ___
 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] screen capture with multiple cameras

2007-11-23 Thread sherman wilcox
Ok. Thanks for the reply. Followup question: Is there an automagic way
to determine what this last camera is or do I need to keep track of
that myself?

Is it reasonable to attach a camera to the scenegraph set as the
last camera just for capture purposes? I wouldn't think there would
be much overhead incurred, but never hurts to ask.

On Nov 23, 2007 12:46 AM, Berg, Michael [EMAIL PROTECTED] wrote:

 sherman wilcox wrote:
  I want to capture my OSG screen and dump it to a jpeg or png file. My
  understanding is to attach a callback to the main osgViewer camera and
  perform a osg::Image::readPixels(...) from within the callback. That
  works in the simple case. But, if I have a basic HUD that is itself a
  camera alongside other nodes in the scenegraph, then I never see the
  HUD in my osg::Image::readPixels call. That would make sense since my
  callback is operating on the main camera and not my child node
  camerabut leaves the question of how do I perform a complete
  screen capture on a graph with multiple cameras?
 
  Is there an example I missed?
  ___
  osg-users mailing list
  osg-users@lists.openscenegraph.org
  http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


 Sherman,

 I recently ran into the same problem on this list.
 Robert Osfield responded with some comments on how it might one-day be
 done more cleanly, but that Until these methods are added, you'll need
 to make do with a post draw callback on the last camera to be drawn.

 If your HUD is the last camera drawn, set the post draw callback on your
 HUD camera, and it will be a complete screen capture.

 - Michael

 ___
 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] screen capture with multiple cameras

2007-11-22 Thread sherman wilcox
I want to capture my OSG screen and dump it to a jpeg or png file. My
understanding is to attach a callback to the main osgViewer camera and
perform a osg::Image::readPixels(...) from within the callback. That
works in the simple case. But, if I have a basic HUD that is itself a
camera alongside other nodes in the scenegraph, then I never see the
HUD in my osg::Image::readPixels call. That would make sense since my
callback is operating on the main camera and not my child node
camerabut leaves the question of how do I perform a complete
screen capture on a graph with multiple cameras?

Is there an example I missed?
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] crash in GL2Extensions::glDeleteShader

2007-11-20 Thread sherman wilcox
Good call Robert. makeCurrent() was/is failing.

So, what is the proper way to shut everything down? I can side-step
the issue by calling   _viewer-getView(0)-setSceneData(0); ...this
has the side effect of not calling GraphicsContext::close(...), so I
avoid the crash...but this is obviously wrong and I'm sure this will
bite me later.

I'm using osgViewer::CompositeViewer in a single threaded
configuration. I looked at the osgViewer MFC example but didn't see
anything useful. Looked at the other osgViewer examples as well and
really didn't see anything that showed me how to properly shutdown
osgViewer.

So, how do I gracefully exit?

On Nov 20, 2007 2:45 AM, Robert Osfield [EMAIL PROTECTED] wrote:
 HI Sherman  David,

 This makes it sounds very much like a threading issue associated with
 making the graphics context current.  In the GraphicsContext::close()
 method there is a section that does the flushing of deleted OpenGL
 objects, the code is:

if (callCloseImplementation  _state.valid()  isRealized())
{
osg::notify(osg::INFO)Closing still viable window
 sharedContextExists
 _state-getContextID()=_state-getContextID()std::endl;

makeCurrent();

osg::notify(osg::INFO)Doing Flushstd::endl;

// flush all the OpenGL object buffer for this context.
double availableTime = 100.0f;
double currentTime =
 _state-getFrameStamp()?_state-getFrameStamp()-getReferenceTime():0.0;


 osg::FrameBufferObject::flushDeletedFrameBufferObjects(_state-getContextID(),currentTime,availableTime);

 osg::RenderBuffer::flushDeletedRenderBuffers(_state-getContextID(),currentTime,availableTime);
osg::Texture::flushAllDeletedTextureObjects(_state-getContextID());
osg::Drawable::flushAllDeletedDisplayLists(_state-getContextID());

 osg::Drawable::flushDeletedVertexBufferObjects(_state-getContextID(),currentTime,availableTime);

 osg::VertexProgram::flushDeletedVertexProgramObjects(_state-getContextID(),currentTime,availableTime);

 osg::FragmentProgram::flushDeletedFragmentProgramObjects(_state-getContextID(),currentTime,availableTime);

 osg::Program::flushDeletedGlPrograms(_state-getContextID(),currentTime,availableTime);

 osg::Shader::flushDeletedGlShaders(_state-getContextID(),currentTime,availableTime);

osg::notify(osg::INFO)Done Flush availableTimestd::endl;

_state-reset();

releaseContext();
}

 Now there is a makeCurrent() in there, but perhaps this is failing.
 It'd be interesting to focus on the success/failure of this call.
 makeCurrent() should return true on success so this would be something
 one could test against.

 Robert.

 Robert.

 ___
 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] Window titlebar icon/text

2007-11-17 Thread sherman wilcox
The most straightforward way is platform specific. Look for
SetWindowText and WM_SETICON

On Nov 16, 2007 6:49 AM, Robert Balfour [EMAIL PROTECTED] wrote:
 I'm using the osgViewer class on WinXP.  Is there a straightforward way
 to set the application icon and text on the window titlebar? (or do I
 get the native window handle and do it platform-specific)

 Thanks.

 Bob.
 --
 Robert E. Balfour, Ph.D.
 Exec. V.P.  CTO,  BALFOUR Technologies LLC
 960 South Broadway, Suite 108, Hicksville NY 11801
 Phone: (516)513-0030  Fax: (516)513-0027  email: [EMAIL PROTECTED]
 ___
 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] Thread politeness

2007-11-16 Thread sherman wilcox
On Nov 16, 2007 8:33 AM, Robert Osfield [EMAIL PROTECTED] wrote:
 The other thing you can do is try out an OS that can do
 multi-threading properly.

 Robert.

Yeah, like Windows Vista 64!

*jumps for cover*

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


Re: [osg-users] OSG + sky

2007-10-31 Thread sherman wilcox
Here's another link:

http://www.magrathea-engine.org/

On 10/31/07, Robert Osfield [EMAIL PROTECTED] wrote:
 On 10/31/07, Rahul Jain [EMAIL PROTECTED] wrote:
  Hi all,
  I want to integrate enviroment in my application, for example clouds and
  sky. As far as my knowledge is concerned this is not possible in OSG
  currenly. Can someone tell me the alternatives.

 You could try Sundogs Silverlinning.
 ___
 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] modelling question - 3DS Max = OSG

2007-10-23 Thread sherman wilcox
Hey guys, I've got a few questions related to getting 3DS models to
display properly in OSG. I'm not a modeller myself, I write software,
but I'm working with a modeller trying to get some of their work into
my app.

The objective I'm trying to reach is to import an animated, textured
model from 3dsmax to OSG with either a Morph Modifier or a Skin Wrap
Modifier.  A good example would be a flag waving in the wind.
Ideally, I would like to have good control of textures as well -
including transparency, specularity, and texture maps...along with the
ability to animate these features. I've used osgExport with some of
the models with limited success. Seems that the skin or morph modifier
isn't exported.

Is what I'm trying to accomplish feasible or reasonable within the
confines of OSG?
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Performance Windows (Visual Studio) compared to MAC OS/X

2007-10-15 Thread sherman wilcox
Ummmthis looks suspicious. Same hardware yet different times on
the Windows platform? What about checked iterators under 2005? Are you
disabling those?

Checked iterators:
http://msdn2.microsoft.com/en-us/library/aa985965(VS.80).aspx

With checked iterators, you'd need to disable them for the OSG libs as well.

Do you have access to a Intel compiler for Windows? I'd encourage you
to try that as well.

On 10/15/07, Adrian Egli [EMAIL PROTECTED] wrote:
 Hi all,

 same code, allways default project settings, release, same CPU/RAM/...
 windows native and os/x native dual boot

 what you think about this  results are equal, but computing time 

 
 MAC OS/X XCode
 
 Ray Trace Time  =   2.97638s

 Rays  =   787307  (264K Rays/s)
 Nodes Checks=   24939199
 Bounding Checks=   49512447
 Triangles Checks=   16703960


 
 Visual Studio 2003
 
 Ray Trace Time  =   3.77131s

 Rays=   786152  (208K/s)
 Nodes Checks=   24806690
 Bounding Checks =   49252143
 Triangles Checks=   16609007

 
 Visual Studio 2005
 

 Ray Trace Time  =   4.62109s

 Rays=   786152  (170K/s)
 Nodes Checks=   24806705
 Bounding Checks =   49252212
 Triangles Checks=   16608961
 --
 
 Adrian Egli
 ___
 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] osgText - shimmer...wavy

2007-10-15 Thread sherman wilcox
I'm using osgText with the character size mode of
OBJECT_COORDS_WITH_MAXIMUM_SCREEN_SIZE_CAPPED_BY_FONT_HEIGHT. The text
is position on an ellipsoid model with ECEF coordinates. When the text
is smaller than the maximum font height I notice that the text is
somewhat wavy when I zoom in and out. Sort of shimmers. Once the text
has realized it's maximum size the effect is much less noticable,
sometimes completely gone. Could this be a floating point precision
issue down in the bowels of osgText? BTW, I'm using an
osg::MatrixTransform node to position the text.

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


[osg-users] osgText precision issue

2007-09-08 Thread sherman wilcox
I'm having a bit of trouble with mangled text if I zoom in to close.
This text is on an osgDem generated ellispoid. In the attached
screenshots, the text appears correctly in text2.jpg. However, in
text3.jpg you'll see the problem. This only occurs if I zoom in really
close to the text. If I back off the camera a bit, the text reverts
back to the correct state.

My questions are:

1) What's causing this?
2) How best to address the issue?
attachment: text3.jpgattachment: text2.jpg___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] osgText precision issue

2007-09-08 Thread sherman wilcox
Yeah, that sounds like it will do the trick. I'll have to re-work some
code, but that should address the issue.

On 9/8/07, Jason Beverage [EMAIL PROTECTED] wrote:
 Hi Sherman,

 The issue you're seeing is probably a precision issue since OpenGL works in
 floats.  I've seen a similar effect with Text objects in my applications.
 One way to reduce this precision problem is to to not position your text
 using the setPosition function but to position it by using a MatrixTransform
 as the parent of the geode containing your text.  This will allow OSG to
 accumulate the transformation and camera matrices in doubles and only
 convert to float the very last moment to increase precision.  It is the same
 technique that osgdem uses when managing its tiles.

 Hope this help!

 Jason


 On 9/8/07, sherman wilcox [EMAIL PROTECTED] wrote:
 
  I'm having a bit of trouble with mangled text if I zoom in to close.
  This text is on an osgDem generated ellispoid. In the attached
  screenshots, the text appears correctly in text2.jpg. However, in
  text3.jpg you'll see the problem. This only occurs if I zoom in really
  close to the text. If I back off the camera a bit, the text reverts
  back to the correct state.
 
  My questions are:
 
  1) What's causing this?
  2) How best to address the issue?
 
  __ _
  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 mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Is text thread safe in 2.0.0?

2007-09-04 Thread sherman wilcox
Initial testing is encouraging. Tried it out on my quad core box, no
troubles at all. Tested in debug/release with anywhere from 3 to 20
threads running at once. No crashesever, exited cleanly, etc.

Currently compiling on my dual-processor box. Will do longer tests on
that system and my quad core box and report back tomorrow.


On 9/4/07, Robert Osfield [EMAIL PROTECTED] wrote:
 Hi Sheman,

 Thanks for testing and changes.  I have added static Mutex directly
 into the DefaultFont::instance() method rather that add it the
 DefaultFont class.  It should provide the same effect but keep things
 a little bit neater.

 I have also added a mutex into Font::GlphTexture to marshal the
 addGlyph and texture apply.

 Could you do an svn update and let me know how you get on,

 Cheers.
 Robert.

 On 9/2/07, sherman wilcox [EMAIL PROTECTED] wrote:
  I spent a few moments digging into the crash I was having...looks like
  a race condition in DefaultFont* DefaultFont::instance(). I wasn't
  sure about the best course, but I thought the simplest solution was to
  wrap that call with a mutex, which I did. After doing that, no more
  crashes when I run --mt 10 in Release mode. I've attached the changes
  defaultfont.h/.cpp.
 
  BUT...I still get crashes in debug mode @ --mt 10 The crashes are
  easily reproduced. I left the code running for quite a while in
  Release mode, didn't crash. Debug dies immediatly.
 
 
  I've attached the changes defaultfont.h/.cpp.
 
 
  Here's a call stack from the new crashes...in void
  Font::GlyphTexture::apply(osg::State state)  I noticed that the
  elements in the _glyphs container had bad _font objects...these _font
  objects had addresses of 0xcdcdcdcd. Not sure at what point things
  went off into the weeds.
 
  Stack trace from most recent crash:
 
 
   osgTextd.dll!std::_Vector_const_iteratorosg::ref_ptrosgText::Font::Glyph,std::allocatorosg::ref_ptrosgText::Font::Glyph
   ::operator++()  Line 117 + 0x33 bytesC++
  osgTextd.dll!osgText::Font::GlyphTexture::apply(osg::State 
  state={...})  Line 653 + 0x8 bytes  C++
  osgd.dll!osg::State::applyAttribute(const osg::StateAttribute *
  attribute=0x0195c730, osg::State::AttributeStack  as={...})  Line
  1158 + 0x13 bytes   C++
  osgd.dll!osg::State::applyTextureAttribute(unsigned int unit=0,
  const osg::StateAttribute * attribute=0x0195c730)  Line 337 + 0x10
  bytes   C++
  osgTextd.dll!osgText::Text::renderOnlyForegroundText(osg::State 
  state={...}, const osg::Vec4f  colorMultiplier={...})  Line 1971 +
  0x1d bytes  C++
  osgTextd.dll!osgText::Text::drawImplementation(osg::State 
  state={...}, const osg::Vec4f  colorMultiplier={...})  Line 1587   C++
  osgTextd.dll!osgText::Text::drawImplementation(osg::RenderInfo 
  renderInfo={...})  Line 1471C++
  osgd.dll!osg::Drawable::draw(osg::RenderInfo  renderInfo={...})
  Line 868 + 0x13 bytes   C++
  osgUtild.dll!osgUtil::RenderLeaf::render(osg::RenderInfo 
  renderInfo={...}, osgUtil::RenderLeaf * previous=0x09837b28)  Line 60
  + 0x19 bytesC++
  osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo
   renderInfo={...}, osgUtil::RenderLeaf *  previous=0x09837b28)  Line
  408 + 0x19 bytesC++
  osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo 
  renderInfo={...}, osgUtil::RenderLeaf *  previous=0x09837b28)  Line
  373 + 0x17 bytesC++
  osgUtild.dll!osgUtil::RenderBin::drawImplementation(osg::RenderInfo
   renderInfo={...}, osgUtil::RenderLeaf *  previous=0x09837b28)  Line
  458 + 0x35 bytesC++
  
  osgUtild.dll!osgUtil::RenderStage::drawImplementation(osg::RenderInfo
   renderInfo={...}, osgUtil::RenderLeaf *  previous=0x09837b28)  Line
  1053C++
  osgUtild.dll!osgUtil::RenderBin::draw(osg::RenderInfo 
  renderInfo={...}, osgUtil::RenderLeaf *  previous=0x09837b28)  Line
  373 + 0x17 bytesC++
  osgUtild.dll!osgUtil::RenderStage::drawInner(osg::RenderInfo 
  renderInfo={...}, osgUtil::RenderLeaf *  previous=0x09837b28, bool 
  doCopyTexture=false)  Line 722  C++
  osgUtild.dll!osgUtil::RenderStage::draw(osg::RenderInfo 
  renderInfo={...}, osgUtil::RenderLeaf *  previous=0x09837b28)  Line
  913 + 0x1b bytesC++
  osgUtild.dll!osgUtil::SceneView::draw()  Line 1456 + 0x34 bytes C++
  osgViewerd.dll!osgViewer::Renderer::draw()  Line 382 + 0xf bytes
  C++
  osgViewerd.dll!osgViewer::Renderer::operator()(osg::GraphicsContext
  * context=0x01926430)  Line 573 C++
  osgd.dll!osg::GraphicsContext::runOperations()  Line 671 + 0x33 
  bytes   C++
  osgd.dll!osg::RunOperations::operator()(osg::GraphicsContext *
  context=0x01926430)  Line 135   C++
  osgd.dll!osg::GraphicsOperation::operator()(osg::Object *
  object=0x01926430)  Line 50 + 0x19 bytesC++
  osgd.dll!osg::OperationThread::run()  Line 413 + 0x26

Re: [osg-users] Is text thread safe in 2.0.0?

2007-09-04 Thread sherman wilcox
Success! Well, not that kind of success. You see, I was running the
osgText multithreaded sample you wrote...it would not crash. Ran
perfectly on all my systems. So..I crank up my app, which just so
happens has an option to update osgText objects on a background
thread. CRASH!!! Time and time again...crash! So, I spent most of the
night trying to debug this.

Long story shortened, I haven't figured out the crash BUT I have a
clue. If I introduce an earth model built using osgDem into your
osgText demo with about 10 threads running (probably will happen with
fewer, haven't tried) I get the same crash as I do in my app. I
suspect the problem has something to do with the databasepager.

Let me explain. The crash in the new --MT osgText demo (as well as in
my app) both die in:
osgText::Font::getGlyphImageMarginRatio()  Line 241 C++

Here's my call stack:
osgText.dll!osgText::Font::getGlyphImageMarginRatio()  Line 241 C++
 osgdb_freetype.dll!FreeTypeFont::setFontResolution(unsigned int width=60, 
 unsigned int height=60)  Line 64 + 0x9 bytes C++
osgText.dll!osgText::Text::computeGlyphRepresentation()  Line 485 C++
osgText.dll!osgText::Text::setFont(osgText::Font * font=0x0828e2c8)
Line 119 + 0x7 bytes C++
osgText.dll!osgText::Text::setFont(const
std::basic_stringchar,std::char_traitschar,std::allocatorchar  
fontfile=Arial.ttf)  Line 124 + 0x1a bytes C++


Here's the call stack from the osgText demo:
 osgText.dll!osgText::Font::getGlyphImageMarginRatio()  Line 241 C++
osgdb_freetype.dll!FreeTypeFont::setFontResolution(unsigned int
width=32, unsigned int height=32)  Line 64 + 0x9 bytes C++
osgText.dll!osgText::Text::computeGlyphRepresentation()  Line 485 C++
osgText.dll!osgText::Text::setText(const osgText::String  text={...})
 Line 165 + 0x7 bytes C++
osgText.dll!osgText::Text::setText(const
std::basic_stringchar,std::char_traitschar,std::allocatorchar  
text=)]#œ)  Line 170 + 0x1e bytes C++
osgtest.exe!UpdateTextOperation::load()  Line 561 C++
osgtest.exe!UpdateTextOperation::operator()(osg::Object *
callingObject=0x)  Line 498 + 0x5 bytes C++
osg.dll!osg::OperationThread::run()  Line 416 C++
OpenThreads.dll!OpenThreads::ThreadPrivateActions::StartThread(void *
data=0x00f29f90)  Line 120 C++
msvcr80.dll!__endthreadex()  + 0x3b bytes
msvcr80.dll!__endthreadex()  + 0xc7 bytes
[EMAIL PROTECTED]@12()  + 0xe bytes
[EMAIL PROTECTED]()  + 0x23 bytes

They both die in osgText::Font::getGlyphImageMarginRatio().

I'm wondering if there's a reference count problem somewhere that's
causing the Font object to be prematurely deleted? That is, the
activeFont object in Text::computeGlyphRepresentation is getting the
rug pulled out from under it. I say that because the databasepager
will call Registry::readImplementation(const ReadFunctor readFunctor,
bool useObjectCache)   with useObjectCache as false...which clears the
cache which decrements the refcount on cached Font objects...sometimes
this decrement is fatal? Maybe? I dunno, maybe I'm grasping @ straws,
but I do know if you don't incorporate the database pager then things
seem to run fine.

Any ideas?

On 9/4/07, Robert Osfield [EMAIL PROTECTED] wrote:
 Hi Sheman,

 Thanks for testing and changes.  I have added static Mutex directly
 into the DefaultFont::instance() method rather that add it the
 DefaultFont class.  It should provide the same effect but keep things
 a little bit neater.

 I have also added a mutex into Font::GlphTexture to marshal the
 addGlyph and texture apply.

 Could you do an svn update and let me know how you get on,

 Cheers.
 Robert.

 On 9/2/07, sherman wilcox [EMAIL PROTECTED] wrote:
  I spent a few moments digging into the crash I was having...looks like
  a race condition in DefaultFont* DefaultFont::instance(). I wasn't
  sure about the best course, but I thought the simplest solution was to
  wrap that call with a mutex, which I did. After doing that, no more
  crashes when I run --mt 10 in Release mode. I've attached the changes
  defaultfont.h/.cpp.
 
  BUT...I still get crashes in debug mode @ --mt 10 The crashes are
  easily reproduced. I left the code running for quite a while in
  Release mode, didn't crash. Debug dies immediatly.
 
 
  I've attached the changes defaultfont.h/.cpp.
 
 
  Here's a call stack from the new crashes...in void
  Font::GlyphTexture::apply(osg::State state)  I noticed that the
  elements in the _glyphs container had bad _font objects...these _font
  objects had addresses of 0xcdcdcdcd. Not sure at what point things
  went off into the weeds.
 
  Stack trace from most recent crash:
 
 
   osgTextd.dll!std::_Vector_const_iteratorosg::ref_ptrosgText::Font::Glyph,std::allocatorosg::ref_ptrosgText::Font::Glyph
   ::operator++()  Line 117 + 0x33 bytesC++
  osgTextd.dll!osgText::Font::GlyphTexture::apply(osg::State 
  state={...})  Line 653 + 0x8 bytes  C++
  osgd.dll!osg::State::applyAttribute(const osg::StateAttribute *
  attribute=0x0195c730, osg::State

[osg-users] compressed textures (DDS) and texture rectangles

2007-09-02 Thread sherman wilcox
OSG doesn't support compressed textures when using texture rectangles, does it?
Earlier today I tried to load some DDS files using the
osg::TextureRectangledidn't work. Thought it was something I was
doing wrong so I started digging and ran across this comment in
texturerectangle.cpp:

// UH: ignoring compressed for now.

Yep, that was the first clue! Anyway, I hacked in a quick change, just
not sure how robust it is. Here tis:

*old code

 // UH: ignoring compressed for now.
 glTexImage2D(target, 0, _internalFormat,
   image-s(), image-t(), 0,
   (GLenum)image-getPixelFormat(),
   (GLenum)image-getDataType(),
   image-data() - dataMinusOffset + dataPlusOffset );


*new code
   if(isCompressedInternalFormat(_internalFormat) 
extensions-isCompressedTexImage2DSupported())
   {
 extensions-glCompressedTexImage2D(target, 0, _internalFormat,
   image-s(), image-t(), 0,
   image-getImageSizeInBytes(),
   image-data() - dataMinusOffset + dataPlusOffset);
   }
   else
   {
 // UH: ignoring compressed for now.
 glTexImage2D(target, 0, _internalFormat,
   image-s(), image-t(), 0,
   (GLenum)image-getPixelFormat(),
   (GLenum)image-getDataType(),
   image-data() - dataMinusOffset + dataPlusOffset );
   }

In my limited testing with DXT5 DDS files, this quick change appears
to work. Admittedly, I didn't spend too much time on this, it's late
and I'm tired. So, if anyone sees a problem or would simply like to
offer suggestions...
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Is text thread safe in 2.0.0?

2007-08-30 Thread sherman wilcox
An update...left the osgtext --mt demo running all night on both systems,
both had crashed by the time I got up this morning.

On 8/30/07, Robert Osfield [EMAIL PROTECTED] wrote:

 Hi Sherman,

 Thanks for the ThreadChecker output, just scanned through it.  I don't
 know how to interpret all the various warnings.

 W.r.t crash on exit, I can recreate that here, and strongly suspect
 its an order of destruction issue caused by the DeleteHandler caching
 objects.  I am considering avoiding use of DeleteHandler, but this
 will require use of ref_ptr in some way in the rendering backend,
 something that could have a significant performance impact unless we
 are really careful.  This is a different topic to text threading issue
 though.

 Since there are lots of warnings, it'd be nice to isolate the
 different problems more,  and fix them all - if they are real problems
 rather than false positives.  Doing such a complete purge will take
 some time though.

 Robert.

 On 8/30/07, sherman wilcox [EMAIL PROTECTED] wrote:
  I ran this on two different systems.
 
  Dell 470 - Windows XP 32 dual processor nVidia FX 3400 : no crashes at
  runtime, ran extensively, exited cleanly
  Dell 490 - Windows Vista 64 Quad Core nVidia 8800GTX : no crashes at
  runtime, crashes on exit in the delete handlers. The crash on exit isn't
  consistent, have to run it for a while. There's a call stack from the
 crash
  at the bottom of my message.
 
  In both tests I was using the DrawThreadPerContext threading model.
 
  I ran Intel ThreadChecker 3.1 against this test app on the XP32 box.
 I've
  attached the logfile from threadchecker. I'm afraid there's a lot of
 noise
  in there, but hopefully it will help someone. If you find the
 threadchecker
  output interesting and wish to pursue it further, I'm willing to host a
  WebEx meeting and allow you to pop in on one of my dev boxes to further
  investigate with me if you like.
 
 
 
  
  osg.dll!std::list
 osg::ref_ptrosg::Operation,std::allocatorosg::ref_ptrosg::Operation
   ::clear()  Line 826 + 0x19 bytes C++
osg.dll!osg::OperationQueue::~OperationQueue()  Line 56 +
  0x43 bytes C++
osgViewer.dll!osg::OperationQueue::`scalar deleting
  destructor'()  + 0x9 bytes C++
osg.dll!osg::DeleteHandler::flushAll()  Line 141 + 0x10
  bytes C++
osgViewer.dll!osgViewer::`dynamic atexit destructor for
  'createWindowingSystemInterfaceProxy''()  + 0x21 bytes C++
osgViewer.dll!_CRT_INIT(void * hDllHandle=0x00db, unsigned long
  dwReason=939280740, void * lpreserved=0x0001)  Line 412 + 0x9 bytes
 C
osgViewer.dll!__DllMainCRTStartup(void *
  hDllHandle=0x00db, unsigned long dwReason=0, void *
  lpreserved=0x)  Line 512 + 0x8 bytes C
osgViewer.dll!_DllMainCRTStartup(void *
  hDllHandle=0x00db, unsigned long dwReason=0, void *
  lpreserved=0x0001)  Line 462 + 0x11 bytes C
[EMAIL PROTECTED] ()  + 0x14 bytes
[EMAIL PROTECTED]()  - 0xd1 bytes
[EMAIL PROTECTED]()  - 0x13 bytes
kernel32.dll!761292c7()
msvcr80.dll!___crtExitProcess()  + 0x14 bytes
msvcr80.dll!__cinit()  + 0x102 bytes
msvcr80.dll!_exit()  + 0xd bytes
osgtest.exe!__tmainCRTStartup()  Line 614 C
 [EMAIL PROTECTED]@12()  + 0xe bytes
msvcr80.dll!_exit()  + 0xd bytes
osgtest.exe!__tmainCRTStartup()  Line 614 C
[EMAIL PROTECTED]@12 ()  + 0xe bytes
[EMAIL PROTECTED]@12()  + 0xe bytes
 
 
 
 
  On 8/28/07, Robert Osfield [EMAIL PROTECTED] wrote:
  
   To help in the process of isolating and fixing the osgText threading
   issues users have seen I have modified the osgtext example to do text
   creation in a background thread.  You can now run it via:
  
   osgtext --mt
  
   What you will see on screen is a box with text strings randomly
   appearing/disappearing in the box.
  
   As yet I haven't see any crashes due to the font glyphs being queried
   at the same time the text is being updated - which was the point of
   the example code...  These are the ones Ewe's changes look like they
   might address.
  
   I have also added the stats handler into the example to allow us to
   see the performance, but also by coincidence it adds a failure mode -
   when you enable stats freetype errors start appearing.  These errors
   look to be down to freetype being based around a state model where one
   of threads is setting the sizes and current fonts to one thing and the
   other thread is try at the same time to set them to another.
   Freetype itself might not be thread safe either, but my current feel
   is that we might need more than just serializing access to freetype,
   we'll need to group several operations at once and serialize these
   batches.
  
   Robert.
   ___
   osg-users mailing list
   osg-users@lists.openscenegraph.org
  
 
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
  
 
 
  ___
  osg-users mailing list

Re: [osg-users] Is text thread safe in 2.0.0?

2007-08-30 Thread sherman wilcox
Here's a trace off the XP32 box. The crash is somewhat 'reliable' in that it
will crash if left running long enough.

  3ff0()
 osg.dll!osg::OperationThread::run()  Line 416 C++
  OpenThreads.dll!OpenThreads::ThreadPrivateActions::StartThread(void *
data=0x00c921e0)  Line 120 C++
  msvcr80.dll!_callthreadstartex()  Line 348 + 0x6 bytes C
  msvcr80.dll!_threadstartex(void * ptd=0x00c97948)  Line 326 + 0x5 bytes C
  kernel32.dll!7c80b683()
  [Frames below may be incorrect and/or missing, no symbols loaded for
kernel32.dll]
  ntdll.dll!7c911538()
  ntdll.dll!7c911596()




On 8/30/07, Robert Osfield [EMAIL PROTECTED] wrote:

 On 8/30/07, sherman wilcox [EMAIL PROTECTED] wrote:
  An update...left the osgtext --mt demo running all night on both
 systems,
  both had crashed by the time I got up this morning.

 Did you get a stack trace for the crashes?

 Robert.
 ___
 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