Reputation: 43
Okay so I don't know if I'm stupid or something.
But when i run my application without drawing anything I get about 6k FPS.
When drawing about 150-200 points( from obj ) it is only 800... And If I then add font rendering it goes even lower.
I don't know if this is normal or something but I don't get how you are suppose to render the entire game world. If only 150 - 200 points takes it down that low. And also I tried rendering about 4k points => FPS=80
Here is my render method for 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);
}
And here is 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;
};
And finally 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;
}
};
So my question: Is this normal? if not what could cause this issue?
Specs:
Operating System: Windows 8 64-bit
CPU: Intel Core i5 760 @ 2.80GHz
RAM: 4 GB
Graphics: ATI Radeon HD 48000 Series
Screen: 1920x1080@60Hz
Upvotes: 1
Views: 421
Reputation: 1576
void Render::RenderOBJVBO(OBJData data)
should be
void Render::RenderOBJVBO(OBJData & data)
or better yet
void Render::RenderOBJVBO(const OBJData & data)
Otherwise a new copy of OBJData
will be created each call to RenderOBJVBO
Upvotes: 4