在OpenTK中使用顶点数组 您所在的位置:网站首页 interleaved翻译 在OpenTK中使用顶点数组

在OpenTK中使用顶点数组

2023-05-03 08:59| 来源: 网络整理| 查看: 265

我知道使用VBO可能更好,但我有个人理由使用顶点数组(除了我的好奇心)。

在C++中,这里使用顶点数组:

// "vertices" is an array of Vertex Struct const char* data = reinterpret_cast(vertices); glVertexPointer(2, GL_FLOAT, sizeof(Vertex), data + 0)); glTexCoordPointer(2, GL_FLOAT, sizeof(Vertex), data + 8)); glColorPointer(4, GL_FLOAT, sizeof(Vertex), data + 16)); glDrawArrays(GL_QUADS, 0, vertexCount);

指针在C++中传递并很好地工作,但是,我无法使它在C#中与OpenTK一起工作。我跟踪了正式文件,最后得到了以下代码:

Vertex[] vertices = // .. Fill some vertex here unsafe { fixed (Vertex* data = vertices) { GL.VertexPointer(2, VertexPointerType.Float, Vertex.Stride, new IntPtr(data + 0)); GL.TexCoordPointer(2, TexCoordPointerType.Float, Vertex.Stride, new IntPtr(data + 8)); GL.ColorPointer(4, ColorPointerType.Float, Vertex.Stride, new IntPtr(data + 16)); // Draw the Vertices GL.DrawArrays(PrimitiveType.Quads, 0, vertices.length); GL.Finish(); // Force OpenGL to finish rendering while the arrays are still pinned. } }

我得到的只是空白的白色,什么也没有显示。

我尝试在VBO实现中使用相同的顶点,也使用类似的顶点指针代码,它工作正常,所以我认为它不是设置代码错误,我确信Vertex.Stride返回Vertex结构的有效步长。

有什么想法吗?



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有