OpenGL не является графом сцены.
OpenGL (как правило) не является классическим 2D кадровым буфером, где вы хотите попытаться минимизировать перерисовки. С OpenGL вы, как правило, будете перерисовывать всю сцену каждый кадр после очистки буферов глубины и цвета.
У вас есть несколько вариантов:
1) Отключите проверку буфера глубины / глубины и визуализируйте ваши слои обратно.
2) Убедитесь, что у каждого из ваших слоев есть соответствующая координата Z, и визуализируйте их в любом порядке, позволяя буферу Z позаботиться о правильном наложении слоев. Не будет работать, если ваши слои прозрачны.
3) Превратите ваш путь черепахи в текстуру любым способом, который вы чувствуете как поддержку (glCopyPixels()
, PBOs, FBOs, cairo ). Рендеринг текстурированного четырехугольника размером с экран и черепаха сверху.
4) Перерисовывайте свой путь черепахи полностью в каждом кадре, сначала самая старая точка. Не должно быть медленным, если у вас нет количества строк в сотнях тысяч. Обязательно используйте массивы вершин или VBO.