GL_INTERLEAVED_ATTRIBSのようなGL_SEPARATE_ATTRIBSではなく、複数の変換フィードバックバッファを読み込むにはどうすればよいですか?この例では、2つのバッファをセットアップし、変換フィードバック用にセットアップします。私はGL_TRANSFORM_FEEDBACK_BUFFER
にglGetBufferSubData
を呼び出すことによって、単一のバッファをリードバックすることができるよ単一のバッファとGL_INTERLEAVED_ATTRIBS
でOpenGLで変換フィードバックを使用してGL_SEPARATE_ATTRIBSを使用すると、複数のバッファをどのように読み戻すことができますか?
//gen,bind,buffer GL_ARRAY_BUFFER buffer0
//gen,bind,buffer GL_ARRAY_BUFFER buffer1
//gen,bind GL_TRANSFORM_FEEDBACK feedback
glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 0, buffer0);
glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, 1, buffer1);
const GLchar* _varyings[] = { "pos", "color" };
glTransformFeedbackVaryings(program, 2, _varyings, GL_SEPARATE_ATTRIBS);
glLinkProgram(program);
//bind VAO and draw with TF enabled
glBeginTransformFeedback(GL_TRIANGLES);
glDrawArrays(GL_TRIANGLES, 0, numberOfVertices);
glEndTransformFeedback();
:
std::vector<float> fb;
fb.resize(3*numberOfVertices);
glGetBufferSubData(GL_TRANSFORM_FEEDBACK_BUFFER, 0, fb.size() * sizeof(float), fb.data());
をしかし、どのように私はOpenGLを教えてください、私は両方のバッファをリードバックしたいことbuffer0
およびbuffer1
インデックス付き(0,1)
glBindBufferBase
GL_TRANSFORM_FEEDBACK_BUFFER
?
私が見つけたすべてのチュートリアルは、これを単一のバッファGL_INTERLEAVED_ATTRIBS
で簡略化し、別々のバッファを使ってVA出力レイアウトに合わせてTF出力を一致させることも、すべて。