我有什么:,吸引了我的多维数据集对象(旋转,如果我想:)预期的位置,规模,颜色等。GLKViewController及其相关视图如何使用GLKit绘制线条(线框)?
* 我想要什么:相反比立方体,我想指定一个对象的几何体是顶点对的数组,并说服GLKit(暗示:OpenGL-ES-2)在我的视图空间中绘制每对顶点作为一个线段。
注:我的线段做不是形成一个线条,所以没有线条。我的线段不是将三角形作为网格(或任何其他几何图形)的一部分。它们只是空间中的单个线段,彼此之间没有任何关系。想想“拿起棍子”或类似的东西。
我试了一下:我创建顶点对(GLKVector3)和顶点颜色的像这样的数组(GLKVector4):
lineVertices = calloc (verts, sizeof(GLKVector3));
colorVertices = calloc (verts, sizeof(GLKVector4));
lineVertices[index++] = GLKVector3Make(x, 0, z);
lineVertices[index++] = GLKVector3Make(x2, 0, z2);
// etc., snip
colorVertices[cIndex++] = GLKVector4Make(1, 0.0, 1, 1);
// etc., snip
...,并试图拉拢他们是这样的:
glEnable(GL_DEPTH_TEST);
glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 2, // ** WRONG ** "2" should be "3"
GL_FLOAT, GL_FALSE, 0, lineVertices);
glEnableVertexAttribArray(GLKVertexAttribColor);
glVertexAttribPointer(GLKVertexAttribColor, 4,
GL_FLOAT, GL_FALSE, 0, colorVertices);
glDrawArrays(GL_LINES, 0, lineVertCount);
glDisableVertexAttribArray(GLKVertexAttribPosition);
glDisableVertexAttribArray(GLKVertexAttribColor);
(所有这些代码是在正确的地方,用事实证明我的立方体对象,使用相同的基础设施建设,正确绘制作为证明。)
当我尝试时,我得到了:只有一些线段画出来,它们似乎指向每一个方向,而不是我想要看到的可爱图案。我似乎无法辨别他绘制的线段的模式。这是因为如果我得到随机内存,但我lineVertices阵列是正确的
作业完成(选中):我看到很多是接近的,但做题最移交给线条或三角网格或其他方式不完全适用。有些是与设置有关的问题(已经消除,因为我的立方体绘制得很好)。对于其他非SO解答,教程等类似的不太正确。
注意:我依靠内置着色器(也就是说,我没有任何创建着色器代码在我的应用程序。)
虽然我的归宿几何不是一个立方体,我会没事用绘制基本线框立方体作为证据概念,在这里。同样,不使用三角形或线条,因为我的最终结果不适合这些。
任何人都可以给我指向示例代码的任何指针,它可以做我正在寻找的那种裸线段绘图吗?
谢谢!