簡體   English   中英

OpenGL-當我在立方體上繪制邊框時,會出現多余的線條

[英]OpenGL - Extra line appears when I draw a border on a cube

我已經嘗試了一段時間,但是我失敗了。 我需要繪制一個立方體,然后在其周圍添加邊框。 多維數據集可以正常工作,並且可以繪制邊框,但始終會插入額外的線條。我使用GL_ARRAY_BUFFER存儲數據,並從GL_TRIANGLES(繪制多維數據集本身)切換到GL_LINES(繪制輪廓邊框)。 緩沖區中的每個偏移量都有自己的一組頂點。

我的顯示功能代碼(GLUT):

// cubeLen = number of cube's vertices in buffer
// sidesLen = number of side vertices in buffer
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDrawArrays(GL_TRIANGLES, 0, cubeLen);
glDrawArrays(GL_LINES, cubeLen, cubeLen + sidesLen);
glutSwapBuffers();

我的代碼來設置緩沖區:

GLuint buffer;
glGenBuffers( 1, &buffer );
glBindBuffer( GL_ARRAY_BUFFER, buffer );
glBufferData( GL_ARRAY_BUFFER, sizeof(points) + sizeof(colors)
                + sizeof(points2) + sizeof(colors2),
                NULL, GL_STATIC_DRAW );

glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(points), points);
glBufferSubData(GL_ARRAY_BUFFER, sizeof(points), sizeof(colors), colors);
glBufferSubData(GL_ARRAY_BUFFER, sizeof(points) + sizeof(colors),
                sizeof(points2), points2);
glBufferSubData(GL_ARRAY_BUFFER, sizeof(points) + sizeof(colors) + sizeof(points2),
                sizeof(colors2), colors2);

我對立方體的每一側使用12個三角形(每個3個頂點),並使用12條線(24個頂點)覆蓋所有邊緣。 立方體和邊緣以sycn的形式位於屏幕的中心(以0,0,0為中心)。 即使我在顯示功能中禁用繪制立方體,也會出現多余的多余線條(似乎從左中3D位置延伸到中前3D位置)。 但是,當我不為多維數據集設置頂點時,它就會消失。 任何想法為什么會發生這種情況? 感謝您提供的所有幫助。

額外的行在調用顯示函數時是緩沖區的索引錯誤。 基本上,它嘗試顯示顏色數據而不是實際的頂點數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM