osg.UniformBufferBinding
是OpenSceneGraph中用于绑定Uniform Buffer Object(UBO)的类。UBO是OpenGL中一种新特性,旨在高效传送大量数据给着色器程序。
osg.UniformBufferBinding()
创建一个默认的绑定对象。注意,必须为每一个UBO创建一个独立的绑定对象。
osg.UniformBufferBinding(const osg::UniformBufferBinding& ubb, const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY)
拷贝构造函数,第二个参数是复制选项。使用此构造函数可以复制现有的osg.UniformBufferBinding
对象。
void setBindingIndex(unsigned int index)
设置绑定的索引。在调用此函数之前应该已经创建好了UBO,且执行了绑定。
unsigned int getBindingIndex() const
获取绑定的索引。
void setOffset(unsigned int offset)
设置在UBO中的偏移量。
unsigned int getOffset() const
获取在UBO中的偏移量。
void setRange(unsigned int range)
设置在UBO中使用的数据范围。
unsigned int getRange() const
获取在UBO中使用的数据范围。
bool operator==(const osg::UniformBufferBinding& rhs) const
重载运算符==,用于比较两个绑定对象是否相同。
osg::UniformBufferObject* ubo = new osg::UniformBufferObject();
...
unsigned int index = 2; // 绑定索引
unsigned int offset = 0; // UBO中的偏移量
unsigned int range = 16; // 使用数据范围
osg::UniformBufferBinding* ubb = new osg::UniformBufferBinding();
ubb->setBindingIndex(index);
ubb->setOffset(offset);
ubb->setRange(range);
ubo->setBinding(ubb);