Re: [osg-users] help with osgmovie
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
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
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?
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
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?
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?
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
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
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?
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
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
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
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
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
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
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
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
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
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?
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?
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
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()
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
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
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.
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
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
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
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
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
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
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
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
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?
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
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
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
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