我正在学习 opengl 并使用 VBO 的示例,它由 GL.DrawElements() 使用的颜色数组、顶点数组、法线数组和索引数组组成,结构看起来像(一个点表示下一个元素/项目):
Rgba.Rgba.Rgba.....Xyz.Xyz.Xyz.Xyz....n1n2n3.n1n2n3.n1n2n3.....ijklmn.ijklmn.ijklmn
我需要将它们用作:
R.R.R.R.R....g.g.g.g.g......b.b.b.b.b.....a.a.a.a.a.a.....X.X.X.X.X.X....y.y.y.y.y.y..
...z.z.z.z.z.z.......n1.n1.n1.n1.n1.n1......n2.n2.n2.n2.n2.n2.n2......n3.n3.n3.n3.n3...
...i.i.i.i.i.i......j.j.j.j.j.j.j.j......k.k.k.k.k.k.k.k.k
因为我将 opencl 内核的缓冲区数据用作 cl-gl-interop 并且第一种类型的结构进行跨步内存访问,这会降低主内存访问的性能,因为我只使用每个元素/项目的一个组件,例如仅“x”或只有“r”。但第二种结构是平等地使用所有内存库,适合我的需要。这种结构是否可用/适合opengl绘图操作?