Hello,
I just want to make sure an observation that surprised me is correct.
Given a patch array of regular type (uniform bicubic b-spline basis)--and a small topology consisting of boundaries or creases--this line works perfectly for me:
glDrawElements(GL_PATCHES, 60 * 16, GL_UNSIGNED_INT, reinterpret_cast<void*>(0u));
However, if I change the starting index by a one-patch offset, like this:
GLuint startOffset = 16u * sizeof(GLuint);
glDrawElements(GL_PATCHES, 59 * 16, GL_UNSIGNED_INT, reinterpret_cast<void*>(startOffset));
then numerous patches draw incorrectly--almost correct but with large gaps. (If my topology contains no boundaries or creases, they seem to draw correctly.)
My observation, then, is that in general, the calculation for drawing some patches may depend upon previous patches in the patch array having been drawn. Is this observation correct?
I am aware that OpenSubdiv offers the ability to create patch tables for select coarse faces. It has been a very useful library.
Thanks
Bruce