Update : this sound like a memory problem : when my MV is around 2.0Go, the
application crash. I'm not familiar with windows virtual Memory, so i'm not
sure of how to increase it.
I've trid to set the pagefile to 5Go and the RAM (with a new barett) to
4.0Go (3.2Go for win XP 32bits) but the crash is still the same ...

Any idea ?

Does the KDTree builder eats a lot of MV ? the .ive file (without texture)
is about 450Mo ... so this is a very big model ...

Thanks for help.

Regards,
    Vincent.

2009/6/8 Vincent Bourdier <[email protected]>

> Hi Robert,
>
> ok for KDTree, but the question is : Why an osg2.6.1 file.ive opened by
> osg2.8.1 using KDtree make a crash ?
> Sorry I cannot give the file, this is confidential data I'm not allowed to
> give you.
>
> Crash : Unhandled exception at 0x7c812afb in Launcherd.exe: Microsoft C++
> exception: std::bad_alloc at memory location 0x00d9ec28..
>
>
> This is the stack trace :
>
>      kernel32.dll!7c812afb()
>      [Frames below may be incorrect and/or missing, no symbols loaded for
> kernel32.dll]
>      kernel32.dll!7c812afb()
> >    osg55-osgd.dll!std::_Allocate<osg::KdTree::KdNode>(unsigned int
> _Count=144230, osg::KdTree::KdNode * __formal=0x00000000)  Line 43 + 0xc
> bytes    C++
>      osg55-osgd.dll!std::allocator<osg::KdTree::KdNode>::allocate(unsigned
> int _Count=144230)  Line 145 + 0xb bytes    C++
>
> osg55-osgd.dll!std::vector<osg::KdTree::KdNode,std::allocator<osg::KdTree::KdNode>
> >::reserve(unsigned int _Count=144230)  Line 607 + 0xf bytes    C++
>      osg55-osgd.dll!BuildKdTree::build(osg::KdTree::BuildOptions &
> options={...}, osg::Geometry * geometry=0x35097a68)  Line 124    C++
>      osg55-osgd.dll!osg::KdTree::build(osg::KdTree::BuildOptions &
> options={...}, osg::Geometry * geometry=0x35097a68)  Line 764 + 0x10
> bytes    C++
>      osg55-osgd.dll!osg::KdTreeBuilder::apply(osg::Geode & geode={...})
> Line 817 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::Geode::accept(osg::NodeVisitor & nv={...})  Line
> 39 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line
> 38 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line
> 38 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line
> 38 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line
> 38 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line
> 38 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line
> 38 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line
> 38 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line
> 38 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Transform & node={...})
> Line 121 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::MatrixTransform &
> node={...})  Line 136 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::MatrixTransform::accept(osg::NodeVisitor &
> nv={...})  Line 37 + 0x41 bytes    C++
>      osg55-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})  Line
> 62 + 0x25 bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
> Line 191 + 0x1c bytes    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Node & node={...})  Line
> 72    C++
>      osg55-osgd.dll!osg::NodeVisitor::apply(osg::Group & node={...})  Line
> 86 + 0x13 bytes    C++
>      osg55-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Line
> 38 + 0x41 bytes    C++
>
> osg55-osgDBd.dll!osgDB::Registry::_buildKdTreeIfRequired(osgDB::ReaderWriter::ReadResult
> & result={...}, const osgDB::ReaderWriter::Options * options=0x00000000)
> Line 342 + 0x23 bytes    C++
>      osg55-osgDBd.dll!osgDB::Registry::readNode(const
> std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
> fileName="Z:/a350.ive", const osgDB::ReaderWriter::Options *
> options=0x00000000, bool buildKdTreeIfRequired=true)  Line 241    C++
>      osg55-osgDBd.dll!osgDB::readNodeFile(const
> std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
> filename="Z:/a350.ive", const osgDB::ReaderWriter::Options *
> options=0x00000000)  Line 69 + 0x1f bytes    C++
>      3DEMd.dll!osgDB::readNodeFile(const
> std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
> filename="Z:/a350.ive")  Line 106 + 0x1e bytes    C++
> ...
>
>
> I'll try to make a new ive file using directly osg2.8.1 to see if the
> problem is an osg version problem or something else.
>
> Thanks,
>
> Regards,
>    Vincent.
>
> 2009/6/5 Robert Osfield <[email protected]>
>
> HI Vincent,
>>
>> What you are doing should be OK, but I can't see that anyone can help
>> point to what the problem without you providing at least a stack
>> trace, and ideally a test model to look at.
>>
>> Robert.
>>
>> On Fri, Jun 5, 2009 at 5:06 PM, Vincent
>> Bourdier<[email protected]> wrote:
>> > Hi all,
>> >
>> > I've got a crash on loading an ive file made by osgExp and opened/saved
>> by
>> > osg 2.6.1 next, because of the Kd Tree built.
>> >
>> > I use :
>> >
>> >
>> >
>> osgDB::Registry::instance()->setBuildKdTreesHint(osgDB::ReaderWriter::Options::BUILD_KDTREES);
>> >
>> > and I load the models after that.
>> >
>> > If I remove his line, the model load correctly.
>> >
>> > I use osg 2.8.1 now, and I cannot use this model ... do I need to
>> open/save
>> > the file exported by 3dsmax with osg 2.8.1 ?
>> > Do I need to set the KDTree to do that ?
>> > Do I set the KDTree correctly ?
>> >
>> > Thanks for your help, any suggestion would very appreciated.
>> >
>> > Regards,
>> >    Vincent.
>> >
>> > _______________________________________________
>> > 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
>>
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to