Хорошо, поэтому я не знаю, глупо я или что-то в этом духе.C++ скорость переполнения?
Но когда я запускаю приложение без рисования, я получаю около 6k FPS.
При рисовании около 150-200 баллов (от obj) это всего лишь 800 ... И если я затем добавлю отрисовку шрифта, она станет еще ниже.
Не знаю, нормально ли это или что-то в этом роде, но я не понимаю, как вы можете представить весь игровой мир. Если только 150 - 200 очков снижают этот уровень. А также я попытался рендеринга около 4К точек => FPS = 80
Вот мой метод визуализации для OBJS:
void Render::RenderOBJVBO(OBJData data)
{
if(data.RenderID == 0) return;
glBindBufferARB(GL_ARRAY_BUFFER, data.RenderID);
glVertexPointer(3, GL_FLOAT, sizeof(float) * 8, (GLvoid*)(sizeof(float) * 5));
glNormalPointer(GL_FLOAT, sizeof(float) * 8, (GLvoid*)(sizeof(float) * 2));
glTexCoordPointer(2, GL_FLOAT, sizeof(float) * 8, (GLvoid*)0);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glDrawArrays(GL_TRIANGLES, 0, data.F.size() * 3);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
glBindTexture(GL_TEXTURE_2D, 0);
}
А вот OBJData:
class OBJData
{
public:
OBJData(void){}
~OBJData(void){}
std::vector<OBJFace> F;
std::vector<Vector3f> V;
std::vector<Vector3f> VN;
std::vector<Vector3f> VT;
int RenderID;
};
И наконец OBJFace:
class OBJFace
{
public:
OBJFace(void){}
~OBJFace(void){}
Vector3f verts;
Vector3f norms;
Vector3f textures;
OBJFace(Vector3f v, Vector3f n, Vector3f t)
{
verts = v;
norms = n;
textures = t;
}
};
Так что мой вопрос: Это нормально? если нет, что может вызвать эту проблему?
Характеристики:
Операционная система: Windows 8 64-бит
Процессор: Intel Core i5 760 @ 2.80GHz
Оперативная память: 4 ГБ
Графика: ATI Radeon HD 48000 Серия
Экран: 1920x1080 @ 60Hz
Вы, возможно, запускаете вашу программу в режиме отладки? Если это так, у вас будет много бесполезных вызовов конструктора/деструктора. Попробуйте удалить конструкторы/деструкторы OBJData и OBJFace и сделать их просто старыми 'struct's –
Теперь я создал их structs. Но, к сожалению, FPS все еще около 80 - 100 –
Какое графическое оборудование вы используете? Intels и много ES-только мусора (как на телефонах), как правило, мучительно медленны ... – defube