osgParticle.Program是一个用于 OpenGL 着色器语言(GLSL)中的粒子系统的着色器程序。它代表了一个 GLSL 着色器程序,该程序用于定义和渲染一个粒子系统的外观和行为。
typedef std::vector<osg::ref_ptr<osgParticle::Operator> > OperatorList;
Program();
构造函数。创建一个新的着色器程序。
Program(const Program& copy, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
构造函数。根据给定的复制选项创建一个新的着色器程序,并从源着色器程序中复制其属性。
META_Node(osgParticle, Program);
元对象宏。该宏允许使用osgDB库中的反射机制来加载和保存此类对象的实例。
const char* getVertexProgram() const;
获取定义此着色器程序的 GLSL 代码字符串的顶点着色器部分。
void setVertexProgram(const char* program);
设置定义此着色器程序的 GLSL 代码字符串的顶点着色器部分。
const char* getFragmentProgram() const;
获取定义此着色器程序的 GLSL 代码字符串的片段着色器部分。
void setFragmentProgram(const char* program);
设置定义此着色器程序的 GLSL 代码字符串的片段着色器部分。
osgParticle::Operator* getOperator(const unsigned int i);
获取索引为i的运算符对象。
const osgParticle::Operator* getOperator(const unsigned int i) const;
获取索引为i的运算符对象。
void addOperator(osgParticle::Operator* op);
添加一个新的操作符到操作符列表中。
void replaceOperator(osgParticle::Operator* oldOperator, osgParticle::Operator* newOperator);
用新操作符对象替换旧操作符对象。
void removeOperator(osgParticle::Operator* op);
从操作符列表中删除给定的操作符对象。
void removeAllOperators();
从操作符列表中删除所有操作符对象。
unsigned int getNumOperators() const;
获取操作符列表中的操作符数量。
void operator()(osgParticle::Particle* P, double dt);
调用操作符程序。
下面是该类的成员变量文档。
osg::ref_ptr<osg::Shader> _vertexShader;
顶点着色器程序。
osg::ref_ptr<osg::Shader> _fragmentShader;
片段着色器程序。
osg::ref_ptr<osg::Program> _program;
着色器程序。
OperatorList _operators;
操作符列表。