Question

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

Was it helpful?

Solution

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top