osg.TransformFeedbackBufferBinding类使用户可以轻松地将顶点着色器的transform feedback输出绑定到buffe对象上。
以下是该类的一些重要函数:
构造函数,创建一个新的TransformFeedbackBufferBinding实例。
将一个缓冲对象绑定到一个指定的transform feedback输出变量上。
index
:transform feedback输出变量的索引。buffer
:要绑定的缓冲对象。offset
:缓冲区的偏移量,以字节为单位。size
:要绑定的缓冲区的大小,以字节为单位。如果为0,则使用整个缓冲区。从绑定列表中删除指定的transform feedback输出变量的缓冲对象。
index
:transform feedback输出变量的索引。返回指定transform feedback输出变量的缓冲对象。
index
:transform feedback输出变量的索引。返回绑定到指定transform feedback输出变量的缓冲对象的偏移量。
index
:transform feedback输出变量的索引。返回绑定到指定transform feedback输出变量的缓冲对象的大小,以字节为单位。
index
:transform feedback输出变量的索引。返回绑定到TransformFeedback变量的缓冲对象的数量。
将该状态集应用于指定的状态。
state
:将要应用该状态集的状态。下面是osg::TransformFeedbackBufferBinding使用的示例:
// 创建新的TransformFeedbackBufferBinding实例。
osg::TransformFeedbackBufferBinding *binding = new osg::TransformFeedbackBufferBinding;
// 创建一个新的缓冲对象。
osg::ref_ptr<osg::BufferObject> bufferObject = new osg::BufferObject;
bufferObject->setDataVariance(osg::Object::DYNAMIC);
bufferObject->setUsage(osg::BufferObject::STREAM_DRAW);
bufferObject->setBinding(osg::BufferObject::BINDING_TRANSFORM_FEEDBACK_BUFFER, 0);
// 将缓冲对象绑定到第一个transform feedback输出变量上。
binding->addTransformFeedbackBuffer(0, bufferObject.get());
// 应用状态。
osg::State state;
binding->apply(state);