У меня есть код, который создает пакет, используя библиотеку pyglet. Вся вещь содержит около 10 000 квадов при полной загрузке. Теперь, когда я запускаю скрипт, который рендерит всю сцену (это полностью статичная сцена), я получаю 3FPS. Единственное, что в прототипе, который я использовал для рендеринга сцены, я построил карту, используя некоторый медленный и неаккуратный код на python, который также работал на 3FPS для той же самой сцены. Поскольку пакеты в pyglet управляются с помощью C ++, у меня возникает беспокойное чувство, что мне не хватает чего-то очевидного, что приводит к тому, что пакет обрабатывает со скоростью 3FPS.
Это код инициализации моей сцены:
glViewport(0, 0, width, height)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(60.0, float(width)/height, .1, 10000.)
glMatrixMode(GL_MODELVIEW)
glClearColor(94.0/255.0, 161.0/255.0, 255.0/255.0, 0.5)
glClearDepth(1.0)
glShadeModel(GL_FLAT)
glEnable(GL_DEPTH_TEST)
glDepthFunc(GL_LEQUAL)
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)
glEnable(GL_BLEND)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
И вот код, который запускает каждый кадр для визуализации сцены:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
glTranslatef(0, 0, -1*self.mapZoomLevel)
glRotatef(self.mapPitch/5, 1, 0, 0)
glRotatef(self.mapRotation, 0, 0, 1)
glTranslatef(self.mapX, self.mapY, 0)
self.mapPrimitive.batch.draw()