opengl 如何从指定位置画三角形,理解opengl的指针

以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。

其实挺简单,记下来,免得以后忘记,又得重新测试。

 

你可能感兴趣的:(opengl 如何从指定位置画三角形,理解opengl的指针)