osgEarth::Style设置图片背景透明
时间: 2024-01-10 16:01:53 浏览: 81
你可以在osgEarth::Style中使用AlphaFunc来设置图片背景透明。具体来说,你可以使用以下代码来创建一个具有透明背景的Style:
```cpp
osgEarth::Style transparentStyle;
transparentStyle.getOrCreate<osgEarth::RenderSymbol>()->depthTest() = false;
transparentStyle.getOrCreate<osgEarth::RenderSymbol>()->depthOffset()->enabled() = true;
transparentStyle.getOrCreate<osgEarth::RenderSymbol>()->depthOffset()->automatic() = true;
transparentStyle.getOrCreate<osgEarth::RenderSymbol>()->transparent() = true;
transparentStyle.getOrCreate<osgEarth::RenderSymbol>()->alphaFunc() = osgEarth::RenderSymbol::ALPHA_GREATER;
transparentStyle.getOrCreate<osgEarth::RenderSymbol>()->alphaFuncValue() = 0.0;
```
在这个样式中,我们使用了alphaFunc()函数来定义一个alpha测试,只有alpha值大于0时才会被渲染。alphaFuncValue()函数用于设置alpha测试的阈值,这里我们将其设置为0,表示只有alpha值为完全不透明时才会被渲染。同时,我们还将depthTest()设置为false,以避免深度测试对透明度的影响。最后,我们将transparent()设置为true,以告诉osgEarth这个样式是透明的。
阅读全文