[osg-users] osgVolume::MultipassTechnique use

Robert Osfield robert.osfield at gmail.com
Thu Apr 28 23:58:46 PDT 2016


Hi Alex,

I haven't heard of the invert throwing a seg fault before.  The stack trace
doesn't have any info about line numbers so we can't say what specifically
was amiss.

The only code in MultipassTechnique.cpp that calls Matrixd::invert() is:

               Locator* tileLocator = _volumeTile->getLocator();
                osg::Matrixd tileToEye = tileLocator->getTransform() *
(*(cv->getModelViewMatrix()));
                osg::Matrixd eyeToTile;
                eyeToTile.invert(tileToEye);

Both matrices are created on the stack so will exist so there won't be any
direct memory issue such as trying to work against a null pointer.

The part that may provide somewhere to look are the
tileLocator->getTransform() and cv->getModelViewMatrix() calls, if
tileLocator is NULL then the Matrix the getTransform() method will get will
be corrupted at best, similar with the cv->getModelViewMatrix().

Both these *should* be valid at this point.  My suggestion would be to
check the value of tileLocator, any chance that you haven't assgned a
osgVolume::Locator to the VolumeTile?  The Locator is needed to place the
unit cube of the 3d texture into model coordinates.

Robert.


On 28 April 2016 at 21:12, Alex Taylor <alextaylor at gmail.com> wrote:

> Robert,
>
> Here is a better looking stack trace on Linux. (I believe this stack trace
> has gdb debug symbols enabled, it was a bit tricky to create and integrate
> a build with DEBUG symbols in my environment here, apologies if I got it
> wrong).
>
> My guess is that the Matrixd object being inverted after the call to
> MultipassTechnique::cull is a NULL pointer or something like that...is
> there perhaps a property or something I'm failing to setup when using
> MultipassTechnique that might cause that to happen?
>
> No, I don't know whether the example works. My use of MultipassTechnique
> is failing on a Mac and a Linux box within the software stack where I am,
> and the stack trace looks the same on Mac and Linux.  I can try to build
> the example. In the build harness where I work, I'd have to do a bit of
> work or else just build OSG from scratch to use the volume example.
>
> Any thoughts at all based on this seg fault trace? Any leads would be much
> appreciated, feeling stuck.
>
> - Alex
>
> Stack Trace (from fault):
> [  0] 0x00007f565ccdf968 osg::Matrixd::invert(osg::Matrixd const&) at
> /sandbox/ataylor/Bmlhg_task1.j377265/matlab/src/osgserver/../../../3p_mirror/glnxa64/openscenegraph/include/osg/Matrixd:235
> (in
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libmwosgserver.so)
> [  1] 0x00007f565a335b04
> osgVolume::MultipassTechnique::cull(osgUtil::CullVisitor*) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgVolume.so.130+281343
> [  2] 0x00007f565a3449bc
> osgVolume::VolumeScene::traverse(osg::NodeVisitor&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgVolume.so.130+342455
> [  3] 0x00007f565a9491bb osgUtil::CullVisitor::apply(osg::Group&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgUtil.so.130+868790
> [  4] 0x00007f565a348330 osgVolume::VolumeScene::accept(osg::NodeVisitor&)
> at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgVolume.so.130+357163
> [  5] 0x00007f565c4ed503 osg::Group::traverse(osg::NodeVisitor&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosg.so.130+1537278
> [  6] 0x00007f565a94aa86 osgUtil::CullVisitor::apply(osg::Transform&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgUtil.so.130+875137
> [  7] 0x00007f565c525a48 osg::MatrixTransform::accept(osg::NodeVisitor&)
> at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosg.so.130+1768003
> [  8] 0x00007f565c4ed503 osg::Group::traverse(osg::NodeVisitor&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosg.so.130+1537278
> [  9] 0x00007f565a9491bb osgUtil::CullVisitor::apply(osg::Group&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgUtil.so.130+868790
> [ 10] 0x00007f565c4eecb8 osg::Group::accept(osg::NodeVisitor&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosg.so.130+1543347
> [ 11] 0x00007f565c4ed503 osg::Group::traverse(osg::NodeVisitor&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosg.so.130+1537278
> [ 12] 0x00007f565a94a278 osgUtil::CullVisitor::apply(osg::Camera&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgUtil.so.130+873075
> [ 13] 0x00007f565c4968f8 osg::Camera::accept(osg::NodeVisitor&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosg.so.130+1181939
> [ 14] 0x00007f565c4ed503 osg::Group::traverse(osg::NodeVisitor&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosg.so.130+1537278
> [ 15] 0x00007f565a9491bb osgUtil::CullVisitor::apply(osg::Group&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgUtil.so.130+868790
> [ 16] 0x00007f565c4eecb8 osg::Group::accept(osg::NodeVisitor&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosg.so.130+1543347
> [ 17] 0x00007f565c4ed503 osg::Group::traverse(osg::NodeVisitor&) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosg.so.130+1537278
> [ 18] 0x00007f565a9f26d7 osgUtil::SceneView::cullStage(osg::Matrixd
> const&, osg::Matrixd const&, osgUtil::CullVisitor*, osgUtil::StateGraph*,
> osgUtil::RenderStage*, osg::Viewport*) at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgUtil.so.130+1562322
> [ 19] 0x00007f565a9f0740 osgUtil::SceneView::cull() at
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libosgUtil.so.130+1554235
> [ 20] 0x00007f565cd2a052
> SceneRendererImpl::renderScene(hg::openscenegraph::RenderTimes&,
> hg::openscenegraph::RenderCounts&, osgUtil::SceneView*, unsigned int) at
> /sandbox/ataylor/Bmlhg_task1.j377265/matlab/src/osgserver/osg_server/osgSceneServer.cpp:1447
> (in
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libmwosgserver.so)
> [ 21] 0x00007f565cd2767f
> hg::openscenegraph::OsgSceneServer::cullAndDraw(int, bool, double, double)
> at
> /sandbox/ataylor/Bmlhg_task1.j377265/matlab/src/osgserver/osg_server/osgSceneServer.cpp:1809
> (in
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libmwosgserver.so)
> [ 22] 0x00007f567465ae54
> UIJ_call_OpenGLPaintFcn(gui_objects::scene_server::SceneServerProxy*, int,
> bool, double, double) at
> /mathworks/devel/bat/Bmlui_integ/build/matlab/src/uij/SceneServerPeerEvents.cpp:54
> (in
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libuij.so)
> [ 23] 0x00007f56727b5dfe
> Java_com_mathworks_hg_peer_JavaSceneServerPeer_doDisplay at
> /mathworks/devel/bat/Bmlui_integ/build/matlab/java/src/nativehg/Scene.cpp:125
> (in
> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/glnxa64/libnativehg.so)
> On Wed, Apr 27, 2016 at 4:13 AM Robert Osfield <robert.osfield at gmail.com>
> wrote:
>
>> Hi Alex,
>>
>> A stack trace with debugging info would be far more useful and should be
>> able to pinpoint the cause of the crash, or at least give some clues of
>> where to look.
>>
>> Also, does the osgvolume example crash when you use the
>> MultiPassTechnique?
>>
>> Robert.
>>
>> On 26 April 2016 at 21:35, Alex Taylor <alextaylor at gmail.com> wrote:
>>
>>> Hey all,
>>>
>>> I'm running into a segmentation violation when I attempt to use
>>> osgVolume::MultipassTechnique more or less as a drop in replacement for
>>> RayTracedTechnique using OSG 3.4. My use of RayTracedTechnique works and
>>> renders fine.
>>>
>>> Here is an partial code listing demonstrating my use of
>>> MultipassTechnique:
>>>
>>> *    void setVolumeProperties(osg::ref_ptr<osgVolume::Volume>
>>> volume,osg::ref_ptr<osgVolume::VolumeTile> tile,*
>>> *            osg::ref_ptr<osgVolume::ImageLayer> layer,
>>> VolumePropertyManager &volumeProperties,
>>> osg::ref_ptr<osgVolume::VolumeScene> volumeScene)*
>>> *    {*
>>>
>>> *        // FixedFunctionTechnique turns on GL_LIGHTING, which breaks
>>> the color rendering.*
>>> *        osg::StateSet* stateset = volume->getOrCreateStateSet();*
>>>
>>> *        if (volumeProperties.volumeTechnique ==
>>> VolumeTechnique::RayTraced){*
>>> *            osg::ref_ptr<osgVolume::RayTracedTechnique> rayTraced = new
>>> osgVolume::RayTracedTechnique();*
>>> *            tile->setVolumeTechnique(rayTraced.get());*
>>> *            osg::ref_ptr<osg::FrontFace> frontFace(new
>>> osg::FrontFace(osg::FrontFace::CLOCKWISE));*
>>> *            stateset->setAttribute(frontFace.get(),
>>> osg::StateAttribute::PROTECTED);*
>>> *            layer->addProperty(new
>>> osgVolume::SampleDensityWhenMovingProperty(volumeProperties.sampleDensityWhenMoving));*
>>> *            layer->addProperty(new
>>> osgVolume::SampleDensityProperty(volumeProperties.sampleDensity));*
>>> *        } else if (volumeProperties.volumeTechnique ==
>>> VolumeTechnique::Multipass) {*
>>> *            osg::ref_ptr<osgVolume::MultipassTechnique> multipass = new
>>> osgVolume::MultipassTechnique();*
>>> *            tile->setVolumeTechnique(multipass.get());*
>>> *            volumeScene->addChild(volume.get());*
>>> *            volume->getOrCreateStateSet();*
>>> *            layer->addProperty(new
>>> osgVolume::SampleRatioProperty(1.0f));*
>>> *            layer->addProperty(new
>>> osgVolume::SampleRatioWhenMovingProperty(0.5f));*
>>>
>>> *        } else if (volumeProperties.volumeTechnique ==
>>> VolumeTechnique::FixedFunction) {*
>>> *            tile->setVolumeTechnique(new
>>> osgVolume::FixedFunctionTechnique());*
>>> *            stateset->setMode(GL_LIGHTING,osg::StateAttribute::OFF |
>>> osg::StateAttribute::OVERRIDE);*
>>> *        } else {*
>>> *            throw hg::PropertyException("VolumeTechnique");*
>>> *        }*
>>>
>>> *        layer->addProperty(new
>>> osgVolume::TransferFunctionProperty(volumeProperties.transferFunction.get()));*
>>> *        layer->addProperty(new
>>> osgVolume::AlphaFuncProperty(volumeProperties.alphaFunc));*
>>> *        if (volumeProperties.useLighting) layer->addProperty(new
>>> osgVolume::LightingProperty);*
>>> *        if (volumeProperties.useIsosurface) layer->addProperty(new
>>> osgVolume::IsoSurfaceProperty(volumeProperties.alphaFunc));*
>>> *        if (volumeProperties.useMaximumIntensityProjection)
>>> layer->addProperty(new osgVolume::MaximumIntensityProjectionProperty());*
>>> *    }*
>>>
>>> The following function returns the Node * that will be passed to the
>>> viewer. I either return a osgVolume::Volume * or osgVolume::VolumeScene *
>>> object depending on whether I'm using multipass rendering as my Node *.
>>>
>>> *    osg::Node* BP_createPeerHelper(Volume& v,*
>>> *            hg::SceneClient& client,*
>>> *            const gui_objects::Cookie& owner,*
>>> *            hg::UpdateState& us) {*
>>>
>>> *        osg::ref_ptr<osgVolume::Volume> volume = new osgVolume::Volume;*
>>> *        osg::ref_ptr<osgVolume::VolumeScene> volumeScene = new
>>> osgVolume::VolumeScene;*
>>>
>>> *        const mxArray* data = v.getData();*
>>> *        VolumePropertyManager volumeProperties(v,us);*
>>>
>>> *        if (data != NULL && mxGetNumberOfDimensions(data) == 3 &&
>>> mxGetClassID(data) == mxUINT8_CLASS) {*
>>>
>>>
>>> *            osg::ref_ptr<osgVolume::VolumeTile> tile = new
>>> osgVolume::VolumeTile;*
>>> *            volume->addChild(tile.get());*
>>>
>>> *            // If we are using FixedFunctionTechnique, we need to apply
>>> the transfer function to get a new allocated RGBA memory on the CPU to pass
>>> to OSG.*
>>> *            // Otherwise, we can pass the intensity data directly to
>>> the card. GPU shaders does the RGBA directly.*
>>> *            osg::ref_ptr<osg::Image> intensityImage =
>>> createTexture3D(data);*
>>> *            osg::ref_ptr<osg::Image> image_3d =
>>> (volumeProperties.volumeTechnique == VolumeTechnique::FixedFunction) ?*
>>> *
>>> osgVolume::applyTransferFunction(intensityImage.get(),volumeProperties.transferFunction.get())
>>> :*
>>> *
>>> intensityImage.release();*
>>>
>>> *            osg::ref_ptr<osgVolume::ImageLayer> layer = new
>>> osgVolume::ImageLayer(image_3d);*
>>> *            tile->setLayer(layer.get());*
>>>
>>> *
>>> setVolumeProperties(volume,tile,layer,volumeProperties,volumeScene);*
>>>
>>> *            // Our original implementation positioned the bbox
>>> [-0.5,0.5] in each dimension.*
>>> *            // FixedFunctionTechnique applies the locator matrix to the
>>> a unit cube [0 1] in each dimension.*
>>> *            // To get the equivalent spatial referencing, apply a
>>> translation of -0.5 to each dimension.*
>>> *            osg::ref_ptr<osg::RefMatrix> matrix = new osg::RefMatrix();*
>>> *            matrix->makeTranslate(-0.5,-0.5,-0.5);*
>>>
>>> *            tile->setLocator(new osgVolume::Locator(*matrix));*
>>>
>>> *        }*
>>> *        else {*
>>> *            throw hg::PropertyException("Data");*
>>> *        }*
>>>
>>> *        std::cout << "volumeScene pointer: " << volumeScene.get() <<
>>> std::endl;*
>>>
>>> *        if (volumeProperties.volumeTechnique ==
>>> VolumeTechnique::Multipass)*
>>> *            return volumeScene.release();*
>>> *        else*
>>> *            return volume.release();*
>>>
>>> *    }*
>>>
>>> When I execute my code that previously worked with RayTracedTechnique, I
>>> receive the following stack trace
>>>
>>> Stack Trace (from fault):
>>>
>>> *[  0] 0x0000000104879d04
>>> fl::diag::stacktrace_base::capture(fl::diag::thread_context const&,
>>> unsigned long) at stacktrace.cpp:175 (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libmwfl.dylib)*
>>>
>>> *[  1] 0x000000010487cf9a void (anonymous
>>> namespace)::terminate_impl::log<char const*>(char const* const&,
>>> fl::diag::thread_context const&, char const*, int, char const*, bool) at
>>> terminate.cpp:238 (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libmwfl.dylib)*
>>>
>>> *[  2] 0x000000010487ca09 fl::diag::terminate_log(char const*,
>>> __darwin_ucontext const*) at lock_types.hpp:362 (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libmwfl.dylib)*
>>>
>>> *[  3] 0x00000001081cf0a8 (anonymous
>>> namespace)::crash_context::generate_crash_report_(std::__1::basic_ostream<char,
>>> std::__1::char_traits<char> >&) const at sighndl.cpp:1149 (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libmwmcr.dylib)*
>>>
>>> *[  4] 0x00000001081cea00 (anonymous namespace)::crash_context::ctor_()
>>> at sighndl.cpp:1025 (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libmwmcr.dylib)*
>>>
>>> *[  5] 0x00000001081cd62a mnFatalSignalHandler at sighndl.cpp:729 (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libmwmcr.dylib)*
>>>
>>> *[  6] 0x00007fff90c31f1a _sigtramp+00000026 at
>>> /usr/lib/system/libsystem_platform.dylib+20250 (no debugging symbols found)*
>>>
>>> *[  7] 0x0000000000000005 [unknown function] at [unknown module] (no
>>> module specified)*
>>>
>>> *[  8] 0x00000001204c4e56
>>> osgVolume::MultipassTechnique::traverse(osg::NodeVisitor&)+00000086 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgVolume.130.dylib+106070
>>> (no debugging symbols found)*
>>>
>>> *[  9] 0x00000001204dcbf6
>>> osgVolume::VolumeTile::traverse(osg::NodeVisitor&)+00000438 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgVolume.130.dylib+203766
>>> (no debugging symbols found)*
>>>
>>> *[ 10] 0x00000001204d7c0b
>>> osgVolume::VolumeScene::traverse(osg::NodeVisitor&)+00008827 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgVolume.130.dylib+183307
>>> (no debugging symbols found)*
>>>
>>> *[ 11] 0x0000000143a8daf2
>>> osgUtil::CullVisitor::apply(osg::Group&)+00000642 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgUtil.130.dylib+39666
>>> (no debugging symbols found)*
>>>
>>> *[ 12] 0x00000001204d8a79
>>> osgVolume::VolumeScene::accept(osg::NodeVisitor&)+00000121 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgVolume.130.dylib+187001
>>> (no debugging symbols found)*
>>>
>>> *[ 13] 0x00000001438749ef
>>> osg::Group::traverse(osg::NodeVisitor&)+00000047 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosg.130.dylib+522735
>>> (no debugging symbols found)*
>>>
>>> *[ 14] 0x0000000143a8dbf0
>>> osgUtil::CullVisitor::apply(osg::Transform&)+00000240 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgUtil.130.dylib+39920
>>> (no debugging symbols found)*
>>>
>>> *[ 15] 0x00000001438b9499
>>> osg::MatrixTransform::accept(osg::NodeVisitor&)+00000121 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosg.130.dylib+803993
>>> (no debugging symbols found)*
>>>
>>> *[ 16] 0x00000001438749ef
>>> osg::Group::traverse(osg::NodeVisitor&)+00000047 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosg.130.dylib+522735
>>> (no debugging symbols found)*
>>>
>>> *[ 17] 0x0000000143a8daf2
>>> osgUtil::CullVisitor::apply(osg::Group&)+00000642 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgUtil.130.dylib+39666
>>> (no debugging symbols found)*
>>>
>>> *[ 18] 0x0000000143876049 osg::Group::accept(osg::NodeVisitor&)+00000121
>>> at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosg.130.dylib+528457
>>> (no debugging symbols found)*
>>>
>>> *[ 19] 0x00000001438749ef
>>> osg::Group::traverse(osg::NodeVisitor&)+00000047 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosg.130.dylib+522735
>>> (no debugging symbols found)*
>>>
>>> *[ 20] 0x0000000143a8f29d
>>> osgUtil::CullVisitor::apply(osg::Camera&)+00003021 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgUtil.130.dylib+45725
>>> (no debugging symbols found)*
>>>
>>> *[ 21] 0x000000014381c209
>>> osg::Camera::accept(osg::NodeVisitor&)+00000121 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosg.130.dylib+160265
>>> (no debugging symbols found)*
>>>
>>> *[ 22] 0x00000001438749ef
>>> osg::Group::traverse(osg::NodeVisitor&)+00000047 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosg.130.dylib+522735
>>> (no debugging symbols found)*
>>>
>>> *[ 23] 0x0000000143a8daf2
>>> osgUtil::CullVisitor::apply(osg::Group&)+00000642 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgUtil.130.dylib+39666
>>> (no debugging symbols found)*
>>>
>>> *[ 24] 0x0000000143876049 osg::Group::accept(osg::NodeVisitor&)+00000121
>>> at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosg.130.dylib+528457
>>> (no debugging symbols found)*
>>>
>>> *[ 25] 0x00000001438749ef
>>> osg::Group::traverse(osg::NodeVisitor&)+00000047 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosg.130.dylib+522735
>>> (no debugging symbols found)*
>>>
>>> *[ 26] 0x0000000143b486bb osgUtil::SceneView::cullStage(osg::Matrixd
>>> const&, osg::Matrixd const&, osgUtil::CullVisitor*, osgUtil::StateGraph*,
>>> osgUtil::RenderStage*, osg::Viewport*)+00002875 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgUtil.130.dylib+804539
>>> (no debugging symbols found)*
>>>
>>> *[ 27] 0x0000000143b47117 osgUtil::SceneView::cull()+00001399 at
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libosgUtil.130.dylib+798999
>>> (no debugging symbols found)*
>>>
>>> *[ 28] 0x00000001372607da
>>> SceneRendererImpl::renderScene(hg::openscenegraph::RenderTimes&,
>>> hg::openscenegraph::RenderCounts&, osgUtil::SceneView*, unsigned int) at
>>> osgSceneServer.cpp:1448 (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libmwosgserver.dylib)*
>>>
>>> *[ 29] 0x000000013725922e
>>> hg::openscenegraph::OsgSceneServer::cullAndDraw(int, bool, double, double)
>>> at osgSceneServer.cpp:1809 (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libmwosgserver.dylib)*
>>>
>>> *[ 30] 0x000000011f298082
>>> UIJ_call_OpenGLPaintFcn(gui_objects::scene_server::SceneServerProxy*, int,
>>> bool, double, double) at SceneServerPeerEvents.cpp:56 (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libuij.dylib)*
>>>
>>> *[ 31] 0x000000011e589414
>>> Java_com_mathworks_hg_peer_JavaSceneServerPeer_doDisplay at Scene.cpp:129
>>> (in
>>> /mathworks/devel/sbs/28/ataylor.Bmlhg_task1.j377265/matlab/bin/maci64/libnativehg.dylib)*
>>> I was wondering if either from the stack trace or my code segments if
>>> there is an obvious culprit in terms of my use of MultipassTechnique. I
>>> feel like my use is consistent with the pattern established in the shipping
>>> example, but I'm a bit stuck at the moment as far as next directions to
>>> debug my problem...
>>>
>>> Thanks as always for any help,
>>>
>>> Alex
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> osg-users mailing list
>>> osg-users at lists.openscenegraph.org
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>>
>>>
>> _______________________________________________
>> osg-users mailing list
>> osg-users at lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20160429/422bd510/attachment-0003.htm>


More information about the osg-users mailing list