Re: [osg-users] help with osgmovie

2009-11-16 Thread Ivan Salguero
hi
i am using osg 2.0.8 and i sure about the linking osg.lib but and not sure what 
happen with some .lib 
... 

Thank you!

Cheers,
Ivan

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





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


[osg-users] Update Callback

2009-11-16 Thread Nectarios Pelekanos
Hi,

I have a scene with a node which is a 3d model loaded from a file and I simply 
want during an update callback, if a condition occurs, to load a deifferent 
model from a file to that node. So I want to replace my node/model in the scene 
during an update callback. Any suggestions/examples?

... 

Thank you!

Cheers,
Nectarios

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





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


Re: [osg-users] Particles problem

2009-11-16 Thread Robert Osfield
HI Max,

The particle system is set between several nodes, so which ones are
you attempting to hide/unhide and how?

Robert.

On Mon, Nov 16, 2009 at 8:22 AM, Maxim Gammer maxgam...@gmail.com wrote:
 Hello all,

 I came across the following situation.
 Let us have an object with particles child and that object is hidden.
 When we unhide this object we get picture 2 and 3.
 Why particles don't dissapiar when the parent object is hidden? Why do they
 accumulate? And how to deal with it, how to fix?

 P.S. Picture 1 shows how it shoud be.
 --
 Maxim Gammer


 ___
 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] [osgOcean] How could I make the underwater ground looks more clearly?

2009-11-16 Thread Tian Ma
Hi,

I have turn off all the underwater effects, but still blurry. 

I want to know that: which parameter or functions can make the blurry 
underwater ground clear?

Thank you!

Cheers,
Tian

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





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


Re: [osg-users] highlight an object with osgFX::Scribe

2009-11-16 Thread Ulrich Hertlein

Hi J-S,

On 13/11/09 3:48 PM, Jean-Sébastien Guay wrote:

I would very much like to hear if there's a solution to this problem.
There is osgUtil::DisplayRequirementsVisitor but this apparently isn't
used anywhere.


I wouldn't worry about it. Requiring that the stencil buffer be enabled
is a sound requirement, and one you can easily document and leave to the
user to make sure they have it enabled...


After taking another look at the code with your suggestion in mind I realized that this 
would get me rid of an ugly cull callback just to clear the stencil buffer.


You're right I shouldn't have worried about it too, this is clearly a better 
solution.

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


Re: [osg-users] osgOcean also rendering with osgParticle?

2009-11-16 Thread Kim Bale
Hi Erik,

Unfortunately there aren't any tricks for this. Getting transparencies
and glare to work together is quite an involved problem and would
require quite a few changes to OceanScene.

The problem is that the glare should only really affect the sea,
otherwise everything glimmers and it all looks a bit naff. So I
override the alpha component of all other objects in the scene to 0 so
that the glare pass ignores their luminance values, and then set it to
1 when rendering back to the main frame buffer.

The easiest way to rectify this would be use multiple render targets,
one to store the luminance values and one to store the normal pixel
color and alpha values. Then use the separate luminance buffer for the
glare effect. I'm not sure if Ogls multiple render target
implementation is any more efficient than using a completely separate
pass but rendering the ocean twice would be very costly.

It's on my list of things to do, I find the problem quite interesting.
But with limited free time, progress on osgOcean is quite slow I'm
afraid.


Regards,

Kim.





2009/11/15 Erik Johnson r.erik.john...@gmail.com:
 Kim,
 You are correct.  Turning off the glare and the underwater depth of field
 lets osgParticle render on through.
 I don't suppose you have any tricks up your sleeve to allow for both alpha
 textures *and* ocean glare to work?
 Thanks much - things are looking much better now.
 -Erik



 Date: Fri, 13 Nov 2009 21:02:07 +
 From: Kim Bale kcb...@googlemail.com
 To: OpenSceneGraph Users osg-users@lists.openscenegraph.org
 Subject: Re: [osg-users] osgOcean also rendering with osgParticle?
 Message-ID:
        a17930f30911131302v235e9e48qfbea076ba7df0...@mail.gmail.com
 Content-Type: text/plain; charset=ISO-8859-1

 Hi Erik,

 I suspect this is a problem with the default shader that is applied to
 all objects that are children of OceanScene. Part of this shader
 overwrites the alpha component of the frame buffer which will cause
 problems with transparent objects, in your case the particles. This is
 required for the glare and depth of field effects that use the alpha
 component to store the luminance and depth information rather than
 making an additional (and costly) pass to a separate frame buffer
 object.

 Could you try disabling the glare and depth of field effect and see if
 the problem remains?

 Cheers.

 Kim.



 2009/11/13 Erik Johnson r.erik.john...@gmail.com:
  Hi all,
  I've been playing around with osgOcean recently (nice work, btw!) and
  realized my fantastic particle effects were not being rendered in the
  scene.
  ?I tried to add them in various places in the scene graph with limited
  results.
  For example I added?osgParticle::FireEffect as a child of the boat in
  the
  oceanExample. ?This kind of works, but you can only see some of particle
  effect from under the water.
  Any suggestions? ?It's no good having a motor boat splashing through the
  water without the splashes!
 
  thanks,
  Erik
 
  ___
  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] [osgOcean] How could I make the underwater ground looks more clearly?

2009-11-16 Thread Kim Bale
Hi Tian,

Disabling depth of field should fix that. If it doesn't let me know
and I'll see if something has got broken.

Cheers,

Kim.


2009/11/16 Tian Ma tianxiao...@foxmail.com:
 Hi,

    I have turn off all the underwater effects, but still blurry.

    I want to know that: which parameter or functions can make the blurry 
 underwater ground clear?

 Thank you!

 Cheers,
 Tian

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





 ___
 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] Particles problem

2009-11-16 Thread Maxim Gammer
Hi Robert,

I've tried 3 different ways.
1 - Both particles and emitter are children of the hidden/unhidden object
2 - Particles is the child of object, and emitter is in the root.
3 - Emitter is a child of the object and particles is in the root.

Hiding/unhiding is done by SetNodeMask. (FF or 00)...

Max

2009/11/16 Robert Osfield robert.osfi...@gmail.com

 HI Max,

 The particle system is set between several nodes, so which ones are
 you attempting to hide/unhide and how?

 Robert.

 On Mon, Nov 16, 2009 at 8:22 AM, Maxim Gammer maxgam...@gmail.com wrote:
  Hello all,
 
  I came across the following situation.
  Let us have an object with particles child and that object is hidden.
  When we unhide this object we get picture 2 and 3.
  Why particles don't dissapiar when the parent object is hidden? Why do
 they
  accumulate? And how to deal with it, how to fix?
 
  P.S. Picture 1 shows how it shoud be.
  --
  Maxim Gammer
 
 
  ___
  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




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


Re: [osg-users] Particles problem

2009-11-16 Thread Maxim Gammer
What do you mean by switching off?
And can it be done automatically when the object's parents get hidden?



2009/11/16 Robert Osfield robert.osfi...@gmail.com

 Hi Maxim,

 Have you tried switching off the ParticleSystem node?  It's the
 ParticleSystem that does the rendering, the rest of the nodes just
 control how the particles are generated and moved.

 Robert.

 On Mon, Nov 16, 2009 at 10:52 AM, Maxim Gammer maxgam...@gmail.com
 wrote:
  Hi Robert,
 
  I've tried 3 different ways.
  1 - Both particles and emitter are children of the hidden/unhidden object
  2 - Particles is the child of object, and emitter is in the root.
  3 - Emitter is a child of the object and particles is in the root.
 
  Hiding/unhiding is done by SetNodeMask. (FF or 00)...
 
  Max
 
  2009/11/16 Robert Osfield robert.osfi...@gmail.com
 
  HI Max,
 
  The particle system is set between several nodes, so which ones are
  you attempting to hide/unhide and how?
 
  Robert.
 
  On Mon, Nov 16, 2009 at 8:22 AM, Maxim Gammer maxgam...@gmail.com
 wrote:
   Hello all,
  
   I came across the following situation.
   Let us have an object with particles child and that object is hidden.
   When we unhide this object we get picture 2 and 3.
   Why particles don't dissapiar when the parent object is hidden? Why do
   they
   accumulate? And how to deal with it, how to fix?
  
   P.S. Picture 1 shows how it shoud be.
   --
   Maxim Gammer
  
  
   ___
   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
 
 
 
  --
  Maxim Gammer
 
 
  ___
  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




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


Re: [osg-users] [osgOcean] How could I make the underwater ground looks more clearly?

2009-11-16 Thread Tian Ma
Hi Kim ,

   Thanks a lot again :)

   I will try it tomorrow at work!

Thank you!

Cheers,
Tian




Kim Bale wrote:
 Hi Tian,
 
 Disabling depth of field should fix that. If it doesn't let me know
 and I'll see if something has got broken.
 
 Cheers,
 
 Kim.
 
 
 2009/11/16 Tian Ma :
 
  Hi,
  
     I have turn off all the underwater effects, but still blurry.
  
     I want to know that: which parameter or functions can make the blurry 
  underwater ground clear?
  
  Thank you!
  
  Cheers,
  Tian
  
  --
  Read this topic online here:
  http://forum.openscenegraph.org/viewtopic.php?p=19683#19683
  
  
  
  
  
  ___
  osg-users mailing list
  
  http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
  
  
 ___
 osg-users mailing list
 
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
 
  --
 Post generated by Mail2Forum


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





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


Re: [osg-users] Particles problem

2009-11-16 Thread Robert Osfield
On Mon, Nov 16, 2009 at 11:09 AM, Maxim Gammer maxgam...@gmail.com wrote:
 What do you mean by switching off?
 And can it be done automatically when the object's parents get hidden?

I would have though that would work, or just setting the NodeMask of
the ParticleSystem.

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


Re: [osg-users] help with osgmovie

2009-11-16 Thread Alberto Luaces
Hi,

I think you mean 2.8.0. Remember that even you had osg.lib specified as
a library in the project, you also have to set in the linker options the
path where that file is found. Take a look at the projects for the OSG
examples.

--

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


Re: [osg-users] Particles problem

2009-11-16 Thread Maxim Gammer
Should we get back to that problem later?
Could you tell me, where to look for a solution? Wht to begin with?

Thanx for help.

2009/11/16 Robert Osfield robert.osfi...@gmail.com

 On Mon, Nov 16, 2009 at 11:09 AM, Maxim Gammer maxgam...@gmail.com
 wrote:
  What do you mean by switching off?
  And can it be done automatically when the object's parents get hidden?

 I would have though that would work, or just setting the NodeMask of
 the ParticleSystem.

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




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


Re: [osg-users] Particles problem

2009-11-16 Thread Robert Osfield
Hi Maxim,

On Mon, Nov 16, 2009 at 12:05 PM, Maxim Gammer maxgam...@gmail.com wrote:
 Should we get back to that problem later?
 Could you tell me, where to look for a solution? Wht to begin with?

I'm just guessing, I haven't actual tried what you after.  I'm not the
original author of osgParticle either so please just except my
suggestions as to what should be possible, rather than anything
definitive.

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


[osg-users] Question about using osgmoive

2009-11-16 Thread Shiina Ringo
Hi,

I have just compiled the example osgmovie, and found that the code used the 
setProjectionMatrixAsOrtho2D to set the ProjectionMatrix of viewer.

But what I want to implement is: while playing the video clip using the 
osgmoive's method , I want to switch the movie to the scene graph as before , 
to navigate the scene again. But here I confuse with setting the 
ProjectionMatrix , in other words , how to let the ProjectionMatrix come back 
to the default perspective Projection? And how to set the matrixmanipulator?

In all , my problem is : when playing movie using osgmovie's method , how to 
switch to the original navigation scene?

Could anyone help me out of this problem?

Thank you very much!

Cheers,
Shiina

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





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


Re: [osg-users] Question about using osgmoive

2009-11-16 Thread Robert Osfield
Hi Shiina,

The projection setting is only to set up the viewer as a fullscreen
style movie player, if you want to have a scene that you can twirl
around simply run the app with --interactive option.   This is the
information you get when you do:

 osgmovie -h

 --interactive  Use camera manipulator to allow
 movement around movie.

Also reviewing the source code will show this and what is going on.

Robert.


On Mon, Nov 16, 2009 at 12:37 PM, Shiina Ringo osgfo...@tevs.eu wrote:
 Hi,

 I have just compiled the example osgmovie, and found that the code used the 
 setProjectionMatrixAsOrtho2D to set the ProjectionMatrix of viewer.

 But what I want to implement is: while playing the video clip using the 
 osgmoive's method , I want to switch the movie to the scene graph as before , 
 to navigate the scene again. But here I confuse with setting the 
 ProjectionMatrix , in other words , how to let the ProjectionMatrix come back 
 to the default perspective Projection? And how to set the matrixmanipulator?

 In all , my problem is : when playing movie using osgmovie's method , how to 
 switch to the original navigation scene?

 Could anyone help me out of this problem?

 Thank you very much!

 Cheers,
 Shiina

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





 ___
 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] [osgCompute] Persistant texture modification using osgCompute / CUDA

2009-11-16 Thread Asmar Arsala

Hey Jens,
 
Thanks for you quick reply. As I have been away from the project for a while 
due to illness I hadn’t been able to really act upon your comments until now.
 
It had also been a while since I worked with Cuda and I had forgotten that Cuda 
actually makes a crucial distinction between memory allocated through 
cudaMalloc() versus memory allocated by cudaMallocArray(). In my previous 
attempts I made the erroneous assumption that a one-dimensional array through 
osgCuda::Array would lead to cuda-writable memory. 
 
After perusing the osgCuda and osgCompute code I now gather that osgCuda::Array 
allocates with cudaMallocArray(), osgCuda::Buffer allocates with cudaMalloc() 
and osgCuda::Texture allocates via OpenGL Buffer Objects. Which would indeed 
suggest that osgCuda::Arrays are read only, osgCuda::Buffers are read-write, 
and osgCuda::Textures are read-write (depending on the current OpenGL mapping 
and binding states). I should point out here that my background is DirectX and 
that I am not yet all that wise in the ways of OpenGL in general.
 
I had originally tried using osgCuda::Buffers, but then realised that the 
cudaBindTextureToArray() was failing (for obvious reasons). I then changed to 
one dimensional osgCuda::Arrays under the aforementioned assumption. In 
retrospect after having the source data be linear, there wasn’t really any need 
to map to texture memory, so I could have just as easily stayed with the 
osgCuda::Buffers and passed both source and destination data pointers to the 
kernel. This indeed, works fine, however the whole setup has now kind of 
strayed from the initial intent.
 
The idea is to be able to persistently update textures containing height 
related data on numerous LOD levels. Hence I want to avoid memory copies as 
much as possible; especially from host to device, and vice verse.
Now I also gather that the both osgCuda::Arrays and osgCuda::Buffers, due to 
their nature should be used as very temporary buffers; for cuda computations 
and not as persistent (texture-related) memory. Hence osgCuda::Textures are in 
fact the logical choice here. OpenGL can take care of the (device) memory 
management, Cuda can have read and write access, and changes can remain 
persistent. I imagine one of the most efficient ways to update a texture would 
then be to first map to a cudaArray for reading and then writing the result 
back to the osgCuda::Texture PBO.
 
To test this out I have now changed all osgCuda::Buffers/Arrays to 
osgCuda::Textures,  however this almost always throws a number of exceptions; 
sometimes when I debug it (without changing the code) is does not throw these 
exceptions. When that happens it will actually run perfectly. Otherwise it just 
doesn’t work. The exceptions thrown are:
 
osgCuda::Context::registerBufferObject() for Context 0: something goes wrong 
within cudaGLRegisterBufferObject().
unspecified launch failure.
osgCuda::Texture2D::allocPBO() for Buffer TempBuffer: Could not generate 
buffer object (glGenBuffers()) for context 0.
osgCuda::Texture::mapStream() for texture TempBuffer: error during 
cudaGLMapBufferObject() for context 0. 
unspecified launch failure.
osgCuda::Context::registerBufferObject() for Context 0: something goes wrong 
within cudaGLRegisterBufferObject().
unspecified launch failure.
osgCuda::Texture2D::allocPBO() for Buffer DestBuffer: Could not generate 
buffer object (glGenBuffers()) for context 0.
osgCuda::Texture::mapStream() for texture DestBuffer: error during 
cudaGLMapBufferObject() for context 0. 
unspecified launch failure.
 
That is, something goes wrong in Context::mallocBufferObject().
 
Now I’m starting to suspect that the way osgCompute is set up might not be 
ideal for what I intend to do here, but I would also not be the least bit 
surprised if I am totally misusing something again.
As before, any suggestions are greatly appreciated.
 
Sincerely,
  Asmar B. Arsala 
_
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Question about using osgmoive

2009-11-16 Thread Shiina Ringo
Hi,Robert

Thank you for your advice!

If using --interactive argument, then could I make the movie fullscreen by 
changing the view point to an appropriate position?

By the way , is the center position of the movie quad at (0.0,0.0,0.0)?
And is there any rotation attach to the movie quad? It seem that I cannot 
easily make the quad fullscreen by changing the position of view point.

Thank you very much!

Cheers,
Shiina

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





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


Re: [osg-users] Question about using osgmoive

2009-11-16 Thread Robert Osfield
Hi Shiina,

On Mon, Nov 16, 2009 at 1:17 PM, Shiina Ringo osgfo...@tevs.eu wrote:
 By the way , is the center position of the movie quad at (0.0,0.0,0.0)?
 And is there any rotation attach to the movie quad? It seem that I cannot 
 easily make the quad fullscreen by changing the position of view point.

You really just need to read and learn the code, this is the point of
the example.  I can't walk you through every little detail of every
little example.

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


Re: [osg-users] osgOcean also rendering with osgParticle?

2009-11-16 Thread Jean-Sébastien Guay

Hi Kim,


I'm not sure if Ogls multiple render target
implementation is any more efficient than using a completely separate
pass but rendering the ocean twice would be very costly.


Yes, of course MRT is more efficient than multiple passes... It's only 
one pass of the geometry, but with multiple buffer attachments that you 
can address independently in your shaders. That's the whole point of MRT :-)


J-S
--
__
Jean-Sebastien Guayjean-sebastien.g...@cm-labs.com
   http://www.cm-labs.com/
http://whitestar02.webhop.org/
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] osgOcean also rendering with osgParticle?

2009-11-16 Thread Kim Bale
Haha well I've never played with them so I was rather sketchy on the theory.

Using MRTs would actually make for a pretty easy fix. I shall see if I
can do that this week.

K.



2009/11/16 Jean-Sébastien Guay jean-sebastien.g...@cm-labs.com:
 Hi Kim,

 I'm not sure if Ogls multiple render target
 implementation is any more efficient than using a completely separate
 pass but rendering the ocean twice would be very costly.

 Yes, of course MRT is more efficient than multiple passes... It's only one
 pass of the geometry, but with multiple buffer attachments that you can
 address independently in your shaders. That's the whole point of MRT :-)

 J-S
 --
 __
 Jean-Sebastien Guay    jean-sebastien.g...@cm-labs.com
                               http://www.cm-labs.com/
                        http://whitestar02.webhop.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] [osgPlugins] Updating vertices properly + pick only one Geometry object

2009-11-16 Thread Bart Postma
Thanks! It worked.

The vertex buffer objects, in combination with an element buffer object, was a 
bit of figuring out, but it works now. The osgparametric example in the 
Examples section got me on the way. It was the only example using vertex buffer 
objects together with an element buffer object. Perhaps I should add another 
example, demonstrating how to update them. Anyway, I got a performance increase 
from 431 fps to 558 fps.

The node mask idea also works fine. However, I saw in osgViewer::View a 
function computeIntersections. The function gave me the impression that it 
could also fix my problem, without using a node visitor. My idea was to 
construct an empty NodePath, push the Cloth's node in this NodePath and then 
pass it to computeIntersections. Unfortunately, it always says there are now 
intersections. Am I missing something?

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





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


Re: [osg-users] osgtext::text::settext()

2009-11-16 Thread Wu Hui

Cyril Brulebois wrote:
 Wu Hui  (16/11/2009):
 
  I add an Text to the HUD, and want to updata this text every frame
  in a callback function using settext every frame. However, the
  program will crash, the error is  map/set not dereferenceable
  vector iterator not decrementable  or something in Wincore.cpp .I
  think this must have something to do with the source code of the
  Text implementation. Would someone tell me how this problem happen?
  
 
 IIRC it's possible to get errors that may look like bugs in OSG
 itself, but it also can mean you're not doing things right.
 
 Wild guess:
 - you're trying to update the text while it's being used elsewhere in
 the code, resulting in broken pointers/reference count, etc.
 
 You could try:
 - to set the Data Variance for this object to DYNAMIC, telling the
 framework you might update this text object at any moment.
 - to update the text at a more appropriate time, differentiating
 between the various traversals.
 
 That's based on my recollection before using proper callbacks. The
 former is probably a quick way to get things working. The latter is
 probably better in the long run once you're comfortable with various
 concepts in OSG.
 
 Cheers,
 -- 
 Cyril Brulebois
 
 ___
 osg-users mailing list
 
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
 
  --
 Post generated by Mail2Forum







Thank you a lot , your advice is really helpful.

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





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


Re: [osg-users] DataVariance questions

2009-11-16 Thread Robert Osfield
Hi Glenn,

On Mon, Nov 16, 2009 at 3:42 PM, Glenn Waldron gwald...@gmail.com wrote:
 Hi all, I have a questions about DataVariance in DrawThreadPerContext mode.
 I understand conceptually how it is supposed to work, but I am unclear on a
 detail:

 Does setting the data variance on a Node affect the drawables/statesets in
 the render graph?

No, Nodes have no effect on the render graph as only StateSet and
Drawables make it into the rendering backend.


 When you call View::setSceneData(), it runs the StaticObjectDetectionVisitor
 to automatically compute data variance on all the drawables and statesets.
 Good. But what data that you load or page in at runtime? Do I need to run
 that visitor on dynamically loaded data?

Your data really should have the DataVariance set appropriately before
passing it back to be merged, the StaticObjectDetectionVisitor is
really just a fallback for when scenegraphs aren't set up explcitly.


 From looking at the source, it would appear that unless you run that
 Visitor, setting the data variance to DYNAMIC on a Node only affects the
 Optimizer, and has no effect on the data variance of drawables in the render
 graph. I'm going to fire up the debugger and try to test this out, but any
 insights in the meantime would be appreciated. Thanks.

This is correct, the Optimizer is the currently the only traverser
that uses the DataVariance hint on nodes.

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


Re: [osg-users] [osgPlugins] Updating vertices properly + pick only one Geometry object

2009-11-16 Thread Jean-Sébastien Guay

Hi Bart,


The node mask idea also works fine. However, I saw in osgViewer::View a 
function computeIntersections. The function gave me the impression that it 
could also fix my problem, without using a node visitor. My idea was to 
construct an empty NodePath, push the Cloth's node in this NodePath and then 
pass it to computeIntersections. Unfortunately, it always says there are now 
intersections. Am I missing something?


computeIntersections uses osgUtil::IntersectionVisitor under the hood, 
so it's just a convenience function. If you're using IntersectionVisitor 
and it's working for you, continue using it that way, you'll have more 
control.


And the reason it doesn't work for you is that you need a complete node 
path from your camera to the model for it to detect intersections 
correctly. Otherwise it uses the coordinates you give (say 300, 400 
which you gave in window space) as object space coordinates... The 
camera is what gives the transformation from window space to world 
space, and then the traversal down from there gives the transformation 
from world space to object space.


So if you wanted to use computeIntersections(), you'd still have to set 
the node masks the way you are now, and use the version of 
computeIntersections that doesn't take a node path.


Hope this helps,

J-S
--
__
Jean-Sebastien Guayjean-sebastien.g...@cm-labs.com
   http://www.cm-labs.com/
http://whitestar02.webhop.org/
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Getting the effective stateset for a nodepath.

2009-11-16 Thread Chris Denham
Given a nodepath, what is the correct way to extract the effective material 
that will be used to render the node? i.e. to take into account the attribute 
inheritance and overrides etc.
My first stab looked like the code below, which seemed to work for simple 
cases, but not when the graph contained overrides etc.
Cheers
Chris.


Code:

osg::ref_ptrosg::StateSet stateSet = new osg::StateSet();
osg::NodePath::const_iterator i = getNodePath().begin();
for (; i != getNodePath().end(); i++)
{
osg::Node* node = *i;
const osg::StateSet* merge = node-getStateSet();
if (merge) stateSet-merge(*merge);
}

const osg::Material* material = NULL;
material = dynamic_castconst 
osg::Material*(stateSet-getAttribute(osg::StateAttribute::MATERIAL));





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





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


[osg-users] Functioncall error

2009-11-16 Thread Thorsten Werner
Hi,

Here's the code first:

class TGTextNode : public osg::Geode
{
public:
TGTextNode(std::string T_Text, int T_Size, int T_Res, int T_PosX,
int T_PosY, int T_PosZ);

void addOutline();
};

TGTextNode::TGTextNode(std::string T_Text, int T_Size, int T_Res, int T_PosX,
int T_PosY, int T_PosZ)
{
osg::ref_ptrosgText::Text textobj = new osgText::Text;
textobj-setAlignment(osgText::Text::CENTER_CENTER);
textobj-setCharacterSize(T_Size);
textobj-setFont(bewilder.ttf);
textobj-setFontResolution(T_Res, T_Res);
textobj-setPosition(osg::Vec3(T_PosX, T_PosY, T_PosZ));
textobj-setColor(osg::Vec4(100, 50, 0, 1));
textobj-setAxisAlignment(osgText::Text::SCREEN);
textobj-setText(T_Text);
//textobj-setBackdropType(osgText::Text::OUTLINE);
//textobj-setBackdropColor(osg::Vec4(1,.1,.1,1));
textobj-setDataVariance(osg::Object::DYNAMIC);
this-addDrawable(textobj.get());
}

void TGTextNode::addOutline()
{
textobj-setBackdropType(osgText::Text::OUTLINE);
textobj-setBackdropColor(osg::Vec4(1,.1,.1,1));
}

The point is that textobj in Function addOutline is an unknown member for the 
compiler. My first thought was that i need an copyconstructor. I tried to 
implement one but with no success. Can you help me. I know that this is maybe a 
bit noobish, but im really stuck here.

Thank you!

Cheers,
Thorsten

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





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


Re: [osg-users] Functioncall error

2009-11-16 Thread Jean-Sébastien Guay

Hi Thorsten,

textobj is a local object in your constructor, not a member of your 
class. Here are the changes you need.



class TGTextNode : public osg::Geode
{
public:
TGTextNode(std::string T_Text, int T_Size, int T_Res, int T_PosX,
int T_PosY, int T_PosZ);

void addOutline();


  protected:
  osg::ref_ptrosgText::Text _textobj;


};

TGTextNode::TGTextNode(std::string T_Text, int T_Size, int T_Res, int T_PosX,
int T_PosY, int T_PosZ)
{


_textobj = new osgText::Text;
// Then replace all textobj with _textobj below


textobj-setAlignment(osgText::Text::CENTER_CENTER);
textobj-setCharacterSize(T_Size);
textobj-setFont(bewilder.ttf);
textobj-setFontResolution(T_Res, T_Res);
textobj-setPosition(osg::Vec3(T_PosX, T_PosY, T_PosZ));
textobj-setColor(osg::Vec4(100, 50, 0, 1));
textobj-setAxisAlignment(osgText::Text::SCREEN);
textobj-setText(T_Text);
//textobj-setBackdropType(osgText::Text::OUTLINE);
//textobj-setBackdropColor(osg::Vec4(1,.1,.1,1));
textobj-setDataVariance(osg::Object::DYNAMIC);
this-addDrawable(textobj.get());
}

void TGTextNode::addOutline()
{
textobj-setBackdropType(osgText::Text::OUTLINE);
textobj-setBackdropColor(osg::Vec4(1,.1,.1,1));
}




I know that this is maybe a bit noobish, but im really stuck here.


No offense, but I think you need to pick up a book on C++ or programming 
in general. These are not noobish about OSG, they are noobish about 
programming, and we're normally here to answer questions about OSG itself...


Hope this helps,

J-S
--
__
Jean-Sebastien Guayjean-sebastien.g...@cm-labs.com
   http://www.cm-labs.com/
http://whitestar02.webhop.org/
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Best ways to render FE models with millions of tris and quads

2009-11-16 Thread Andrew Cunningham
Hi,
I am struggling with the most efficient way to render finite-element models  
with the best speed/memory tradeoff. These models may have milllions of nodes 
and elements ( triangles and quads), with usually simple shading.
I am replacing some custom OpenGL code (hard to maintain, not clean C++) with 
OSG ( easy to maintain, well written C++)

For example, with one particular model, the old custom  code which basically 
just held a vertex array and sent the primitives down the pipeline used about 
650M of memory. The OSG version with no optimization of the primitives and 
using display lists used 1.3G of memory. Turning on optimization, and turning 
off display lists brought that down to 850M. Turning display lists back on, 
cost about 200M.
The big problem with optimizing the geometry , is that one loses the ability to 
pick as all association of the primitive index with the original geometry is 
lost...

Obviously there is always a memory/speed trade-off here, but perhaps someone 
has been this way before and has some best practices advice.

Thanks

Andrew

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





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


[osg-users] [osgPPU] Problem Passing Lookup Table to Shader

2009-11-16 Thread Harash Sharma
Hi all,

 I am reasonably new to shaders. I intend to implement a floating point 
lookup table. The aim is to write a fragment shader that takes an in coming RGB 
Color, Lookup a floating value from the table and write it to the frame buffer 
pixel. I tried using a GL_FLOAT type 1-D LUMINANCE texture and accessing 
it using a sampler, followed by GL_FLOAT type 1-D RGB texture, but both of them 
put up a blank screen. 

    Thereafter, I tried to declare a varying float Array in the vertex shader 
and computed it there and used the values in the fragment shader. But now I get 
the following error:
    ** error C5041: cannot locate suitable resource to bind parameter null 
atom **

    Please help.

Regards

Harash


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


[osg-users] extracting the current image and depth information

2009-11-16 Thread Eric Coppock
Hi all,

Here's my second question... where I make it painfully obvious just how 
extremely noob I am with OSG...

I have OSGviewer incorporated into my own application, and responding nicely to 
viewpoint changes coming from a separate flight simulator.  I want to extract 
the current image (image may not be the right word here in OSG world ... 
view may be even worse?)  and the current depth information for the scene I'm 
looking at in the viewer window, so I can pass them to some downstream 
processing.

All the examples I've looked at seem to be a fair bit more complex than I'm 
looking for, and I haven't found the magic button yet.  Yes I bought the 
reference manual and read the quick-start guide.  ;)

Thank you!

Eric Coppock
Colorado, USA ;)

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





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


Re: [osg-users] Best ways to render FE models with millions of tris and quads

2009-11-16 Thread Andrew Burnett-Thompson
Hi there,

From my (short) experience with OSG, to reduce memory consumption, get the
number of vertices down (Optimise geometry using TRI_STRIP), share state
sets (or just use vertex colours for shading) and as you said turn off
display lists. Also reduce (or remove) Transform nodes.

As for optimisation, yes you say that you will lose the ability to pick a
primitive, but could you perhaps write your own picking IntersectionVisitor
that first picks by Geode, then drills down into the triangle and updates
the vertex colours just for that tri?

Take a look at IntersectionVisitor, SmoothingVisitor, TriangleFunctor as
these deal with triangle-level geometry.

Hope that is helpful,
Andrew

On Mon, Nov 16, 2009 at 8:04 PM, Andrew Cunningham o...@a-cunningham.comwrote:

 Hi,
 I am struggling with the most efficient way to render finite-element
 models  with the best speed/memory tradeoff. These models may have milllions
 of nodes and elements ( triangles and quads), with usually simple
 shading.
 I am replacing some custom OpenGL code (hard to maintain, not clean C++)
 with OSG ( easy to maintain, well written C++)

 For example, with one particular model, the old custom  code which
 basically just held a vertex array and sent the primitives down the pipeline
 used about 650M of memory. The OSG version with no optimization of the
 primitives and using display lists used 1.3G of memory. Turning on
 optimization, and turning off display lists brought that down to 850M.
 Turning display lists back on, cost about 200M.
 The big problem with optimizing the geometry , is that one loses the
 ability to pick as all association of the primitive index with the original
 geometry is lost...

 Obviously there is always a memory/speed trade-off here, but perhaps
 someone has been this way before and has some best practices advice.

 Thanks

 Andrew

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





 ___
 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] help with osgmovie

2009-11-16 Thread Ivan Salguero
Hi,
now i am using osg 2.8.2 but some .lib like image doesn't have the methods that 
osgmovie said .. . what i need for use osgmovie?
... 

Thank you!

Cheers,
Ivan

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





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


Re: [osg-users] help with osgmovie

2009-11-16 Thread Ivan Salguero
Hi,
how add the sdl lib to my project?
... 

Thank you!

Cheers,
Ivan

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





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


Re: [osg-users] [osgOcean] How could I make the underwater ground looks more clearly?

2009-11-16 Thread Tian Ma
Hi Kim,

Thank you! 

Yes, that workds. Look better now.

Cheers,

MT.




Kim Bale wrote:
 Hi Tian,
 
 Disabling depth of field should fix that. If it doesn't let me know
 and I'll see if something has got broken.
 
 Cheers,
 
 Kim.
 
 
 2009/11/16 Tian Ma :
 
  Hi,
  
     I have turn off all the underwater effects, but still blurry.
  
     I want to know that: which parameter or functions can make the blurry 
  underwater ground clear?
  
  Thank you!
  
  Cheers,
  Tian
  
  --
  Read this topic online here:
  http://forum.openscenegraph.org/viewtopic.php?p=19683#19683
  
  
  
  
  
  ___
  osg-users mailing list
  
  http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
  
  
 ___
 osg-users mailing list
 
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
 
  --
 Post generated by Mail2Forum


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





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


[osg-users] Text gradient in HSV or RGB

2009-11-16 Thread Terry Welsh
I just tried using a color gradient in my osgText::Text.  The problem
is that I can't fade from a color with a definite hue to a gray
accurately.  For example, fading from green on the top to gray on the
bottom ((0, 1, 0) to (0.5, 0.5, 0.5)) works for the capital letters.
But lower-case letters end up with sort of a desaturated orange on top
(0.75, 0.75, 0.375) and it looks weird.  This is because osgText::Text
interpolates in HSV space instead of RGB space and gray is assumed to
have a hue of 0.

The comments in Text.cpp say  for linear interpolation to look
correct for colors and imitate what OpenGL does, we need to convert
over to Hue-Saturation-Value and linear interpolate in that space.
It's possible this is in the OpenGL spec, but I've never heard of it
and I've never seen an OpenGL implementation actually do this.  I
think we should simplify things and just interpolate in RGB space,
which is probably the correct way to go.

Alternatives are:
1.  to never specify a color that is exactly gray and give it a little
of the same hue as your other color.
2.  to make Text.cpp a little smarter in computing the hues if one or
more of the specified colors are gray.

Thoughts?  I think I can fix up the code pretty fast once we agree on
a solution.
--
Terry Welsh  /  mogumbo 'at' gmail.com
www.reallyslick.com  /  www.mogumbo.com
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] extracting the current image and depth information

2009-11-16 Thread J.P. Delport

Hi,

a few pointers...

For just a screenshot type app, look at osgscreenshot example.

To get depth information you would have to attach a texture to a Render 
to Texture (RTT) camera's depth buffer. An RTT camera can also give you 
a copy of the rendered view.


Search the archives for RTT render to texture camera attachments 
FBO MRT.


Textures rendered to can be copied back to the CPU as osg::Image's.

There are some osg examples that use render to texture, start with 
osgprerender and then search for some of the functions it uses.


For depth related stuff you can probably start at all the shadow examples.

jp

Eric Coppock wrote:

Hi all,

Here's my second question... where I make it painfully obvious just how 
extremely noob I am with OSG...

I have OSGviewer incorporated into my own application, and responding nicely to viewpoint changes 
coming from a separate flight simulator.  I want to extract the current image (image 
may not be the right word here in OSG world ... view may be even worse?)  and the 
current depth information for the scene I'm looking at in the viewer window, so I can pass them to 
some downstream processing.

All the examples I've looked at seem to be a fair bit more complex than I'm 
looking for, and I haven't found the magic button yet.  Yes I bought the 
reference manual and read the quick-start guide.  ;)

Thank you!

Eric Coppock
Colorado, USA ;)

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





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



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


This message has been scanned for viruses and dangerous content by MailScanner, 
and is believed to be clean.  MailScanner thanks Transtec Computers for their support.


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


Re: [osg-users] Best ways to render FE models with millions of tris and quads

2009-11-16 Thread J.P. Delport

Hi,

Andrew Cunningham wrote:

Hi, I am struggling with the most efficient way to render
finite-element models  with the best speed/memory tradeoff. These
models may have milllions of nodes and elements ( triangles and
quads), with usually simple shading. I am replacing some custom
OpenGL code (hard to maintain, not clean C++) with OSG ( easy to
maintain, well written C++)

For example, with one particular model, the old custom  code which
basically just held a vertex array and sent the primitives down the
pipeline used about 650M of memory. The OSG version with no
optimization of the primitives and using display lists used 1.3G of
memory. Turning on optimization, and turning off display lists
brought that down to 850M. Turning display lists back on, cost about
200M. The big problem with optimizing the geometry , is that one
loses the ability to pick as all association of the primitive index
with the original geometry is lost...


Have you tried VBOs instead of display lists? I understand your picking 
problem and would first try to optimise everything that does not throw 
away vertices, i.e. try to share as much as possible. The picking code 
in osgmovie gives an example of how you can get back indices.


jp



Obviously there is always a memory/speed trade-off here, but perhaps
someone has been this way before and has some best practices advice.

Thanks

Andrew

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






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





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


This message has been scanned for viruses and dangerous content by MailScanner, 
and is believed to be clean.  MailScanner thanks Transtec Computers for their support.


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