У меня есть несколько объектов, которые я рисую через поклонников треугольника, но как только я устанавливаю свой glVertexPointer и вызываю glDrawArrays, всегда существует одна точка в исходном изображении, которое я не указал, по крайней мере, явно. Ниже я рисую сцену. Функция DrawScene устанавливается на таймер, который вызывается каждые 30 мс.glDrawArrays рисовать случайную точку в начале координат?
// initialize openGL scene
InitializeGL(){
glViewport(0, 0, 800, 600);
glEnable(GL_MULTISAMPLE);
glClearDepth(1.0f);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glClearColor(0.0f,0.0f,0.0f,0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
setUpView() // optional makes a call to glRotate() and glTranslate() in MODELVIEW matrix mode
drawAxis() //optional method to draw x,y,z axis
startDrawSceneTimer() // method that just starts the DrawScene timer to 30ms
}
DrawScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glEnable(GL_VERTEX_ARRAY);
//poly2 is a 7 point sided polygon, array is pointX, pointY, pointZ of each vertex
GLfloat poly2 [21] ={ -761.805 , 0.0 , 165.184 , -750.39 , 0.0 , 160.456 ,
-745.47 , 0.0 , 160.456 , -745.47 , 0.0 , 170.298 , -749.425 , 0.0 , 177.359 ,
-755.31 , 0.0 , 180.141 , -765.155 , 0.0 , 177.421};
glVertexPointer(3,GL_FLOAT,0,poly2);
glDrawArrays(GL_TRIANGLE_FAN,0,21);
glDisable(GL_VERTEX_ARRAY);
}
Там предполагает только быть один полигоном в левом нижнем квадранте изображения, похожего на шестиугольник. Длинная связь с источником - аномалия. Мой массив вершин «poly2» не содержит вершины (0,0,0).
Вот образ того, что я получаю:
Когда я переключаю GL_TRIANGLE_FAN к GL_POINTS, точка в начале координат также обращается. Я не могу найти что-либо в другом месте моего кода, создавая точку. Я также попытался удалить код для рисования оси x, y и z, но это не изменило проблему.
Дать [SSCCE] (http://sscce.org/). – genpfault
Я не понимаю твоего изображения. Что с этим не так? Белый ли объект не должен быть там? Или что-то другое? – user1118321