[osg-users] Are there any plans for GPGPU utiliziation in OSG?
Hi, Are there any plans for utilizing General Purpose GPU for matrix operations? At SIGGRAPH 2008, there was a lot of discussion about utilizing the GPU this way and some hardware independent libraries for using GPGPU do exist. I am currently looking into this for future projects. Thank you, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Simple camera setup question
Hi, I am using the SceneView object. I have specific eye, center and up vectors that I am using to initialize my viewpoint. osg::Vec3 eye(ex, ey, ez); osg::Vec3 center(cx, cy, xz); osg::Vec3 up(ux, uy, uz); m_sceneView-setViewMatrix(osg::Matrixd::lookAt(eye,center,up)); But now I have a dilema. I have some offset in screen coordinates (or pixels) example: Xoffset = 19 and Yoffset = -9; So basically, I would like to do a one time camera pan to this offset amount. I suppose I could translate the view matrix if I knew what the offset was in world coordinates. I have been looking through the osg code and I can't seem to find what I need. If you want to know why I need this: I am aligning a background image that has to be processed and requires an offset in order to match up with the 3D scene. When I offset the image, then I get a border on one or two sides of the window - depending whether the offset is +- for X Y. This border looks bad so I would rather just pan the camera by the offset amount which is in pixels. Any thoughts would be appreciated, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] GL_TEXTURE_GEN_S question
Hi, I am applying sphere mapping and using GL_TEXTURE_GEN_S T so that osg will generate the texture coordinates automatically. My question is: if the object is changed by something like a boolean operation, do I need to do anything or will the texture coordinates be regenerated correctly because it is set to generate texture coordinates automatically through: state-setTextureMode(texUnit, GL_TEXTURE_GEN_S, osg::StateAttribute::ON); Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] GL_TEXTURE_GEN_S question
OK, I will look into that. Thanks for your reply. Judie On Jul 11, 11:42 am, Robert Osfield [EMAIL PROTECTED] wrote: Hi Judie, When you enable tex gen, the texture coordinates are generated down on the GPU for each vertex that is processed, so it's not a state that you need to update at all. It'd best to grab an OpenGL book, or looks at online docs to get a full understanding of tex gen. The OSG just wraps up what OpenGL provides, so the OpenGL reference material will go a long way to helping you understand how tex gen is done in OSG. Robert. On Fri, Jul 11, 2008 at 6:57 PM, Judie [EMAIL PROTECTED] wrote: Hi, I am applying sphere mapping and using GL_TEXTURE_GEN_S T so that osg will generate the texture coordinates automatically. My question is: if the object is changed by something like a boolean operation, do I need to do anything or will the texture coordinates be regenerated correctly because it is set to generate texture coordinates automatically through: state-setTextureMode(texUnit, GL_TEXTURE_GEN_S, osg::StateAttribute::ON); Thanks, Judie ___ osg-users mailing list [EMAIL PROTECTED] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph...- Hide quoted text - - Show quoted text - ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Bump mapping question
Hi Jon, Thank you so much for the tip. My maps look very washed out so I need to change the lighting, material, texture maps, something, but I think that I am very close now. I will use the Xnormal and see if that helps. What kind of light do you usually use and what settings and what material settings do you find work the best? Thanks, Judie On Jul 2, 5:27 pm, Jon Newell [EMAIL PROTECTED] wrote: Hi Judie A rarer than hens teeth content question :) We just use a standard 24 bit normal maps, for which we use a few different tools, the least sophisticated or useful of which is the Nvidia tool, works but is ugly and output is average. Xnormal www.*xnormal*.net and Crazybumphttp://www.crazybump.com/are the primary ones, of which crazy bump is outstanding for extracting normal maps and displacement maps from images Xnormal is great for extracting normal maps from high rez models. X normal is free, Crazybump is not. cheers Jon Judie wrote: fyi... I found this link: http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDo... and I am downloading NVidia's plugins for photoshop now hoping that will be what I need. On Jul 2, 10:37 am, Judie [EMAIL PROTECTED] wrote: Hi, I am trying to add bump mapping and I am wondering what the bump map format should be (i.e. bmp with 8 bits). Are there any examples? I am using osgFX::BumpMapping. I want to know what the format for the map in this call should be: bump-setOverrideNormalMapTexture( bumpTex ); Thanks, Judie ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... ___ osg-users mailing list [EMAIL PROTECTED] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph...- Hide quoted text - - Show quoted text - ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Bump mapping question
in the link: http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a01058.html#_details it says: Note that both diffuse and normal map textures must have corresponding UV maps defined in Geometry objects Is there a way to generate the UV map programmatically? Can I just use the osg equivalent to OpenGL's GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T? On Jul 2, 11:26 am, Judie [EMAIL PROTECTED] wrote: fyi... I found this link:http://www.openscenegraph.org/documentation/OpenSceneGraphReferenceDo... and I am downloading NVidia's plugins for photoshop now hoping that will be what I need. On Jul 2, 10:37 am, Judie [EMAIL PROTECTED] wrote: Hi, I am trying to add bump mapping and I am wondering what the bump map format should be (i.e. bmp with 8 bits). Are there any examples? I am using osgFX::BumpMapping. I want to know what the format for the map in this call should be: bump-setOverrideNormalMapTexture( bumpTex ); Thanks, Judie ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] StateSet issues with parent\child node
Hi, I must be doing something wrong. I have a function that adds a sphere map and material to a node. When I apply this function to a parent, it also affects the child. How can I make it just affect the parent and not the child? Also, if I call the same function with different settings for the child, it still gets the parent's settings even if I call the function on the child last. In the algorithm I do the following: find the node by name that I want to apply the state to - currNode. make a new group node (gnode) and insert that between the currNode and it's parent. I use this gnode to get or create the state. Then I add my settings to this state. I also give it a unique name. I have also tried just applying the state to the currNode directly and I get the same behavior no matter what. Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] StateSet issues with parent\child node
On Jul 1, 11:27 am, Fuesz, Matthew [EMAIL PROTECTED] wrote: Judie, The default behavior is for States/StateSets to be inherited down the scene graph, from parent to child. However, in the default configuration, setting the StateSet of the child directly should cause that child (and any children that it itself has) to use the new StateSet parameters. This inheritance method is controlled by the OverrideValue flag, which can be set when attributes and modes are enabled or disabled on a StateSet. It sounds like what you're doing should work (set the state on the parent, then reset the state on the child), but I don't understand why you're creating and adding another group node in between the parent and child, as this is completely unnecessary to manipulate state changes. OK, I thought someone had told me this needed to be done but that was a while ago. It works as you say. All you need to do is to query the StateSet from the parent (using getOrCreateStateSet() ) and make any appropriate changes. Then get the StateSet from the child, and remove/reverse any changes (e.g., disable materials, or apply 'empty' Programs in the case of shaders). Alternatively, you could set the child's OverrideValue to PROTECTED in order to prevent the parent's state values from being inherited. This did the trick! Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Seeking OSG texture mapping application
On Jun 27, 4:53 pm, Ulrich Hertlein [EMAIL PROTECTED] wrote: Judie wrote: In your .osg file, look for TexCoordArray? I want my metal machined piece to look like the cow.osg in the viewer. cow.osg uses an environment map so that it looks reflective. The texture coordinates are auto-generated, so it doesn't contain texture coordinates; look for TexGen with modeSPHERE_MAP. OK I will try that then. Thank you. Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Seeking OSG texture mapping application
On Jun 26, 4:50 pm, Paul Martz [EMAIL PROTECTED] wrote: Hi Judie -- Glad to see you're back with OSG. Another modeling option would be output your OSG data as .flt, load it into Carbon Graphics Geo, make your changes, then save as .flt (or .geo) and load back into your OSG app. So now I am trying to find the texture coordinates. I have just started on this leg so I won't ask any stupid questions until I have more info. In your .osg file, look for TexCoordArray? Yes, I have found out about that from your book, OSG Quck Start Guide. I want my metal machined piece to look like the cow.osg in the viewer. I wanted to open the cow.osg in a modeling application so I could understand the texture mapping applied. I will try the Carbon Graphics Geo. Or maybe I can figure it out by looking at the cow.osg file in an ascii reader. Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Seeking OSG texture mapping application
On Jun 27, 5:26 am, Jean-Sébastien Guay [EMAIL PROTECTED] labs.com wrote: Hello Judie, Well, I downloaded a 30 day trial of 3DS Max 2009 and it did not have an osg importer or exporter. There is an exporter, though I have no idea if it's still being developed and if it works with recent versions of 3DS Max. http://sourceforge.net/projects/osgmaxexp There is no importer I know of. Perhaps you can explore using osgconv to convert to some format Max can import (perhaps COLLADA, if you can build the OSG plugin for that), then do whatever you need in Max and save back into .osg (or again, COLLADA might be a good export path, since 3DS Max has a native COLLADA reader/writer). That is a good idea. I will look into it. Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Seeking OSG texture mapping application
Hi, Can 3D Studio Max import osg, apply texture and export it back to osg? If not then is there another modeling software that can? I am having problems generating texture coordinates for a model representing a machined work peice. If there is an algorithm for apply textures that would also be appreciated. Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Seeking OSG texture mapping application
Well, I downloaded a 30 day trial of 3DS Max 2009 and it did not have an osg importer or exporter. But it had an STL importer which is what my model format is in. So I imported it, generated the texture coordinates, and then exported it as .3ds which OpenSceneGraph could read, and then I saved it as a .osg. So now I am trying to find the texture coordinates. I have just started on this leg so I won't ask any stupid questions until I have more info. Judie On Jun 26, 7:53 am, Judie [EMAIL PROTECTED] wrote: Hi, Can 3D Studio Max import osg, apply texture and export it back to osg? If not then is there another modeling software that can? I am having problems generating texture coordinates for a model representing a machined work peice. If there is an algorithm for apply textures that would also be appreciated. Thanks, Judie ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Need help getting the osg::ColorMask I previously set
CODE: osg::StateSet *stateSet = group-getOrCreateStateSet(); osg::StateSet::AttributeList attributes = stateSet- getAttributeList(); osg::StateSet::AttributeList::iterator aitr = NULL; for(aitr= attributes.begin(); aitr!=attributes.end(); ++aitr) { osg::StateAttribute::Type temp = (*aitr).first.first; if(temp == osg::StateAttribute::COLORMASK) { osg::ColorMask mask = (*aitr).second.second; This won't compile. How can I get the osg::ColorMask from the osg::StateSet::AttributeList::iterator? Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Depth buffer issue
I have to laugh at myself for this brilliant idea! Alpha blending is mutually exclusive with occlusion. In otherwords, the parts that I want occluded by the invisible portion, if that invisible portion is alpha blended, will be visible. However, I want a copy of the invisible geometry so that I can draw it again as barely visible for matching the video. Judie On Apr 16, 7:57 am, Judie [EMAIL PROTECTED] wrote: The application is for augemented reality. Here is an example:http://www.youtube.com/watch?v=P9KPJlA5yds I have realized another method. Instead of disabling and enabling the color buffer, I will set the transparency to 100% transparent on the objects I don't want to be visible. Judie On Apr 16, 7:23 am, Robert Osfield [EMAIL PROTECTED] wrote: Hi Judie, On Wed, Apr 16, 2008 at 3:16 PM, Judie [EMAIL PROTECTED] wrote: High level explanation of what I am trying to do: Replace some of the geometry in the scene with live camera feed. But in order to do this, I still need the actual geometry in the scene to modify the depth buffer as if it were there even though it is not visible. What do you mean by replace some geometry in the scene with a live camera feed? What you say actual geometry what do you mean? Higher level please I still have little clue about what you are trying to do. The need for this understanding is that I can't see any reason for you piling into the code you are using, messing around with lowel level stuff like RenderBin/RenderStage/CullVisitor seems incredibly premature and very likely inappropriate. I have no clue why you want to go off on do this in your instance. So please could you try explaining what type of application you have, what type of data your are trying to integrate and the results you are after. Robert. ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph...- Hide quoted text - - Show quoted text - ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Depth buffer issue
Hi Frédéric, Thanks for your advice. The invisible objects are in the scenegraph before the visible ones so at least I have that going for me. I think we won't be moving the camera view too much so I think it will be OK. I just thought it was weird that I would get the expected behavior until I rotated the camera to some angles and then portions that should be occluded would become visible. Judie On Apr 16, 7:48 am, Frédéric SPEISSER [EMAIL PROTECTED] wrote: Hi Judie, What I noticed using colormask is, if you want some invisible objects (with a colormask to false) to occlude some other objects you must add the invisible ones before the others in the scenegraph. When I say before it is from the scenegraph traversal point of view. I don't know if it can help you... Frédéric. Judie a écrit : Hi Robert, I am sorry for not providing an adequate description. High level explanation of what I am trying to do: Replace some of the geometry in the scene with live camera feed. But in order to do this, I still need the actual geometry in the scene to modify the depth buffer as if it were there even though it is not visible. The initial set up for the render states of the scene is: osgUtil::CullVisitor *pCullVisitor = m_sceneView-getCullVisitor(); osgUtil::RenderBin *pRenderBin = pCullVisitor-getCurrentRenderBin(); pRenderBin-setSortMode(osgUtil::RenderBin::SORT_BACK_TO_FRONT); osg::StateSet *pStateSet = m_sceneView-getGlobalStateSet(); pStateSet-setMode(GL_ALPHA_TEST,osg::StateAttribute::OFF); osg::CullFace *pCullFace = new osg::CullFace; pCullFace-setMode(osg::CullFace::BACK); pStateSet-setMode(GL_CULL_FACE, osg::StateAttribute::ON); pStateSet-setAttribute(pCullFace, osg::StateAttribute::ON); osg::ShadeModel *pShadeMdl = new osg::ShadeModel; pShadeMdl-setMode(osg::ShadeModel::FLAT); pStateSet-setAttribute(pShadeMdl, osg::StateAttribute::ON); osg::Depth *pDepth = new osg::Depth; pDepth-setFunction(osg::Depth::LEQUAL); pStateSet-setMode(GL_DEPTH_TEST, osg::StateAttribute::ON); pStateSet-setAttribute(pDepth, osg::StateAttribute::ON); All I do to make some of the geometry not visible and yet still drawn to the depth buffer, is disable writes to the color buffer: osg::ColorMask *colormaskOff = new osg::ColorMask(false, false, false, false); osg::StateSet* state = node-getOrCreateStateSet(); state-setAttribute(colormaskOff); At another point in the scene graph, I enable writes to the color buffer using the same method except the ColorMask values are all true. I never disable depth testing. When the scene is rendered, I see my video background and I see my objects that should be visible. However, the depth buffer testing does not seem to work correctly because some parts of the visible geometry that should be occluded by the invisible geometry are showing. But this is not uniform. There are times when the visible geometry is occluded by the invisible geometry as it should be. If I change the sorting to this: pRenderBin-setSortMode(osgUtil::RenderBin::SORT_FRONT_TO_BACK); then it appears to work until I rotate the camera and then there are angles which seem to break the depth testing. What doesn't make sense to me is why the behavior should change at all just by disabling writes to the color buffer? I have done the same with OpenGL code in a different application, where I was not sorting (because there was no transparency) and just relying on the graphics drivers\hardware to do the Z buffering, and the occlusion of the inivisible objects worked fine. So it seems there must be some optimization taking place inside the scene graph that is culling objects or something. I don't know. It just doesn't make sense to me why I can do something in OpenGL and not with OSG. What do you think? Thanks, Judie On Apr 16, 1:57 am, Robert Osfield [EMAIL PROTECTED] wrote: Hi Judie, I'm afraid I've just found it too difficult to work out what you are doing to be able to provide any suggestions. Could you provide a high level explanation of what you are trying to do and why to give a bit of context. Then why you provide code snippets could you space them better as word wrap has made it extremely difficult to read the code. Robert. On Tue, Apr 15, 2008 at 11:09 PM, Judie [EMAIL PROTECTED] wrote: In my code I have an OSG tree with the following global state attributes defined: osgUtil::CullVisitor *pCullVisitor = m_sceneView- getCullVisitor(); osgUtil::RenderBin *pRenderBin = pCullVisitor-getCurrentRenderBin(); pRenderBin-setSortMode(osgUtil::RenderBin::SORT_BACK_TO_FRONT); osg::StateSet *pStateSet = m_sceneView- getGlobalStateSet(); pStateSet-setMode(GL_ALPHA_TEST, osg::StateAttribute::OFF); osg::CullFace *pCullFace = new osg::CullFace
Re: [osg-users] Using a visitor after a DEEP_COPY_ALL doesn't returnanything
Hi Paul, Does that work on your compiler? I tried that as well, but I got the following error: error C2440: 'initializing' : cannot convert from 'class osg::Object *' to 'class osg::ref_ptrclass osg::Node' No constructor could take the source type, or constructor overload resolution was ambiguous So then I tried using the parent of the node which is a group and create a group from that using the deep copy: osg::Ref_Ptrosg::Group CopyAParent = new osg::Group(*AParent, osg::CopyOp::DEEP_COPY_ALL); but it still doesn't have any nodes in the list: osg::Node *test = m_CopyAParent -getChild(0); findNodeVisitor nv1(FINDNODETYPE_NODETYPE|FINDNODETYPE_FINDALL, Geode); test-accept(nv1); std::vectorosg::Node* nodeList = nv1.getNodeList(); int length = nodeList.size(); here length is 0. Thanks, Judie On Apr 16, 6:47 pm, Paul Martz [EMAIL PROTECTED] wrote: Ha! What a coincidence. I just encountered this exact same thing today. When you call new Node, you get a Node. Nodes don't have children, only Groups have children. So you don't want to use the copy constructor if you want to copy a whole subtree. I discovered that OSG offers an alternative to the copy constructor to get around just this very issue. Use the clone() method. So, instead, your code should look like this: osg::ref_ptrosg::Node copyA = A-clone( osg::CopyOp::DEEP_COPY_ALL ); copyA will be a ref_ptr to a Node, but the actual type of the object pointed to will be a clone of A, so if A is a Group (with children), then copyA will also be a Group. Later, -Paul -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Judie Sent: Wednesday, April 16, 2008 2:21 PM To: [EMAIL PROTECTED] Subject: [osg-users] Using a visitor after a DEEP_COPY_ALL doesn't returnanything HI, I want to make a copy of an existing node and all it's children, and then find all the geometry and make it transparent. I do something like osg::ref_ptrosg::Node copyA = new osg::Node(*A, osg::CopyOp::DEEP_COPY_ALL); where A is the original Node tree. If I try to use the findNodeVisitor: findNodeVisitor nv(FINDNODETYPE_NODETYPE|FINDNODETYPE_FINDALL, Geode); copyA-accept(nv); std::vectorosg::Node* nodeList = nv.getNodeList(); int length = nodeList.size(); then length is 0. If I do the same with the original node: findNodeVisitor nv(FINDNODETYPE_NODETYPE|FINDNODETYPE_FINDALL, Geode); A-accept(nv); std::vectorosg::Node* nodeList = nv.getNodeList(); int length = nodeList.size(); then length is 32. Also if I try to cast the copyA to a osg::Group* I get a null pointer: osg::Group* temp = dynamic_castosg::Group*(copyA); temp is a null pointer. So did I miss a step somewhere? Judie ___ osg-users mailing list [EMAIL PROTECTED] http://lists.openscenegraph.org/listinfo.cgi/osg-users-opensce negraph.org ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph...- Hide quoted text - - Show quoted text - ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Using a visitor after a DEEP_COPY_ALL doesn't returnanything
Hi Serge, Thanks for that piece of information. I am still not getting a deep copy of the nodes, however. I did an experiment and I went to the top level node: osg::Node* subgraph = m_sceneView-getSceneData(); and I used this one for the deep copy osg::ref_ptrosg::Node copyA = static_castosg::Node *(subgraph- clone(osg::CopyOp::DEEP_COPY_ALL )); And now I get a few nodes in the new copy. My list now contains 3 items which makes sense because the tree is like: subgraph \ GroupA \ A / | \ B C D where A has 32 items. So there is stoppage at node A and no more copy or else there is a problem with the visitor. findNodeVisitor nv(FINDNODETYPE_NODETYPE| FINDNODETYPE_FINDALL,Geode); copyA-accept(nv); std::vectorosg::Node* nodeList = nv.getNodeList(); int length = nodeList.size(); now length is 3 (but at this level it should be 35). Judie On Apr 17, 8:04 am, Serge Lages [EMAIL PROTECTED] wrote: Hi, Just cast the clone() return to an osg::Node * and it should work : osg::ref_ptrosg::Node copyA = static_castosg::Node *(A-clone( osg::CopyOp::DEEP_COPY_ALL )); On Thu, Apr 17, 2008 at 4:54 PM, Judie [EMAIL PROTECTED] wrote: Hi Paul, Does that work on your compiler? I tried that as well, but I got the following error: error C2440: 'initializing' : cannot convert from 'class osg::Object *' to 'class osg::ref_ptrclass osg::Node' No constructor could take the source type, or constructor overload resolution was ambiguous So then I tried using the parent of the node which is a group and create a group from that using the deep copy: osg::Ref_Ptrosg::Group CopyAParent = new osg::Group(*AParent, osg::CopyOp::DEEP_COPY_ALL); but it still doesn't have any nodes in the list: osg::Node *test = m_CopyAParent -getChild(0); findNodeVisitor nv1(FINDNODETYPE_NODETYPE|FINDNODETYPE_FINDALL, Geode); test-accept(nv1); std::vectorosg::Node* nodeList = nv1.getNodeList(); int length = nodeList.size(); here length is 0. Thanks, Judie On Apr 16, 6:47 pm, Paul Martz [EMAIL PROTECTED] wrote: Ha! What a coincidence. I just encountered this exact same thing today. When you call new Node, you get a Node. Nodes don't have children, only Groups have children. So you don't want to use the copy constructor if you want to copy a whole subtree. I discovered that OSG offers an alternative to the copy constructor to get around just this very issue. Use the clone() method. So, instead, your code should look like this: osg::ref_ptrosg::Node copyA = A-clone( osg::CopyOp::DEEP_COPY_ALL ); copyA will be a ref_ptr to a Node, but the actual type of the object pointed to will be a clone of A, so if A is a Group (with children), then copyA will also be a Group. Later, -Paul -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Judie Sent: Wednesday, April 16, 2008 2:21 PM To: [EMAIL PROTECTED] Subject: [osg-users] Using a visitor after a DEEP_COPY_ALL doesn't returnanything HI, I want to make a copy of an existing node and all it's children, and then find all the geometry and make it transparent. I do something like osg::ref_ptrosg::Node copyA = new osg::Node(*A, osg::CopyOp::DEEP_COPY_ALL); where A is the original Node tree. If I try to use the findNodeVisitor: findNodeVisitor nv(FINDNODETYPE_NODETYPE|FINDNODETYPE_FINDALL, Geode); copyA-accept(nv); std::vectorosg::Node* nodeList = nv.getNodeList(); int length = nodeList.size(); then length is 0. If I do the same with the original node: findNodeVisitor nv(FINDNODETYPE_NODETYPE|FINDNODETYPE_FINDALL, Geode); A-accept(nv); std::vectorosg::Node* nodeList = nv.getNodeList(); int length = nodeList.size(); then length is 32. Also if I try to cast the copyA to a osg::Group* I get a null pointer: osg::Group* temp = dynamic_castosg::Group*(copyA); temp is a null pointer. So did I miss a step somewhere? Judie ___ osg-users mailing list [EMAIL PROTECTED] http://lists.openscenegraph.org/listinfo.cgi/osg-users-opensce negraph.org ___ osg-users mailing list [EMAIL PROTECTED]:// lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph...- Hide quoted text - - Show quoted text - ___ osg-users mailing list [EMAIL PROTECTED] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... -- Serge Lageshttp://www.tharsis-software.com ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph...- Hide quoted text - - Show quoted text
Re: [osg-users] Depth buffer issue
Hi Robert, I am sorry for not providing an adequate description. High level explanation of what I am trying to do: Replace some of the geometry in the scene with live camera feed. But in order to do this, I still need the actual geometry in the scene to modify the depth buffer as if it were there even though it is not visible. The initial set up for the render states of the scene is: osgUtil::CullVisitor *pCullVisitor = m_sceneView-getCullVisitor(); osgUtil::RenderBin *pRenderBin = pCullVisitor-getCurrentRenderBin(); pRenderBin-setSortMode(osgUtil::RenderBin::SORT_BACK_TO_FRONT); osg::StateSet *pStateSet = m_sceneView-getGlobalStateSet(); pStateSet-setMode(GL_ALPHA_TEST,osg::StateAttribute::OFF); osg::CullFace *pCullFace = new osg::CullFace; pCullFace-setMode(osg::CullFace::BACK); pStateSet-setMode(GL_CULL_FACE, osg::StateAttribute::ON); pStateSet-setAttribute(pCullFace, osg::StateAttribute::ON); osg::ShadeModel *pShadeMdl = new osg::ShadeModel; pShadeMdl-setMode(osg::ShadeModel::FLAT); pStateSet-setAttribute(pShadeMdl, osg::StateAttribute::ON); osg::Depth *pDepth = new osg::Depth; pDepth-setFunction(osg::Depth::LEQUAL); pStateSet-setMode(GL_DEPTH_TEST, osg::StateAttribute::ON); pStateSet-setAttribute(pDepth, osg::StateAttribute::ON); All I do to make some of the geometry not visible and yet still drawn to the depth buffer, is disable writes to the color buffer: osg::ColorMask *colormaskOff = new osg::ColorMask(false, false, false, false); osg::StateSet* state = node-getOrCreateStateSet(); state-setAttribute(colormaskOff); At another point in the scene graph, I enable writes to the color buffer using the same method except the ColorMask values are all true. I never disable depth testing. When the scene is rendered, I see my video background and I see my objects that should be visible. However, the depth buffer testing does not seem to work correctly because some parts of the visible geometry that should be occluded by the invisible geometry are showing. But this is not uniform. There are times when the visible geometry is occluded by the invisible geometry as it should be. If I change the sorting to this: pRenderBin-setSortMode(osgUtil::RenderBin::SORT_FRONT_TO_BACK); then it appears to work until I rotate the camera and then there are angles which seem to break the depth testing. What doesn't make sense to me is why the behavior should change at all just by disabling writes to the color buffer? I have done the same with OpenGL code in a different application, where I was not sorting (because there was no transparency) and just relying on the graphics drivers\hardware to do the Z buffering, and the occlusion of the inivisible objects worked fine. So it seems there must be some optimization taking place inside the scene graph that is culling objects or something. I don't know. It just doesn't make sense to me why I can do something in OpenGL and not with OSG. What do you think? Thanks, Judie On Apr 16, 1:57 am, Robert Osfield [EMAIL PROTECTED] wrote: Hi Judie, I'm afraid I've just found it too difficult to work out what you are doing to be able to provide any suggestions. Could you provide a high level explanation of what you are trying to do and why to give a bit of context. Then why you provide code snippets could you space them better as word wrap has made it extremely difficult to read the code. Robert. On Tue, Apr 15, 2008 at 11:09 PM, Judie [EMAIL PROTECTED] wrote: In my code I have an OSG tree with the following global state attributes defined: osgUtil::CullVisitor *pCullVisitor = m_sceneView- getCullVisitor(); osgUtil::RenderBin *pRenderBin = pCullVisitor-getCurrentRenderBin(); pRenderBin-setSortMode(osgUtil::RenderBin::SORT_BACK_TO_FRONT); osg::StateSet *pStateSet = m_sceneView- getGlobalStateSet(); pStateSet-setMode(GL_ALPHA_TEST, osg::StateAttribute::OFF); osg::CullFace *pCullFace = new osg::CullFace; pCullFace-setMode(osg::CullFace::BACK); pStateSet-setMode(GL_CULL_FACE, osg::StateAttribute::ON); pStateSet-setAttribute(pCullFace, osg::StateAttribute::ON); osg::ShadeModel *pShadeMdl = new osg::ShadeModel; pShadeMdl-setMode(osg::ShadeModel::FLAT); pStateSet-setAttribute(pShadeMdl, osg::StateAttribute::ON); osg::Depth *pDepth = new osg::Depth; pDepth-setFunction(osg::Depth::LEQUAL); pStateSet-setMode(GL_DEPTH_TEST, osg::StateAttribute::ON); pStateSet-setAttribute(pDepth, osg::StateAttribute::ON); The only other time I change the state is when I enable and disable the color buffer writes. Here is what I am seeing: If I render the scene with the color buffer always on, then objects that should be occluded by other objects behave correctly and are occluded. When I render the scene with the color
Re: [osg-users] Depth buffer issue
The application is for augemented reality. Here is an example: http://www.youtube.com/watch?v=P9KPJlA5yds I have realized another method. Instead of disabling and enabling the color buffer, I will set the transparency to 100% transparent on the objects I don't want to be visible. Judie On Apr 16, 7:23 am, Robert Osfield [EMAIL PROTECTED] wrote: Hi Judie, On Wed, Apr 16, 2008 at 3:16 PM, Judie [EMAIL PROTECTED] wrote: High level explanation of what I am trying to do: Replace some of the geometry in the scene with live camera feed. But in order to do this, I still need the actual geometry in the scene to modify the depth buffer as if it were there even though it is not visible. What do you mean by replace some geometry in the scene with a live camera feed? What you say actual geometry what do you mean? Higher level please I still have little clue about what you are trying to do. The need for this understanding is that I can't see any reason for you piling into the code you are using, messing around with lowel level stuff like RenderBin/RenderStage/CullVisitor seems incredibly premature and very likely inappropriate. I have no clue why you want to go off on do this in your instance. So please could you try explaining what type of application you have, what type of data your are trying to integrate and the results you are after. Robert. ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Using a visitor after a DEEP_COPY_ALL doesn't return anything
HI, I want to make a copy of an existing node and all it's children, and then find all the geometry and make it transparent. I do something like osg::ref_ptrosg::Node copyA = new osg::Node(*A, osg::CopyOp::DEEP_COPY_ALL); where A is the original Node tree. If I try to use the findNodeVisitor: findNodeVisitor nv(FINDNODETYPE_NODETYPE|FINDNODETYPE_FINDALL, Geode); copyA-accept(nv); std::vectorosg::Node* nodeList = nv.getNodeList(); int length = nodeList.size(); then length is 0. If I do the same with the original node: findNodeVisitor nv(FINDNODETYPE_NODETYPE|FINDNODETYPE_FINDALL, Geode); A-accept(nv); std::vectorosg::Node* nodeList = nv.getNodeList(); int length = nodeList.size(); then length is 32. Also if I try to cast the copyA to a osg::Group* I get a null pointer: osg::Group* temp = dynamic_castosg::Group*(copyA); temp is a null pointer. So did I miss a step somewhere? Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] More help with state changes
Hi Robert, I had to add in some buffer group nodes ahead of the ones I wanted to apply a state change to and so now it works great. Thanks, Judie On Apr 14, 11:54 am, Robert Osfield [EMAIL PROTECTED] wrote: Hi Judia, What you are trying to do should work, but without the code for setting the different stateset to the appropriate nodes I can't say what exactly the problem is. The fact that you refer to NodeCParent looks suspect, you should apply directly to NodeC as NodeCParent is NodeA... Robert. On Mon, Apr 14, 2008 at 7:36 PM, Judie Stanley [EMAIL PROTECTED] wrote: This is an exisiting project. Here is the basic node structure: Root | NodeA / \ NodeB NodeC I want to disable writes to the color buffer before Node A, and then I don't want to enable them until Node C. That way, Node A, and Node B are drawn but only the depth buffer is updated, but then when Node C is drawn, both the color buffer and the depth buffer are updated. Here is my code: osg::ColorMask *colormaskOff = new osg::ColorMask(false, false, false, false); osg::ColorMask *colormaskON = new osg::ColorMask(true, true, true, true); osg::StateSet* state = NodeAParent-getOrCreateStateSet(); state-setAttribute(colormaskOff); osg::StateSet* state2 = NodeCParent-getOrCreateStateSet(); state2-setAttribute(colormaskON); So you can see my dilema. In the code I see that the glColorMask gets called with the correct data, however, because of the graph topology, NodeA and NodeB get drawn to the color buffer even though I disabled it in the Root (NodeAParent), it gets enabled for NodeA (NodeCParent). Is it possible to stick come kind of node inbetween NodeA and NodeC? What type of node should that be? Can there be a blank node? Thanks, Judie ___ osg-users mailing list [EMAIL PROTECTED] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph... ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph...- Hide quoted text - - Show quoted text - ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Depth buffer issue
In my code I have an OSG tree with the following global state attributes defined: osgUtil::CullVisitor *pCullVisitor = m_sceneView- getCullVisitor(); osgUtil::RenderBin *pRenderBin = pCullVisitor-getCurrentRenderBin(); pRenderBin-setSortMode(osgUtil::RenderBin::SORT_BACK_TO_FRONT); osg::StateSet *pStateSet = m_sceneView- getGlobalStateSet(); pStateSet-setMode(GL_ALPHA_TEST, osg::StateAttribute::OFF); osg::CullFace *pCullFace = new osg::CullFace; pCullFace-setMode(osg::CullFace::BACK); pStateSet-setMode(GL_CULL_FACE, osg::StateAttribute::ON); pStateSet-setAttribute(pCullFace, osg::StateAttribute::ON); osg::ShadeModel *pShadeMdl = new osg::ShadeModel; pShadeMdl-setMode(osg::ShadeModel::FLAT); pStateSet-setAttribute(pShadeMdl, osg::StateAttribute::ON); osg::Depth *pDepth = new osg::Depth; pDepth-setFunction(osg::Depth::LEQUAL); pStateSet-setMode(GL_DEPTH_TEST, osg::StateAttribute::ON); pStateSet-setAttribute(pDepth, osg::StateAttribute::ON); The only other time I change the state is when I enable and disable the color buffer writes. Here is what I am seeing: If I render the scene with the color buffer always on, then objects that should be occluded by other objects behave correctly and are occluded. When I render the scene with the color buffer off for some of the nodes in the beginning of the tree, with it enabled again for ones later on, I expect that because I DID NOT disable writes to the depth buffer, that the objects which are occluded by other objects (even though they were not drawn to the color buffer) should behave correctly. However, they do not. Some do and some don't and if I rotate then even ones that behave correctly, begin to misbehave. Now I have made the following change because I don't need to worry about transparency anymore: pRenderBin-setSortMode(osgUtil::RenderBin::SORT_FRONT_TO_BACK); And this almost fixes the issue except if I rotate to some degree, I still get parts of objects drawn that should be occluded. I know because I can toggle the objects visible and invisible. Is there something internally that can be culling parts of objects because I have the color buffer masked for them? Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] More help with state changes
Because in the osg implementation (that I have anyway), it looks like the parent of the node is used for setting the state. This seems to be true in my experimenting. If I just applied the state change to the node I wanted affected by the state change, it did not seem to work. void RenderLeaf::render(State state,RenderLeaf* previous) { // don't draw this leaf if the abort rendering flag has been set. if (state.getAbortRendering()) { //cout early abortendl; return; } if (previous) { // apply matrices if required. state.applyProjectionMatrix(_projection.get()); state.applyModelViewMatrix(_modelview.get()); // apply state if required. RenderGraph* prev_rg = previous-_parent; RenderGraph* prev_rg_parent = prev_rg-_parent; RenderGraph* rg = _parent; if (prev_rg_parent!=rg-_parent) { RenderGraph::moveRenderGraph(state,prev_rg_parent,rg- _parent); // send state changes and matrix changes to OpenGL. state.apply(rg-_stateset); } On Apr 15, 3:07 pm, Thrall, Bryan [EMAIL PROTECTED] wrote: Judie wrote on Tuesday, April 15, 2008 4:58 PM: I had to add in some buffer group nodes ahead of the ones I wanted to apply a state change to and so now it works great. Out of curiosity, why couldn't you just add the state change to NodeC instead of adding buffer group nodes? On Apr 14, 11:54 am, Robert Osfield [EMAIL PROTECTED] wrote: What you are trying to do should work, but without the code for setting the different stateset to the appropriate nodes I can't say what exactly the problem is. The fact that you refer to NodeCParent looks suspect, you should apply directly to NodeC as NodeCParent is NodeA... On Mon, Apr 14, 2008 at 7:36 PM, Judie Stanley [EMAIL PROTECTED] wrote: This is an exisiting project. Here is the basic node structure: Root | NodeA / \ NodeB NodeC I want to disable writes to the color buffer before Node A, and then I don't want to enable them until Node C. That way, Node A, and Node B are drawn but only the depth buffer is updated, but then when Node C is drawn, both the color buffer and the depth buffer are updated. -- Bryan Thrall FlightSafety International [EMAIL PROTECTED] ___ osg-users mailing list [EMAIL PROTECTED]://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph...- Hide quoted text - - Show quoted text - ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] More help with state changes
This is an exisiting project. Here is the basic node structure: Root | NodeA / \ NodeB NodeC I want to disable writes to the color buffer before Node A, and then I don't want to enable them until Node C. That way, Node A, and Node B are drawn but only the depth buffer is updated, but then when Node C is drawn, both the color buffer and the depth buffer are updated. Here is my code: osg::ColorMask *colormaskOff = new osg::ColorMask(false, false, false, false); osg::ColorMask *colormaskON = new osg::ColorMask(true, true, true, true); osg::StateSet* state = NodeAParent-getOrCreateStateSet(); state-setAttribute(colormaskOff); osg::StateSet* state2 = NodeCParent-getOrCreateStateSet(); state2-setAttribute(colormaskON); So you can see my dilema. In the code I see that the glColorMask gets called with the correct data, however, because of the graph topology, NodeA and NodeB get drawn to the color buffer even though I disabled it in the Root (NodeAParent), it gets enabled for NodeA (NodeCParent). Is it possible to stick come kind of node inbetween NodeA and NodeC? What type of node should that be? Can there be a blank node? Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Examples for using image as a background
Trying to add video capture as the background to a scene. I am not very familiar with osg and am working in an existing code base. The render loop calls SceneView::Draw which apparently does all the traversal. Unfortunately for me, it also clears the color buffer so I don't see my video capture if I enable this call, but then if I disable it, I only see my video capture - drawn using OpenGL, because of course, the scene is not drawn. Is there a way to disable clearing the color buffer? Another way would be if I could set the video capture as the background. I have searched and see there is such a thing as a osg::ImageBackground object. However, I searched the osg solution (osg 2.0) and nothing was found has the name changed? http://www.opensg.org/doc-1.6.0/classosg_1_1ImageBackground.html Does anybody know of some sample code? Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Can I disable color buffer writes before a certain node and enable it after?
Hi, Can I do this? I want to insert a state node in the scene graph before and after a certain node (that has geometry) that will disable color buffer writes and then enable them. flow like this: start-disable color buffer writes - draw node -enable color buffer writes - draw next node Is this possible? Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Need Build Support OSG 2.2.0\STLPort 4.5\VC 6
Hi Robert, I am a new user. I newly downloaded OSG 2.2.0.. I read the documentation and followed the instructions for VS6. It did not work so I figured I had missed something. It was not a flame! I work for a Japanese company in the USA and I have only worked here for 5 months and they use VS6 for this monolithic code base. So I am currently trying to port it to VS8 (as of yesterday). It requires a lot of changes and Japan has to approve every code change (with no body who will take responsibility). Anyway, I was mislead by the installation documentation to believe that I could install STLPort 4.5 and OSG 2.2.0 would work with VS6. Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Need Build Support OSG 2.2.0\STLPort 4.5\VC 6
\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized NodeTrackerCallback.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized OperationThread.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Program.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\src\osg \Program.cpp(2283) : error C2086: 'itr' : redefinition ShadowVolumeOccluder.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Generating Code... Compiling... ShapeDrawable.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized StateSet.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Switch.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\src\osg \Switch.cpp(210) : error C2374: 'pos' : redefinition; multiple initialization C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\src\osg \Switch.cpp(193) : see declaration of 'pos' TexMat.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Texture.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Texture1D.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Texture2D.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Texture2DArray.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Texture3D.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized TextureCubeMap.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized TextureRectangle.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized TransferFunction.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Transform.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized View.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized dxtctool.cpp C:\Program Files\OpenSceneGraph\osgsrc\OpenSceneGraph\include\osg/ OperationThread(35) : error C2437: 'Referenced' : already initialized Generating Code... Error executing cl.exe. ALL_BUILD - 58 error(s), 0 warning(s) I hope this looks familiar to somebody and I can get a quick fix. Thanks, Judie ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org