Hi,

On 20/07/2011 02:35, [email protected] wrote:
Hi,

    I used the following codes to create Volume data display.

     osg::ref_ptr<osg::Image>  osgImage = new osg::Image;
     osg::ref_ptr<osgVolume::Volume>  osgVolume = new osgVolume::Volume;
     osg::ref_ptr<osgVolume::VolumeTile>  osgTile = new osgVolume::VolumeTile;

     osg::ref_ptr<osgVolume::ImageLayer>   osgLayer = new 
osgVolume::ImageLayer(osgImage.get());
     osgTile->setLayer(osgLayer.get());
     osgVolume->addChild(osgTile.get());

     osgVolume::AlphaFuncProperty* ap = new osgVolume::AlphaFuncProperty(0.02f);
     osgVolume::SampleDensityProperty* sd = new 
osgVolume::SampleDensityProperty(0.005);
     osgVolume::TransparencyProperty* tp = new 
osgVolume::TransparencyProperty(1.0);
     osgVolume::TransferFunctionProperty* tfp = new 
osgVolume::TransferFunctionProperty(osgTransFunc.get());

     osgVolume::CompositeProperty* cp = new osgVolume::CompositeProperty;
     cp->addProperty(ap);
     cp->addProperty(sd);
     cp->addProperty(tp);
     cp->addProperty(tfp);

     osgLayer->addProperty(cp);
     osgTile->setVolumeTechnique(new osgVolume::RayTracedTechnique);

    The above codes are used on initializing.  I created the image pointer and 
assigned to image layer.  Then I will use setImage method to assign I defined 
the data pointer.
hmm, I'm not familiar with the volume code at all, but I would have though a layer is a texture without depth (nz==1)?


    osgImage->setImage(nx, ny, nz, 4, GL_RGBA, GL_UNSIGNED_BYTE, pdisp_ptr, 
osg::Image::NO_DELETE, 1);
    //  where nx, ny, nz are size of data (width, height, depth);
    //  where pdisp_ptr is assigned for using defined data
You can change the magic 4 to also GL_RGBA, but it looks OK to me.

You still have not said whether you get any image at all, even on the first frame?


    //Then  I also used the following codes to set the size of volume data.  I 
wonder whether I need the following codes if I already the size into image 
pointer.
    osg::ref_ptr<osg::RefMatrix>  matrix = new osg::RefMatrix(nx, 0.0,   0.0,   
0.0,
                                                                                
                        0.0,   ny, 0.0,   0.0,
                                                                                
                        0.0,   0.0,   nx, 0.0,
                                                                                
                        0.0,   0.0,   0.0,   1.0);

    osgLayer->setLocator(new osgVolume::Locator(*matrix));
    osgTile->setLocator(new osgVolume::Locator(*matrix));


    Then I will try to assign the data value to pdisp_ptr.  After that, I will 
call osgImage->dirty().   But there is no changed on viewer.  Any idea?  This 
is my  first time to use osg on my application, so I am not sure whether my code 
is crroect.
No change? Was there something at all? How do you assign data to pdisp_ptr? You must change the data pointed to by pdisp_ptr or call setImage again if your data is now somewhere else.

jp




Clement



________________________________________
From: [email protected] 
[[email protected]] On Behalf Of J.P. Delport 
[[email protected]]
Sent: Wednesday, 20 July 2011 1:00 AM
To: OpenSceneGraph Users
Subject: Re: [osg-users] How to update image data

Hi,

are you calling setImage only once? Are you using osg::Image::NO_DELETE?
How are you changing the data? Do you get the first image correctly?

jp

On 19/07/2011 16:09, [email protected] wrote:
I tried, but it is no update.  Is there a function from viewer to update the 
screen?
________________________________________
From: [email protected] 
[[email protected]] On Behalf Of J.P. Delport 
[[email protected]]
Sent: Tuesday, 19 July 2011 11:39 PM
To: OpenSceneGraph Users
Subject: Re: [osg-users] How to update image data

see the dirty() function

On 19/07/2011 14:10, [email protected] wrote:
Hi,

       I used the Image to display data.  I used setImage and assigned I 
defined unsigned char pointer.  My question is how to let viewer to know to 
update the view after completed updated the data into image.


Regards,
Clement
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

--
This message is subject to the CSIR's copyright terms and conditions, e-mail 
legal notice, and implemented Open Document Format (ODF) standard.
The full disclaimer details can be found at 
http://www.csir.co.za/disclaimer.html.

This message has been scanned for viruses and dangerous content by MailScanner,
and is believed to be clean.

_______________________________________________
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

--
This message is subject to the CSIR's copyright terms and conditions, e-mail 
legal notice, and implemented Open Document Format (ODF) standard.
The full disclaimer details can be found at 
http://www.csir.co.za/disclaimer.html.

This message has been scanned for viruses and dangerous content by MailScanner,
and is believed to be clean.

_______________________________________________
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


--
This message is subject to the CSIR's copyright terms and conditions, e-mail legal notice, and implemented Open Document Format (ODF) standard. The full disclaimer details can be found at http://www.csir.co.za/disclaimer.html.

This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to