Okay, I'm sure I'll have something to submit.  Just don't expect it
anytime soon.  I've got a vacation coming up :)  and I want to
consider switching to zlib (just to save my game an extra dependency)
and figure out a fix for the shaders not loading....and fix whatever
other problems I come across...
--
Terry Welsh
mogumbo 'at' gmail.com
www.reallyslick.com


>
> Message: 25
> Date: Tue, 6 Sep 2011 11:17:01 -0400
> From: Jason Beverage <[email protected]>
> To: OpenSceneGraph Users <[email protected]>
> Subject: Re: [osg-users] tight integration of virtual file system
> Message-ID:
>        <CAMcxSMt=gtyqugofedwsy8y16gavoijqwm_rbewg52+hkjm...@mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Hi Terry,
>
> On Sun, Sep 4, 2011 at 9:29 PM, Terry Welsh <[email protected]> wrote:
>> Excellent ZipFS plugin Jason. ?Thank you for the help. ?I think that
>> was the hardest part of the problem. ?I finally got around to working
>> on this more and I have the other half of the problem mostly solved.
> Thanks, glad it worked for you.  We don't use it anymore for osgEarth
> but I think in general it's pretty useful.
>
>> It looks like OSG uses zlib for all its compression/decompression.
>> Just out of curiosity, how did you pick libzip instead? ?Or did you
>> not write ZipFS?
> I did write the ZipFS plugin, we chose libzip over just using zlib b/c
> it had easy access to dealing with zip archives.  If zlib itself has
> something in there that we can use instead of having another
> dependency that would be great but I didn't really look that hard
> since libzip worked so well.
>
> If you have a submission for the osgEarth that you need integrated
> just send along the whole modified file or do a pull request on github
> and I'll take a look at it.
>
> Jason
>
>> To recap, I'm trying to set an OSG_FILE_PATH such as
>> mydirectory/data.zip and load files out of the specified archive. ?At
>> first I discovered the Registry class's FindFileCallback. ?I thought I
>> could just make one of those and have it search inside of zip files.
>> However, the work that I really needed to replace happened when the
>> default Registry::findDataFileImplementation would call
>> osgDB::findFileInPath in FileUtils. ?So I decided to override
>> findFileInPath so that would look for paths containing ".zip" and try
>> to locate the desired file inside the zip file.
>>
>> That almost worked. ?I also had to modify ReaderWriterZipFS::readFile
>> so that it uses OSG's directory searching. ?At the beginning of the
>> function I added
>>
>> std::string filenameWithPath =
>> osgDB::Registry::instance()->findDataFile(fullFileName, options,
>> CASE_SENSITIVE);
>>
>> and then I use filenameWithPath instead of fullFileName where appropriate.
>>
>> So now I can load almost all my game resources from one .zip file
>> instead of a directory full of files. ?I haven't tested performance
>> yet, but there's no noticeable change. ?.osg files load with all their
>> textures.
>>
>> Here's the catch: .osg files don't get loaded with their shaders. ?I
>> believe this is because shaders don't use the standard OSG plugin
>> loading paradigm. ?Instead they simply use
>> Shader::loadShaderSourceFromFile(). ?I haven't put any thought into
>> this last detail yet (I hope it's not too messy), but I need a
>> programming break....
>> --
>> Terry Welsh
>> mogumbo 'at' gmail.com
>> www.reallyslick.com
>>
>>>
>>> Message: 9
>>> Date: Fri, 5 Aug 2011 08:50:10 -0400
>>> From: Jason Beverage <[email protected]>
>>> To: OpenSceneGraph Users <[email protected]>
>>> Subject: Re: [osg-users] tight integration of virtual file system
>>> Message-ID:
>>> ? ? ? ?<camcxsmsly2m20aoa5z7tubjob1xyrqqkmnz9z9lslzmmkqu...@mail.gmail.com>
>>> Content-Type: text/plain; charset=ISO-8859-1
>>>
>>> Hi Terry,
>>>
>>> osgEarth has a generic zip based plugin called ZipFS that is
>>> implemented as an osgDB plugin and isn't dependent on osgEarth. ?We
>>> originally developed it to support using a zip file of imagery tiles
>>> for a cache.
>>>
>>> It allows you to load files like:
>>> osgDB::readNodeFile("c:/data/models.zip/cow.osg");
>>>
>>> I haven't used it for quite awhile but last I checked it was working
>>> just fine. ?You can get the osgearth source code from github at
>>> https://github.com/gwaldron/osgearth
>>>
>>> If anything it could be a start to what you're looking for.
>>>
>>> Thanks,
>>>
>>> Jason
>>>
>> _______________________________________________
>> osg-users mailing list
>> [email protected]
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to