以opentk举例,假如原来画一个四边形,代码是这样:
GL.DrawElements(BeginMode.Triangles, 6, DrawElementsType.UnsignedInt, 0);
现在,要把组成四边形的两个三角形,做两次画出来,每次一个三角形。
第一个当然简单,把6改成3就行。
第二个,写法是:
GL.DrawElements(BeginMode.Triangles, 3, DrawElementsType.UnsignedInt, 12);
glDrawElements函数的最后一个参数是指针,这个指针,跟c++的指针不同,它并非是指向内存,而是相对于缓冲区起始位置的字节数。这里,图元类型是int,4字节,跳过3个,所以是3*4=12。
其实挺简单,记下来,免得以后忘记,又得重新测试。