diff --git a/src/osgDB/ReadFile.cpp b/src/osgDB/ReadFile.cpp index cfcda96da..22b047898 100644 --- a/src/osgDB/ReadFile.cpp +++ b/src/osgDB/ReadFile.cpp @@ -119,10 +119,23 @@ Node* osgDB::readNodeFiles(osg::ArgumentParser& arguments,const ReaderWriter::Op NodeList nodeList; std::string filename; + while (arguments.read("--image",filename)) { osg::ref_ptr image = readImageFile(filename.c_str(), options); - if (image.valid()) nodeList.push_back(osg::createGeodeForImage(image.get())); + if (image.valid()) + { + osg::Geode* geode = osg::createGeodeForImage(image.get()); + + if (image->isImageTranslucent()) + { + osg::notify()<<"Image "<getFileName()<<" is translucent; setting up blending."<getOrCreateStateSet()->setMode(GL_BLEND, osg::StateAttribute::ON); + geode->getOrCreateStateSet()->setRenderingHint(osg::StateSet::TRANSPARENT_BIN); + } + + nodeList.push_back(geode); + } } while (arguments.read("--movie",filename))