| 47 | static std::vector<std::string> transparentMaterialNames() { return { "transparentExt", "transparent" }; } //@deprecated. Set osg::Material diffuse alpha < 1 instead to treat geometry as transparent. |
| 48 | |
| 49 | static vis::ModelFactoryPtr createModelFactory(const vis::ShaderPrograms& programs) |
| 50 | { |
| 51 | osg::ref_ptr<osg::Program> glassProgram = programs.getRequiredProgram("glass"); |
| 52 | |
| 53 | vis::ModelFactoryConfig config; |
| 54 | config.defaultProgram = programs.getRequiredProgram("model"); |
| 55 | config.glassProgram = glassProgram; |
| 56 | for (const std::string& name : transparentMaterialNames()) |
| 57 | { |
| 58 | config.stateSetModifiers[name] = [=](osg::StateSet& stateSet, const osg::Material& material) { |
| 59 | stateSet.setAttribute(glassProgram); |
| 60 | vis::makeStateSetTransparent(stateSet, vis::TransparencyMode::PremultipliedAlpha); |
| 61 | }; |
| 62 | } |
| 63 | |
| 64 | return std::make_shared<vis::ModelFactory>(config); |
| 65 | } |
| 66 | |
| 67 | const std::string maxCoresEnvironmentVariable = "SKYBOLT_MAX_CORES"; |
| 68 |
no test coverage detected