OpenGL顶点阵列,矩阵指针?

时间:2012-04-12 06:58:10

标签: opengl opentk

我在一年前写了一段代码,用C#+ OpenTK渲染可编辑的2D Shapes。每个shape都有自己的顶点,编辑Shape会直接更改顶点值。

我在display_callback_func中有一个CollectVertices(),它迭代所有Shapes并组合大数组中的顶点信息,并使用下面的代码段立即绘制它们:

GL.EnableClientState(ArrayCap.VertexArray);
GL.EnableClientState(ArrayCap.ColorArray);

// draw fills (triangles)
GL.ColorPointer<byte>(3, ColorPointerType.UnsignedByte, 0, fillColor);
GL.VertexPointer<double>(2, VertexPointerType.Double, 0, fillArray);
GL.DrawArrays(BeginMode.Triangles, 0, fillArray.Length / 2);

// draw lines
GL.ColorPointer<byte>(3, ColorPointerType.UnsignedByte, 0, lineColor);
GL.VertexPointer<double>(2, VertexPointerType.Double, 0, lineArray);
GL.DrawArrays(BeginMode.Lines, 0, lineArray.Length / 2);

GL.DisableClientState(ArrayCap.ColorArray);
GL.DisableClientState(ArrayCap.VertexArray);

一年后的今天,我想向struct Transform对象引入新的Shape。它将包含Vector2 CenterMatrix Orientation。现在编辑Shape将改变Transform中的值(尽管仍然会对顶点数据进行缩放,因为它在逻辑上应该如此)。

对上述代码段进行微小更改,包含转换矩阵的方法是什么?

0 个答案:

没有答案