Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Hi Robert, I understand the non-black-list behavior, this is a very good thing. I don't have time to spend on a new Registry::ReadFileCallback ... so I will use an other way. I just run some tests using dataBasePath to "./" because the tree file and the Lods files are in the same path. It works well if the .exe which load the tree is in the same path... If it is not, the tree loads but the DataBasePager don't find any files... You said the path is relative to the parent... so if I understood you well, it may works... Am I wrong ? Thanks. Regards, Vincent. Robert Osfield a écrit : HI Vincent, PagedLOD does repeated request tiles on each frame till the request is served or camera moves away and the PagedLOD child is no longer needed. Normally this overhead is not a significant factor, but if you have hundreds of such failing requests on each frame I can see that this might take longer. The DatabasePager deliberately doesn't black list as it has no way of knowing if the failure is just temporary or not - for instance a temporary drop in http connection isn't something you'd want to effect you app for the life of it. If you wanted to black list this files yourself you could write a Registry::ReadFileCallback that catches failed attempts to read files and then stores the filename in a black list that it checks against in future attempts to read files. Robert. On Wed, Dec 9, 2009 at 3:55 PM, Vincent Bourdier wrote: Hi Robert, Thanks for the answer, for the moment I don't have any piece of time to spend on that, so I just set databasePath myself. I have a last question : If a graph, containing thousands of pagedLod nodes is loaded, but some pagedLod nodes can't find their children because the file do not exist... Will the render loop be affected because the loader thread is trying again and again to load theses files ? I get a scenegraph like that, and the loading time is very very slow... but I know there are about 3000 files missing (on a 30 000 files graph) but I just would have a confirmation because it needs a lot of time to arrange the graph to remove the inexistent children. Thanks for your help. Regards, Vincent Robert Osfield a écrit : HI Vincent, On Tue, Dec 8, 2009 at 5:56 PM, Vincent Bourdier wrote: So, why the path is not relative ? I understand the behavior, but the path is not a relative path so it can't work as you described it. The child will be stored relative to the parent, and the path should reflect this even in it's absolute form. There is a little twist in this in that the OSG has to cope with paged databases being pulled in from http and then cached on the local disk, so the parents might be loaded from the local disk, but the children haven't been downloaded and cached yet so still sit on the http path, so you have to use the http paths in the DatabasePath to be able to retreive them. The osgDB::FileCache automatically remaps http files that have been cached so it's still is able to find them, and also their children that aren't local. All this functionality is there inbuilt into PagedLOD + osgDB, as is managed automatically, while complex the intention is to hide this complexity from users. If you want to start digging into the the low level side of this functionality then you'll need to accept you'll need to learn about the ins and outs of how it all works. Robert. __ Information from ESET NOD32 Antivirus, version of virus signature database 4672 (20091209) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org __ Information from ESET NOD32 Antivirus, version of virus signature database 4675 (20091210) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
HI Vincent, PagedLOD does repeated request tiles on each frame till the request is served or camera moves away and the PagedLOD child is no longer needed. Normally this overhead is not a significant factor, but if you have hundreds of such failing requests on each frame I can see that this might take longer. The DatabasePager deliberately doesn't black list as it has no way of knowing if the failure is just temporary or not - for instance a temporary drop in http connection isn't something you'd want to effect you app for the life of it. If you wanted to black list this files yourself you could write a Registry::ReadFileCallback that catches failed attempts to read files and then stores the filename in a black list that it checks against in future attempts to read files. Robert. On Wed, Dec 9, 2009 at 3:55 PM, Vincent Bourdier wrote: > Hi Robert, > > Thanks for the answer, for the moment I don't have any piece of time to > spend on that, so I just set > databasePath myself. > > I have a last question : > If a graph, containing thousands of pagedLod nodes is loaded, but some > pagedLod nodes can't find their > children because the file do not exist... Will the render loop be affected > because the loader thread is trying > again and again to load theses files ? > I get a scenegraph like that, and the loading time is very very slow... but > I know there are about 3000 files missing > (on a 30 000 files graph) but I just would have a confirmation because it > needs a lot of time to arrange the graph to remove > the inexistent children. > > Thanks for your help. > > Regards, > Vincent > > Robert Osfield a écrit : >> >> HI Vincent, >> >> On Tue, Dec 8, 2009 at 5:56 PM, Vincent Bourdier >> wrote: >> >>> >>> So, why the path is not relative ? I understand the behavior, but the >>> path >>> is not a relative path so it can't work as you described it. >>> >> >> The child will be stored relative to the parent, and the path should >> reflect this even in it's absolute form. There is a little twist in >> this in that the OSG has to cope with paged databases being pulled in >> from http and then cached on the local disk, so the parents might be >> loaded from the local disk, but the children haven't been downloaded >> and cached yet so still sit on the http path, so you have to use the >> http paths in the DatabasePath to be able to retreive them. The >> osgDB::FileCache automatically remaps http files that have been cached >> so it's still is able to find them, and also their children that >> aren't local. >> >> All this functionality is there inbuilt into PagedLOD + osgDB, as is >> managed automatically, while complex the intention is to hide this >> complexity from users. If you want to start digging into the the low >> level side of this functionality then you'll need to accept you'll >> need to learn about the ins and outs of how it all works. >> >> Robert. >> > > > __ Information from ESET NOD32 Antivirus, version of virus signature > database 4672 (20091209) __ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > > ___ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Hi Robert, Thanks for the answer, for the moment I don't have any piece of time to spend on that, so I just set databasePath myself. I have a last question : If a graph, containing thousands of pagedLod nodes is loaded, but some pagedLod nodes can't find their children because the file do not exist... Will the render loop be affected because the loader thread is trying again and again to load theses files ? I get a scenegraph like that, and the loading time is very very slow... but I know there are about 3000 files missing (on a 30 000 files graph) but I just would have a confirmation because it needs a lot of time to arrange the graph to remove the inexistent children. Thanks for your help. Regards, Vincent Robert Osfield a écrit : HI Vincent, On Tue, Dec 8, 2009 at 5:56 PM, Vincent Bourdier wrote: So, why the path is not relative ? I understand the behavior, but the path is not a relative path so it can't work as you described it. The child will be stored relative to the parent, and the path should reflect this even in it's absolute form. There is a little twist in this in that the OSG has to cope with paged databases being pulled in from http and then cached on the local disk, so the parents might be loaded from the local disk, but the children haven't been downloaded and cached yet so still sit on the http path, so you have to use the http paths in the DatabasePath to be able to retreive them. The osgDB::FileCache automatically remaps http files that have been cached so it's still is able to find them, and also their children that aren't local. All this functionality is there inbuilt into PagedLOD + osgDB, as is managed automatically, while complex the intention is to hide this complexity from users. If you want to start digging into the the low level side of this functionality then you'll need to accept you'll need to learn about the ins and outs of how it all works. Robert. __ Information from ESET NOD32 Antivirus, version of virus signature database 4672 (20091209) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Hi Chris, On Tue, Dec 8, 2009 at 6:07 PM, Chris 'Xenon' Hanson wrote: > This is the reason why the osgconv recursion submission I sent it a few > weeks ago has to > change working directory to the location of the sub-files before it converts > them. > Otherwise, the hard-coded path gets built into the converted output file, and > it will no > longer be portable. > > > I classify this as a "problem" in the PagedLOD saver (both IVE and OSG, I > think), but > I'm hesitant to call it a bug, and I didn't submit a "fix" for it, because I > suspected > that it was there for a reason and something I was unaware of might be > relying on it, so I > just worked around it. The osgfilecache utility is able to do the job of recursion through a paged database without resorting to change working directory. I would expect this should be possible within osgconv as well. Robert. ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Hi Chris, I actually run across the problem by setting "./" in the databasePath... this way it is never overridden. My actual problem is that I set my pagedLod graph in two passes from two different applications, so the second pass set the databasePath and you know the end of the story... Maybe the actual implementation is not an issue, (unless the relative path is not a relative one) so do you have an other suggestion on how I can ignore the problem ? Thanks. Regards, Vincent. Chris 'Xenon' Hanson a écrit : Vincent Bourdier wrote: As you can see, the DatabasePath appear, and the path set is to the path where the original osg file is... so now my PagedLod won't work on a different PC than mine... I have run into this too. This is the reason why the osgconv recursion submission I sent it a few weeks ago has to change working directory to the location of the sub-files before it converts them. Otherwise, the hard-coded path gets built into the converted output file, and it will no longer be portable. I classify this as a "problem" in the PagedLOD saver (both IVE and OSG, I think), but I'm hesitant to call it a bug, and I didn't submit a "fix" for it, because I suspected that it was there for a reason and something I was unaware of might be relying on it, so I just worked around it. __ Information from ESET NOD32 Antivirus, version of virus signature database 4670 (20091208) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Vincent Bourdier wrote: > As you can see, the DatabasePath appear, and the path set is to the path > where the original osg file is... so now my PagedLod won't work on a > different PC than mine... I have run into this too. This is the reason why the osgconv recursion submission I sent it a few weeks ago has to change working directory to the location of the sub-files before it converts them. Otherwise, the hard-coded path gets built into the converted output file, and it will no longer be portable. I classify this as a "problem" in the PagedLOD saver (both IVE and OSG, I think), but I'm hesitant to call it a bug, and I didn't submit a "fix" for it, because I suspected that it was there for a reason and something I was unaware of might be relying on it, so I just worked around it. -- Chris 'Xenon' Hanson, omo sanza lettere Xenon AlphaPixel.com PixelSense Landsat processing now available! http://www.alphapixel.com/demos/ "There is no Truth. There is only Perception. To Perceive is to Exist." - Xen ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Hi Vincent, On Tue, Dec 8, 2009 at 4:58 PM, Vincent Bourdier wrote: > I do not set the DatabasePager, but the PagedLod's DatabasePath. Sorry, my mistake, I meant DatabasePath when I wrote DatabasePager. In normal paged database usage your do not explicitly set the DatabasePath - instead it's set by the loaders. > The real problem is the .ive loader : it do not returns the node in the > exact state he get it... In the case of DatabasePath you don't want that state stored as the database can be moved, or the user you load it from a different relative path or even over http. Paged database are arranged relative to one another, so the parents database path is used to determine where to fined the children. Robert. ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Hi Robert, I do not set the DatabasePager, but the PagedLod's DatabasePath. The real problem is the .ive loader : it do not returns the node in the exact state he get it... Thanks. Regards, Vincent. Robert Osfield a écrit : Hi Vincent, On Tue, Dec 8, 2009 at 4:43 PM, Vincent Bourdier wrote: Ok I get it : when the Lod is wrote in an IVE file, there is not LOD databasepath But, on the load, the databasepath is set with the current directory where the file is found... so next on save, the databasepath is saved... So, the question is : is it necessary to set the databasepath on the load of the file in the pluginIve reader ? It shouldn't be. The .osg and .ive loaders should all manage the DatabasePath at runtime for you, and you shouldn't need to do anything - it should just work out of the box. Is there are reason why you are trying to set the DatabasePager? Robert. __ Information from ESET NOD32 Antivirus, version of virus signature database 4670 (20091208) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Hi Vincent, On Tue, Dec 8, 2009 at 4:43 PM, Vincent Bourdier wrote: > Ok I get it : when the Lod is wrote in an IVE file, there is not LOD > databasepath > But, on the load, the databasepath is set with the current directory where > the file is found... so next on save, the databasepath is saved... > So, the question is : is it necessary to set the databasepath on the load of > the file in the pluginIve reader ? It shouldn't be. The .osg and .ive loaders should all manage the DatabasePath at runtime for you, and you shouldn't need to do anything - it should just work out of the box. Is there are reason why you are trying to set the DatabasePager? Robert. ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Hi, Ok I get it : when the Lod is wrote in an IVE file, there is not LOD databasepath But, on the load, the databasepath is set with the current directory where the file is found... so next on save, the databasepath is saved... So, the question is : is it necessary to set the databasepath on the load of the file in the pluginIve reader ? Thanks Regards, Vincent. Vincent Bourdier a écrit : Hi all, Using pagedLod, I just test an interessant thing : I load a PagedLod osg file like : PagedLOD { nodeMask 0x cullingActive TRUE Center 0 0 0 Radius -1 RangeMode PIXEL_SIZE_ON_SCREEN RangeList 2 { 0 1000 1000 1e+020 } NumChildrenThatCannotBeExpired 1 FileNameList 2 { LV57S200502.ive HV57S200502.ive } num_children 0 } and next I wrote it in a new .osg file and I get : PagedLOD { nodeMask 0x cullingActive TRUE Center 0 0 0 Radius -1 RangeMode PIXEL_SIZE_ON_SCREEN RangeList 2 { 0 1000 1000 1e+020 } DatabasePath Z:/TEST/Total_LOD_box/s21/ NumChildrenThatCannotBeExpired 1 FileNameList 2 { LV57S200502.ive HV57S200502.ive } num_children 0 } As you can see, the DatabasePath appear, and the path set is to the path where the original osg file is... so now my PagedLod won't work on a different PC than mine... Is it an expected behavior ? If I set the DatabasePath to "" or "./", will the osg writer let it in peace ? Thanks. Regards, Vincent. __ Information from ESET NOD32 Antivirus, version of virus signature database 4670 (20091208) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com __ Information from ESET NOD32 Antivirus, version of virus signature database 4670 (20091208) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] [plugins] Osg writer add dataBasePath inPagedLod
Hi all, Using pagedLod, I just test an interessant thing : I load a PagedLod osg file like : PagedLOD { nodeMask 0x cullingActive TRUE Center 0 0 0 Radius -1 RangeMode PIXEL_SIZE_ON_SCREEN RangeList 2 { 0 1000 1000 1e+020 } NumChildrenThatCannotBeExpired 1 FileNameList 2 { LV57S200502.ive HV57S200502.ive } num_children 0 } and next I wrote it in a new .osg file and I get : PagedLOD { nodeMask 0x cullingActive TRUE Center 0 0 0 Radius -1 RangeMode PIXEL_SIZE_ON_SCREEN RangeList 2 { 0 1000 1000 1e+020 } DatabasePath Z:/TEST/Total_LOD_box/s21/ NumChildrenThatCannotBeExpired 1 FileNameList 2 { LV57S200502.ive HV57S200502.ive } num_children 0 } As you can see, the DatabasePath appear, and the path set is to the path where the original osg file is... so now my PagedLod won't work on a different PC than mine... Is it an expected behavior ? If I set the DatabasePath to "" or "./", will the osg writer let it in peace ? Thanks. Regards, Vincent. __ Information from ESET NOD32 Antivirus, version of virus signature database 4670 (20091208) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org