Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 在QGraphicsView中绘制OpenGL时的失真_Qt_Opengl - Fatal编程技术网

Qt 在QGraphicsView中绘制OpenGL时的失真

Qt 在QGraphicsView中绘制OpenGL时的失真,qt,opengl,Qt,Opengl,通过QGraphicscene的trackground(),我向QGraphicscene添加了一个QGraphicsRectItem 所有的opengl代码都写在QGraphicscene的trackground()中 守则: MTList=glGenLists(1); glEnableClientState(GL_VERTEX_ARRAY); Vertex_iterator vi = model.vertices_begin(); glVertexPointer(3, GL_DOUBLE

通过QGraphicscene的trackground(),我向QGraphicscene添加了一个QGraphicsRectItem

所有的opengl代码都写在QGraphicscene的trackground()中

守则:

MTList=glGenLists(1);
glEnableClientState(GL_VERTEX_ARRAY); 
Vertex_iterator vi = model.vertices_begin(); 
glVertexPointer(3, GL_DOUBLE, sizeof(Vertex), &(vi->point()[0]));
glDisable(GL_LIGHTING); 
glNewList(MTList, GL_COMPILE); 
glColor3f(1.0,0.0,1.0);
//glLineWidth(10.0); 
//glDisable(GL_CULL_FACE); 
//glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glDrawElements(GL_POINTS, 3*model.size_of_facets(), GL_UNSIGNED_INT, &modelfaces[0]); glEndList();
glDisableClientState(GL_VERTEX_ARRAY);
项目显示正常。但是,在我启用这一行之后:glPolygonMode(GL\u FRONT\u和GL\u BACK,GL\u行) 这个项目被歪曲了

而如果我更改代码: glPolygonMode(GL_前端,GL_线);解决了问题,项目结果与预期一致


为什么会发生这种情况?

根据-您正在决定如何使用此调用对多边形进行着色/照明。GL_FRONT_和_BACK将使所有面都着色/发光,而不仅仅是前向面(由法线/顶点顺序定义)。哦,我明白了!。谢谢你的帮助!