Hi Thomas,
On 16/12/09 3:23 AM, Thomas Canipel wrote:
> //creation of the data
> int height=100;
> int width=100;
> int length=100;
> const long size = width*height*length;
For RGB this needs to be (w*h*l)*3, ie. number-of-pixels * channels-per-pixel.
> unsigned short* data = (unsigned short*)calloc(size, sizeof(unsigned short));
>
> for(long i=0; i < size ; i+= 3) {
> data[i]=255;//red
> data[i+1]=0;//green
> data[i+2]=0;//blue
> }
For unsigned short the maximum is 2^16-1 ie. 65535, not 255.
> // declaration and allocation of the 3d image (size : 100,100,100)
> osg::ref_ptr<osg::Image> image = new osg::Image;
> image->allocateImage(width, height, length, GL_RGB, GL_UNSIGNED_SHORT);
> image->setOrigin(osg::Image::BOTTOM_LEFT);
> image->setImage(width, height, length,GL_RGB,GL_RGB,GL_UNSIGNED_SHORT,
> (unsigned char*)data,osg::Image::NO_DELETE);
I don't believe the 'allocateImage' call is necessary, 'setImage' will
overwrite that.
HTH,
/ulrich
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org