vsgconv mymodel.flt model.vsgb --rgb
vsgviewer mymodel.flt --rgb
One advantage with being able to load RGB images as RGB vsg::Data is it takes less CPU memory and less disk space, for example one OpenFlight test model I have is 18% smaller when converted .vsgb with the --rgb hint.
It also means that OSG native and VSG native files for the same scene graph are now similar size:
77397409 osg.osgb
76523402 rgb.vsgb
93251294 rgba.vsgb
The changes to vsg::CopyAndReleaseImage improve the convince of passing dynamic data to the GPU, the changes the vsgdynamictexture example now no longer needs to concern itself with copying data to a staging buffer, as the CopyAndReleaseImage::copy(ref_ptr<Data>, ImageInfo) handles the copy to the staging buffer for you, and even is able to convert the RGB vsg::Data to RGBA during the copy to the staging buffer. The code now just looks like:
// update texture data
update(*textureData, time);
// copy data to staging buffer and issue a copy command to transfer to the GPU texture image
copyCmd->copy(textureData, textureImageInfo);
There is more work to keep converting RGB to RGBA during this copy, so if you can easily use RGBA in vsg::Data then it can be better to do this but if the source data is RGB it'll save memory and more no more expensive CPU wise to just let CopyAndReleaseImage::copy() do the conversion to RGBA for you.
Cheers,
Robert