我有什麼:,吸引了我的多維數據集對象(旋轉,如果我想:)預期的位置,規模,顏色等。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解答,教程等類似的不太正確。
注意:我依靠內置着色器(也就是說,我沒有任何創建着色器代碼在我的應用程序。)
雖然我的歸宿幾何不是一個立方體,我會沒事用繪製基本線框立方體作爲證據概念,在這裏。同樣,不使用三角形或線條,因爲我的最終結果不適合這些。
任何人都可以給我指向示例代碼的任何指針,它可以做我正在尋找的那種裸線段繪圖嗎?
謝謝!