osgTerrain.CompositeLayer
osgTerrain.CompositeLayer是OpenSceneGraph中osgTerrain库的一部分,实现了混合图层的功能。混合图层是指将多个地形图层混合为一个单一的图层。混合图层允许你创建复杂的地形效果,例如添加草地、石头、雪等细节纹理。
继承关系
osg::Referenced
osgTerrain::Layer
osgTerrain::CompositeLayer
头文件
#include <osgTerrain/CompositeLayer>
定义
class CompositeLayer : public Layer
构造函数
CompositeLayer();
成员函数
void addChild(Layer *layer, float weight)
添加一个子图层。
参数:
- layer: Layer *类型,指向要添加的子图层。
- weight: float类型,指定添加的子图层权重值。
void removeChild(Layer *layer)
移除一个子图层。
参数:
- layer:Layer *类型,指向要移除的子图层。
void removeAllChildren()
移除所有子图层。
unsigned int getNumChildren()const
获取子图层数量。
返回值:
Layer * getChild(unsigned int i)
获取指定索引的子图层。
参数:
返回值:
const Layer * getChild(unsigned int i)const
获取指定索引的子图层。
参数:
返回值:
- const Layer *类型,指向指定索引的子图层。
float getWeight(unsigned int i)const
获取指定索引的子图层的权重值。
参数:
返回值:
void setWeight(unsigned int i, float weight)
设置指定索引的子图层的权重值。
参数:
- i:unsigned int类型,指定的索引。
- weight:float类型,指定子图层的权重值。
float getTotalWeight()const
获取所有子图层的总权重值。
返回值:
void packGeometry(osgTerrain::GeometryTechnique *technique,osg::Vec3Array *coords,osg::Vec3Array *normals,osg::Vec4Array *colors,osg::Vec2Array *texCoords)const
使用混合图层渲染地形。
参数:
- technique:osgTerrain::GeometryTechnique类型,绘制地形的技术。
- coords:osg::Vec3Array类型,顶点坐标数组。
- normals:osg::Vec3Array类型,法向量数组。
- colors:osg::Vec4Array类型,颜色数组。
- texCoords:osg::Vec2Array类型,纹理坐标数组。
void setMaxLOD(unsigned int lod)
设置最大LOD级别。
参数:
- lod:unsigned int类型,最大LOD级别。
unsigned int getMaxLOD()const
获取最大LOD级别。
返回值: