osgEarth::Style设置图片背景透明
时间: 2024-01-10 18:01:52 浏览: 76
如何处理图片背景为透明色
5星 · 资源好评率100%
您可以通过设置图片的 Alpha 通道来实现图片的背景透明。具体操作如下:
1. 在创建图片时,将图片的 RGBA 值中的 A 设置为 0,表示完全透明的颜色。
```cpp
osg::ref_ptr<osg::Image> image = new osg::Image;
image->allocateImage(width, height, 1, GL_RGBA, GL_UNSIGNED_BYTE);
memset(image->data(), 0, width * height * 4); // 初始化 RGBA 值为 0
```
2. 在设置 Style 时,将图片的混合模式设置为 BLEND,表示开启混合功能。
```cpp
osgEarth::Symbology::Style style;
style.getOrCreate<osgEarth::Symbology::PolygonSymbol>()->fill()->color() = osgEarth::Symbology::Color::White;
style.getOrCreate<osgEarth::Symbology::PolygonSymbol>()->fill()->blend() = osgEarth::Symbology::BlendSymbol::ENABLED;
style.getOrCreate<osgEarth::Symbology::PolygonSymbol>()->fill()->technique() = new osgEarth::Symbology::RenderSymbol::PointSpriteTechnique(image.get());
```
这样,图片的背景就会完全透明了。
阅读全文