Re: [osg-users] [osgPlugins] OpenFlight-Plugin - How to store individual object in seperate geode?
Hi Brede, Thanks very much for the info. Yup, with osgconv, I managed to compare the source flt database and the coverted osg format. Seems like the objects are already merged in the flt database. So I guess I have to find a way to modify the source before loading it to osg [Wink] Once again, thanks for your help. -- Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=9818#9818 ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [osgPlugins] OpenFlight-Plugin - How to store individual object in seperate geode?
Bulkhead, If you use osgconv to compare your OpenFlight structure with the OSG structure (.osg) don't forget to set the environment variable OSG_OPTIMIZER=OFF. With the preserve??? reader options they should be almost identical. The reason OpenFlight faces becomes Geode+Drawable is because a drawable can't store flight comments and billboard information. If I remember correct a long time ago the drawables couldn't even store the face id because the drawables didn't have the name attribute. Brede On Mon, Apr 6, 2009 at 11:59 AM, Bulkhead wrote: > Hi Brede, > > Just some updates. I have glanced through the codes for the openflight > plugin, and not sure if this is correct. > > Using the "preserveObject" option, the openflight Object record will be > stored in a osg::Group node. All the faces will be stored as osg::Geode > under the respective group node. Is this correct? > > By iterating through the groups, and collecting the geodes in each group, I > managed to retrieve the land from my openflight terrain file. However, the > buildings are still being grouped based on the texture (i.e. building with > same texture are stored under the same group node). Is this how the > openflight structure organize the record? Is it feasible to seperate these > buildings? > > Thanks in advanced. > > -- > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=9778#9778 > > > > > > ___ > 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] OpenFlight-Plugin - How to store individual object in seperate geode?
Hi Brede, Just some updates. I have glanced through the codes for the openflight plugin, and not sure if this is correct. Using the "preserveObject" option, the openflight Object record will be stored in a osg::Group node. All the faces will be stored as osg::Geode under the respective group node. Is this correct? By iterating through the groups, and collecting the geodes in each group, I managed to retrieve the land from my openflight terrain file. However, the buildings are still being grouped based on the texture (i.e. building with same texture are stored under the same group node). Is this how the openflight structure organize the record? Is it feasible to seperate these buildings? Thanks in advanced. -- Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=9778#9778 ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [osgPlugins] OpenFlight-Plugin - How to store individual object in seperate geode?
Hi Brede, Glad to hear from you again :D I've written a geodeVisitor class to return all the loaded geodes. But before that, I would like to clarify something with you. For experiment purposes, I've disabled totally the optimization (i.e. setting preserveObject and preserveFace) and commented out the optimizer block in my loader codes. Without any optimization at all, I noticed that each geode loaded using osgDB::readNodeFile() contains only 1 drawable. Is my observation correct: Each geode loaded from openflight plugin contains only 1 drawable (for my case, it's a 2D triangle), and these geodes are merged to form an "object" during optimization (e.g. using MERGE_GEOMETRY)? Or is this due to the openflight format? Or could it be the openflight file that I am using? Please enlighten. I am pretty lost now, as I am new to 3D rendering and with very little knowledge about openflight format. Thanks [Wink] -- Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=9775#9775 ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [osgPlugins] OpenFlight-Plugin - How to store individual object in seperate geode?
Hi Bulkhead, I don't know about a reference manual but you have the source. The Optimizer header file is a good reference. Yes, you typically create a custom visitor and set the permitted optimization for the objects (node,stateset, drawable etc.) in question. For the option parameter I would probably start with 0 before fine tuning. To Paul: Next time ;-) I'm trying to keep up with the development of OSG. You never know when it may come in handy. Regards Brede On Mon, Apr 6, 2009 at 6:04 AM, Bulkhead wrote: > Hi Brede, > > Thanks for the reply. > > I did a search on the setPermissibleOptimizationsForObject() fucntion and > read your posting on osg-users mail-archive, and yup, I think very high > chance that this will solve my problem [Wink] > > But unfortunately, I couldn't find any reference on how to use this > function. The first parameter is an osg::Object pointer. Should I pass in > every geode (using a geodeVisitor)? As for the second parameter, it will be > all the optimization options, except MERGE_GEOMETRY? > > Also please advise if there's any reference manual that I can refer to? The > one on osg wiki page doesn't give much info. > > Thanks in advanced. > > -- > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=9764#9764 > > > > > > ___ > 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] OpenFlight-Plugin - How to store individual object in seperate geode?
Hi Brede, Thanks for the reply. I did a search on the setPermissibleOptimizationsForObject() fucntion and read your posting on osg-users mail-archive, and yup, I think very high chance that this will solve my problem [Wink] But unfortunately, I couldn't find any reference on how to use this function. The first parameter is an osg::Object pointer. Should I pass in every geode (using a geodeVisitor)? As for the second parameter, it will be all the optimization options, except MERGE_GEOMETRY? Also please advise if there's any reference manual that I can refer to? The one on osg wiki page doesn't give much info. Thanks in advanced. -- Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=9764#9764 ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [osgPlugins] OpenFlight-Plugin - How to store individual object in seperate geode?
Hi, You can disable optimization of nodes with Optimizer::setPermissibleOptimizationsForObject(const osg::Object* object, unsigned int options) Regards, Brede On Fri, Apr 3, 2009 at 11:06 AM, Bulkhead wrote: > Hi, > > I'm new to the modelling world, and any help/advice is very much > appreciated. > > I'm using osg openflight plugin to load an flt terrain file. The terrain > consists of a piece of land, and many buildings. What I am trying to achieve > is loading the entire piece of land as one geode, and every building as > individual geode. > > After I have loaded the terrain into osg format, I noticed that the > osgUtil::Optimizer will group some of the buildings that share the same > texture into a single geode. > > In order not to mess up with the original plugin codes (for ease of > upgrading in the future), I disable the optimization by passing > "preserveFace" option to the osgDB::readNodeFile() API, and invoke the > optimizer in my loader codes. I have tried with different combinations of > optimizer options, but couldn't find a combination that can produce the > desired result :( > > Here is the list of options that I have tried with: > SHARE_DUPLICATE_STATE > STATIC_OBJECT_DETECTION > MERGE_GEOMETRY (disabling this will blow my loader [Embarassed] ) > MERGE_GEODES > REMOVE_REDUNDANT_NODES > FLATTEN_STATIC_TRANSFORMS_DUPLICATING_SHARED_SUBGRAPHS > SPATIALIZE_GROUPS > COPY_SHARED_NODES > TESSELLATE_GEOMETRY > > Any suggestions? Am I in the correct direction? Or should I develop a > visitor for this purpose? > > Thank you in advanced :) . > > -- > Read this topic online here: > http://forum.openscenegraph.org/viewtopic.php?p=9701#9701 > > > > > > ___ > 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] [osgPlugins] OpenFlight-Plugin - How to store individual object in seperate geode?
Hi, I'm new to the modelling world, and any help/advice is very much appreciated. I'm using osg openflight plugin to load an flt terrain file. The terrain consists of a piece of land, and many buildings. What I am trying to achieve is loading the entire piece of land as one geode, and every building as individual geode. After I have loaded the terrain into osg format, I noticed that the osgUtil::Optimizer will group some of the buildings that share the same texture into a single geode. In order not to mess up with the original plugin codes (for ease of upgrading in the future), I disable the optimization by passing "preserveFace" option to the osgDB::readNodeFile() API, and invoke the optimizer in my loader codes. I have tried with different combinations of optimizer options, but couldn't find a combination that can produce the desired result :( Here is the list of options that I have tried with: SHARE_DUPLICATE_STATE STATIC_OBJECT_DETECTION MERGE_GEOMETRY (disabling this will blow my loader [Embarassed] ) MERGE_GEODES REMOVE_REDUNDANT_NODES FLATTEN_STATIC_TRANSFORMS_DUPLICATING_SHARED_SUBGRAPHS SPATIALIZE_GROUPS COPY_SHARED_NODES TESSELLATE_GEOMETRY Any suggestions? Am I in the correct direction? Or should I develop a visitor for this purpose? Thank you in advanced :) . -- Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=9701#9701 ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org